Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.30;
Скачать: CL | DM;

Вниз

Позиционирование на вновь вставленную запись.   Найти похожие ветки 

 
Hose   (2003-06-05 10:35) [0]

Коллеги! Существует ли некий встроенный в технологию способ получения ID новой записи? Пользую трехзвенку. На сервере ADODataSet на клиенте ClientDataSet. Пробовал после ApplyUpdates юзать RefreshRecord. Отлуп с ошибкой типа "раз не установлено значение ключа, то иди потренируйся пока". Оно в общем то и логично. Понятное дело, что можно извратиться и получить таки этот злосчастный ID, но мне кажется, что не может не быть какого-либо простого решения.


 
Sunches   (2003-06-05 16:56) [1]

Не существует.
Процедуру получения ID придется писать самому.
Я могу предложить несколько вариантов.
1.При добавлении новой записи на сервере получать ID из MS SQL и далее через Callback передавать клиенту.
2.Можно самому формировать ID, а не использовать Autoincrement fields.
3.Если структура базы такова, что в таблице присутствуют, кроме первичного ключа, который в вашем случае я так понимаю построен на базе автоинкрементного поля, еще уникальный индекс по другим полям, то можно после выполнения ApplyUpdates делать Refresh и через Locate находить нужную запись.


 
Zelius ©   (2003-06-05 17:39) [2]

через параметры возвращать значение @@IDENTITY после вставки...


 
Тих   (2003-06-06 01:39) [3]

Гуид в роли первичного ключа, генерирующийся на клиенте? Если не пугает рефакторинг существующих наработок - очень удобно.


 
АлексейК   (2003-06-06 07:22) [4]

>через параметры возвращать значение @@IDENTITY после вставки...
@@IDENTITY выдаст нужное значение далеко не во всех случаях, в остальных случаях есть ф-ии IDENT_CURRENT, SCOPE_IDENTITY (что конкретно использовать можно узнать в справке). Нужно выбрать подходящий для тебя вариант.



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

Текущий архив: 2003.06.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.023 c
4-97932
Illusion
2003-04-27 13:57
2003.06.30
UpdateLayeredWindow


14-97812
Igor_thief
2003-06-10 13:57
2003.06.30
Skin


3-97481
Antoxa1
2003-06-05 03:51
2003.06.30
Подскажите, пожалуйста, как получить имена и типы полей БД Access


1-97715
Saniok
2003-06-17 01:04
2003.06.30
Как указать полный путь к bpl-ке, которая в requires другой bpl-к


1-97586
Reanimator
2003-06-18 22:20
2003.06.30
Или глюк с TShellTreeView или я чегото не понимаю.