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

Вниз

TClientDataSet и автоинкриментые поля(MS Access, MS SQL Server)   Найти похожие ветки 

 
salexn   (2005-12-06 12:24) [0]

Может ли TClientDataSet автоматически обновлять значения автоинкриментых полей MS Access и MS SQL Server? По "легенде" хэлпа - может. Кто-нить победил эту проблемку?


 
msguns ©   (2005-12-06 12:47) [1]

А причем тут CDS, если с данными БД непосредственно работает провайдер ?


 
salexn   (2005-12-06 13:33) [2]

Решить проблему можно?


 
msguns ©   (2005-12-06 13:38) [3]

Что значит "автоматически обновлять значения автоинкриментых полей" ?
Автоинкременты на то и авто, что они НЕ ОБНОВЛЯЮТСЯ.
Или я что-то не понял ?


 
salexn   (2005-12-06 13:41) [4]

после Post в ADO сраэу появляется значение этого поля(Автоинкрементного). Можно ли добиться такого же поведения от TClientDataSet + DataSetProvider?


 
msguns ©   (2005-12-06 14:01) [5]

Тебе нужно узнать значение автоинкремента ДО вставки НОВОЙ записи или СРАЗУ ПОСЛЕ ?


 
salexn   (2005-12-06 14:16) [6]

>msguns
СРАЗУ ПОСЛЕ в условиях многопользовательской работы. Рассказывать об SELECT @@IDENTITY не нужно. Я НЕ ДОЛЖЕН обращаться к серверу(SQL Server или AppServer) для получения значения. Хотелось бы сделать это СРЕДСТВАМИTClientDataSet + DataSetProvider.
Получение значения ДО ВСТАВКИ также не подходит. Вопрос именно в том, можно ли средствами TClientDataSet + DataSetProvider получить данные о значении автоинкрементного поля(аналогично тому как это сделано в ADO).


 
Nikolay M. ©   (2005-12-06 14:26) [7]


> SELECT @@IDENTITY не нужно.

+

> НЕ ДОЛЖЕН обращаться к серверу(SQL Server или AppServer)
> для получения значения

+

> Получение значения ДО ВСТАВКИ также не подходит

= невозможно.
Btw, интересно было бы узнать, почему перечисленные варианты неприменимы.


> аналогично тому как это сделано в ADO

Угу, АДО - это такая волшебная штука, которая делает невозможные вещи возможными. Не пожалей 5 минут времени, сделай программульку, в которой АДО "получает значение автоинкремента" и посмотри профайлером, что в этот момент происходит на SQL-сервере.


 
Anatoly Podgoretsky ©   (2005-12-06 14:33) [8]

salexn   (06.12.05 14:16) [6]
СРАЗУ ПОСЛЕ в условиях многопользовательской работы. Рассказывать об SELECT @@IDENTITY не нужно. Я НЕ ДОЛЖЕН обращаться к серверу(SQL Server или AppServer) для получения значения. Хотелось бы сделать это СРЕДСТВАМИTClientDataSet + DataSetProvider.

Откуда же тогда возьмется несущесвуещее значение?
Оно появляется только после вставки на сервере


 
salexn   (2005-12-06 15:09) [9]

ок. Если с MSSQL еще поняттно(SELECT @@IDENTITY), то как же быть с Access?
И еще как получить IDENTITY если идет "массовый" insert, а ApplyUpdates вызывается только 1 раз? Есть конечно вариант Close/Open.


 
salexn   (2005-12-06 16:27) [10]

Так что? Ответтов не будет?
>модератор
А за что этот пост перенесли в начинающие?
Это АБСОЛЮТНО нетривиальный вопрос.


 
salexn   (2005-12-06 16:27) [11]

Удалено модератором
Примечание: Действия модератора не обсуждаются, и причем тут вопрос, это относится к вопрошающим, ты пока начинающий и очень начинающий


 
msguns ©   (2005-12-06 16:31) [12]

>Это АБСОЛЮТНО нетривиальный вопрос.

Вопрос многократно обсуждался на форуме - достаточно полазать по архивам.

В акцесе НЕТ ВОЗМОЖНОСТИ узнать значение автоинкремента ДО вставки (или СРАЗУ ПОСЛЕ, что по сути одно и то же). Существует единственный способ: Select MAX(ID)+1, который, ясное дело, страдает "локальностью".


 
Anatoly Podgoretsky ©   (2005-12-06 16:41) [13]

Вопрос документирован, находится в многичисленных FAQ


 
Nikolay M. ©   (2005-12-06 16:43) [14]


> как же быть с Access?

http://www.sql.ru/faq/faq_topic.aspx?fid=214
Q8.


 
Nikolay M. ©   (2005-12-06 17:49) [15]


> Anatoly Podgoretsky ©   (06.12.05 16:41) [13]
> Вопрос документирован, находится в многичисленных FAQ

Для человека, который сам недавно спрашивал про неоднократно задокументированный @@IDENTITY в АДО, звучит более чем самонадеянно.



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

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

Наверх




Память: 0.5 MB
Время: 0.04 c
14-1133431363
Post
2005-12-01 13:02
2005.12.25
Книга


1-1133215324
GuAV
2005-11-29 01:02
2005.12.25
Как нарисовать METAFILEPICT ?


2-1134319884
apxi
2005-12-11 19:51
2005.12.25
Как связать 2 таблицы в Access с помощью запроса?


14-1133281204
beglec
2005-11-29 19:20
2005.12.25
Подскажите компонент или что ни будь еще для сортировки данных


2-1133883036
Developerr
2005-12-06 18:30
2005.12.25
Как удалить запись из типизированного файла ?