Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.01.31;
Скачать: [xml.tar.bz2];

Вниз

Как возвратить значение сгенерированного ID на клиента   Найти похожие ветки 

 
SArthur   (2001-12-28 10:41) [17]

Обычно я так и делаю.
В смысле: вставка, запрос на ID, обновление грида (п.1 твоего письма). Такие оперции вполне можно использовать в режимах редактирования справочников. Там идет транзакция по одной, двум, редко - трем таблицам.
Там, где нужно вставить в несколько связанных таблиц, а где-нибуть что-либо апдейтнуть... Не-е-е... Там только хранимой процедурой. Во-первых, уменьшается сетевой траффик. Во вторых, эта самая процедура делает все и, в результате, ID тебе уже и не нужен. В третьих, программный код более читабельный:
var tq: TQuery;
Begin
...
tq:=TQuery.Create(nil);
try
tq.DatabaseName:="myDB_alias";
tq.SQL.Add("CALL MyBigInsert_Update_Proc(:prm1, :prm2)");
tq.ParamByName("prm1").AsInteger:=1;
tq.ParamByName("prm2").AsString :="text";
DataModule1.Database1.StartTransaction;
try
tq.ExecSQL; // или tq.Open, ежели есть результат
DataModule1.Database1.Commit;
except
On E: Exception do begin
DataModule1.Database1.Rollback;
// <error handler code>
end;
end;
finally
tq.Free;
end;
...
End;


Примерно так. И с BDE и с ADO работает.
Реализация MyBigInsert_Update_Proc напрямую зависит от используемого DB сервера.

Ну, это, поругайте код, что ли... :-)))



Страницы: 1 вся ветка

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

Наверх





Память: 0.44 MB
Время: 0.004 c
3-99921
П.
2001-12-25 17:53
2002.01.31
БД


7-100090
PavelS
2001-10-18 21:22
2002.01.31
Sound And Sound !!!


14-100067
Digitman
2001-12-07 17:41
2002.01.31
Дж.Харриссон - кто он ?


4-100112
Tippy
2001-11-29 20:44
2002.01.31
Как в Трей добавить текст?


1-99994
Анатолий
2002-01-14 22:57
2002.01.31
Проблемы с картинками





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский