Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 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 с его помощью ...




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.10;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.014 c
1-28461           Непонятный            2001-12-21 21:18  2002.01.10  
Как работать с GIF?


1-28498           Dimedrol              2001-12-22 13:30  2002.01.10  
DLL вызывает процедуру в основной проге...


6-28516           SERGX                 2001-09-30 15:32  2002.01.10  
Я с помошью CientSocet & ServerSocet сделал чат НО..


6-28526           Diamond Dog           2001-10-14 17:21  2002.01.10  
Отключение компьютера по сети.


14-28533          anod                  2001-11-15 20:58  2002.01.10  
Блок питания жужит