![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить id добавленной записи [D7, MSSQL]
ndg © (2007-01-23 20:59:00)Ситуация такова:
с помощью ADOCommand выполняю запрос
INSERT INTO Akadem (Student_ID, GoDate, AkademType, CurrentType) VALUES (:Std, :Dt, :ATp, :CTp)
После его выполнения мне надо узнать Student_ID добавленной мною записи. Подскажите, как ?
sniknik (2007-01-24 10:24:00) [21]> Я бы вообще в SP всё вынес.
имхо, перебор...
Ega23 (2007-01-24 08:53:00) [22]
> Palladin © (23.01.07 23:09) [3]
Низя так.
Я бы вообще в SP всё вынес.
sniknik (2007-01-24 08:40:00) [23]Palladin © (23.01.07 23:09) [3]
делить подобный пакет на 2 = добавить возможность ошибки. в этом случае есть ненулевая вероятность что идентити будет от другой команды.
> Эти ДВА запроса пишутся вместе, через ;
разделитель необязателен, можно даже в одну строчку через пробел, поймет.
Johnmen (2007-01-23 23:20:00) [24]
> ndg (23.01.07 22:33) [2]
> > SELECT @@identity AS newid
> Где писать этот запрос, в том же компоненте, где и запрос вставки ?
Эти ДВА запроса пишутся вместе, через ;
> И какому полю он возвращает результат ? Тут не указано.
Смотри внимательней.
ndg (2007-01-23 23:15:00) [25]Спасибо, всё логично и понятно
Palladin (2007-01-23 23:10:00) [26]извиняюсь
SQL.Open;
ShowMessage('ID='+Fields[0].AsString);
SQL.Close;
заменить на
Open;
ShowMessage('ID='+Fields[0].AsString);
Close;
Palladin (2007-01-23 23:09:00) [27]With TADOQuery.Create(Nil) Do
Try
Connection:=...
или
ConnectionString:=...
SQL.Text:='Insert ...
ExecSQL;
SQL.Text:='Select @@Identity';
SQL.Open;
ShowMessage('ID='+Fields[0].AsString);
SQL.Close;
Finally
Free;
End;
это для простоты понимания, используя ADOCommand можно сделать тоже самое, но писать придется больше
ndg (2007-01-23 22:33:00) [28]
> SELECT @@identity AS newid
Где писать этот запрос, в том же компоненте, где и запрос вставки ?
И какому полю он возвращает результат ? Тут не указано.
Johnmen (2007-01-23 21:49:00) [29]
INSERT INTO ... ;
SELECT @@identity AS newid