Форум: "Базы";
Текущий архив: 2002.01.21;
Скачать: [xml.tar.bz2];
ВнизОтзовитесь, кто нибудь :)) Найти похожие ветки
← →
Polevi (2001-12-14 15:53) [3]Проблема вот в чем
Для того чтобы сообщить в ClientDataset ID добавленной записи я действую след. образом:
DatasetProvider.Options:=poPropogateChanges;
DatasetProvider.ResolveToDataset:=true;
procedure TRDM.dspBeforeUpdateRecord(Sender: TObject; SourceDS: TDataSet;
DeltaDS: TCustomClientDataSet; UpdateKind: TUpdateKind;
var Applied: Boolean);
begin
if UpdateKind=ukInsert then
begin
SourceDS.Insert;
SourceDS.FieldByName("Name").Value:=DeltaDS.FieldByName("Name").OldValue;
SourceDS.Post;
DeltaDS.FieldByName("ID").NewValue:=SourceDS.FieldByName("ID").Value;
Applied:=true;
end;
end;
на клиенте делаю Insert;ApplyUpdates(0);RefreshRecord;
Все работает, НО
Именно при инсерте на Appserver возникает "Unknown error" - сейчас, следуя твоему совету, буду исследовать это дело на предмет утечки памяти
Первоначально использовал ADOQuery - сейчас перешел на ADODataset - проблема не решилась..
И проблема номер 2
Чтобы сделать Insert - Post - ADO требует чтобы хотя бы одно поле было заполнено - но я же не могу для каждого DatasetProvuder"a прописывать BeforeUpdateRecord!!! - хочется универсальности какой нибудь, чтобы обработчик был один на всех.
И наконец просто интересно как народ решает данную проблему - когда я гляжу на свой код меня терзают смутные сомнения :))
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.01.21;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.003 c