Форум: "Базы";
Текущий архив: 2002.01.10;
Скачать: [xml.tar.bz2];
ВнизMIDAS Найти похожие ветки
← →
Polevi (2001-12-06 18:11) [0]Пишу 3-звенку. MS SQL через ADO
ClientDataset.Insert;
ClientDataset.FieldByName("...").AsString="some value";
ClientDataset.Post;
ClientDataset.ApplyUpdates(0);
В таблице есть AutoInc поле - проблема в том что в ClientDataset для свежедобавленной записи значение этого поля не определено. Как мне его получить?
DatasetProvider.Options:=[poAutoRefresh] не помогает :(
Можно конечно делать ClientDataset.Refresh после ClientDataset.ApplyUpdates но может быть есть более элегантное решение?
← →
Tonie (2001-12-07 11:41) [1]Попробуй Query поставить
AutoRefresh = true
а для поля и в Query и в ClientDataSet
FieldKind = fkInternalCalc
AutoGenerateValue = arAutoInc
Но возможно что это только с BDE работает
← →
Axel (2001-12-07 12:51) [2]Same troubles
See help for TBaseProvider.BeforeUpdateRecord
...
Manually apply updates that the provider can’t handle. For example, the provider can’t generate the appropriate SQL when the data results from a multi-table join and more than one table must be updated. Write code in the event handler to apply the update and then set the Applied parameter to True so that the provider does not generate an error.
...
I"ve not found anything better :((
← →
Axel (2001-12-07 12:53) [3]Or set YourDataSetProvider.ResolveToDataSet = False
← →
Polevi (2001-12-07 14:35) [4]2Tonie ©
AutoRefresh есть у TDBDataset (наследник TBDEDataset) - мне не подходит :(
2Axel
ResolveToDataSet = False не помогает
И не совсем понятно, чем может помочь BeforeUpdateRecord - это событие позволяет управлять данными, которые будут записаны в базу - я не вижу способа обновить ClientDataset с его помощью ...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.01.10;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.002 c