![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос про запрос [D6, MSSQL]
Сергей Ю. © (2004-09-03 20:23:00)Как можно получить значение идентификатора последней записи? В форуме пробегал вот такой вариант: select @@IDENTITY as IDzakaz, но почему нет имени таблицы в этом запросе? Результатом выполнения запроса является ноль полей :( Где я торможу? (В SQL-е я полный профан, но мне очень надо :))
И еще - после 5-6 раз запуска проги дельфа ругается что нехватает памяти для выполнения запроса. После закрытия/открытия дельфы все в норме опять на 5-6 раз. В чем косяк?
Ega23 (2004-09-06 10:26:00) [1]Как можно получить значение идентификатора последней записи? В форуме пробегал вот такой вариант: select @@IDENTITY as IDzakaz, но почему нет имени таблицы в этом запросе? Результатом выполнения запроса является ноль полей :( Где я торможу? (В SQL-е я полный профан, но мне очень надо :))
Ты неправильно "слышал". Делать надо так:
Declare @X int
Insert into Table1 (Col1, Col2, ... , ColN)
Values (Val1, Val2, ... , ValN)
И сразу-же следующей строкой:
Select @X=@@IDENTITY
Более подробно про @@IDENTITY читай в BOL.
И еще - после 5-6 раз запуска проги дельфа ругается что нехватает памяти для выполнения запроса. После закрытия/открытия дельфы все в норме опять на 5-6 раз. В чем косяк?
"Рваные коннекты" остаются. Поди Program Reset часто делаешь. Или Ctrl+F2 (что одно и то же :о))...
Сергей Ю. (2004-09-06 09:35:00) [2]Сорри за мою тупость. Все сам разобрался. Всем спасибо.
Сергей Ю. (2004-09-06 09:18:00) [3]Стандартно это как? Так: Query.FieldbyName['idzakaz'].asinteger - неработает :(?
sniknik (2004-09-06 08:52:00) [4]> надо писать from таблица или нет
не надо, надо только выполнять строго после вставки (чтобы было не ноль а нужное число)
если нужна привязка к таблице (ну вставляеш в несколько таблиц после нужны их автоинкременты) используй IDENT_CURRENT('table_name')
> И главное - как взять результат выполнения запроса?
стандартно как и из просто таблици.
Сергей Ю. (2004-09-06 07:37:00) [5]Я непонял: надо писать from таблица или нет (см. ответ fay)? И главное - как взять результат выполнения запроса?
kvit (2004-09-04 12:10:00) [6]При закрытиии программы поставь закрытие конекта с базой
kvit (2004-09-04 12:09:00) [7]select @@IDENTITY as IDzakaz from Table1
это делается после вставки
Сергей Ю. (2004-09-04 11:40:00) [8]Тогда как обратиться к результату запроса (select @@IDENTITY as IDzakaz)? Query.FieldbyName['idzakaz'].asinteger говорит что колонка idzakaz несуществует :(
Fay (2004-09-03 21:47:00) [9]>> но почему нет имени таблицы в этом запросе?
Не нужно. Это не Oracle.
YurikGL (2004-09-03 21:27:00) [10]
> Сергей Ю. (03.09.04 20:23)
По поводу 1-го то можно сказать last, но после дейсвия набор данных может неожиданно измениться т.к. другой человек добавит запись.
По поводу второго - где то что-то не освобождаешь.