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

Вниз

Тригер в sql server   Найти похожие ветки 

 
aaaaa   (2008-09-01 16:09) [0]

в базе на таблицу по after insert есть триггер, который тож инсертит что-то там в другую табл.

код моего добавления
ADoConnection.BeginTrans;
q.Insert;
q.FieldByName("A").AsString := ";sdfg";
q.Post;
ADOConnection.commit;

проблемма в том, что теперь первичный ключ таблицы запроса после вставки равен тому ключу, который вставляет триггер:(. Я так понимаю @@IDENTITY
Как правильно сделать?


 
Ega23 ©   (2008-09-01 16:13) [1]


> Как правильно сделать?


Я так понимаю, что у тебя MSSQL.
Читать в BOL разницу между @@IDENTITY, SCOPE_IDENTITY() и IDENT_CURRENT.

Как раз твой случай там подробно описан.


 
aaaaa   (2008-09-01 16:18) [2]


> Ega23 ©   (01.09.08 16:13) [1]

разницу я знаю(пробежал мельком), но ведь это занчение - @@IDENTITY - берет запрос(ADO), запросу-то как мне указать, откуда брать последний инсерт? Он правильно и поступает, что берет именно @@IDENTITY... Не знаю, что и делать, ведь эта переменная тока для чтения, вроде?


 
Ega23 ©   (2008-09-01 16:39) [3]

Блин.


with ADODataSet do
begin
 CommandText := "Set noCount ON; " +
                         "Insert into Table1(.....) Values (.....); " +
                         "Select Result = Scope_Identity()";
 try
   try
      Open;
      ID := FieldByName("Result").AsInteger;
   except on E : Exception do
     .......
   end;
 finally
    Close;
 end;
end;


 
aaaaa   (2008-09-01 17:04) [4]


> Ega23 ©   (01.09.08 16:39) [3]

спасибо.

....

блин, мне менять TADOQuery на TADODataSet из-за этого?


 
Ega23 ©   (2008-09-01 17:12) [5]


> блин, мне менять TADOQuery на TADODataSet из-за этого?


Можешь не менять. Но я бы посоветовал использовать TADODataSet там, где возвращается набор данных и TADOCommand там, где не возвращается.


 
Ega23 ©   (2008-09-01 17:13) [6]

Да, для TADOQuery тогда вместо CommandText подставь SQL.Text



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

Форум: "Начинающим";
Текущий архив: 2008.10.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.046 c
15-1219388772
rx275d7_jedi
2008-08-22 11:06
2008.10.12
Delphi 7 or Delphi 2005


15-1219218004
sD
2008-08-20 11:40
2008.10.12
Работа с dxBarManager (DevExpress)


2-1220279317
Terasbetoni
2008-09-01 18:28
2008.10.12
Подскажите, следует ли использовать структуру MDI


2-1220262994
gln
2008-09-01 13:56
2008.10.12
Прокрутка RichEdit


15-1219404029
cyborg
2008-08-22 15:20
2008.10.12
TDataGrid





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский