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

Вниз

Как получить новое значение счётчика   Найти похожие ветки 

 
Lamer8   (2004-09-28 01:08) [0]

Имеются таблицы:QW и ER, в таблице QW есть ключевое поле ID (счётчик!) и ещё несколько полей,допустим ещё поле ID_Name(текстовое). В таблице ER поля ID (числовое целое, >0, значение обязательно) и ID_Value (числовое). Таблицы связаны по полю ID. БД MS Access. Для доступа использую компонент ADODataSet. Свойство Command Text установлено:
SELECT *
FROM QW INNER JOIN ER ON QW.ID = ER.ID
На форме имеется таблица DBGrid, в которой отображаются поля ID_Name и ID_Value, взятые по запросу из обоих таблиц. Пользователь может изменять значения.
Суть проблемы:
При добавлении новой записи в запрос методом Append, ADODataSet не получает значение ключа ID присвоенное счётчиком в таблице QW. А поле ID таблицы ER обязательно должно соответствовать значению ID таблицы QW, иначе возникает ошибка при сохранении таблицы методом Post. Как можно сделать чтоб при сохранении таблицы поле ER.ID получало значение счётчика поля QW.ID?!!!


 
KSergey ©   (2004-09-28 08:02) [1]

При Append еще никто никуд ничего не добавляет в БД, это всего лишь видимость.
Реально добавляется (а значит и возникает новое значение счетчика), лишь после Post.

Почитайте так же все 3 статьи из цикла
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=408


 
Lamer8   (2004-09-28 08:57) [2]

Дак я читал эти статьи, там автор похоже не знает как это делаеться, подобный случай описывается в 3-й статье, вот цитата:
Если же при добавлении были внесены значения новой строки не только для таблицы Calls? Тогда Cursor Engine попытается добавить по одной записи в обе таблицы. Это у него, скорее всего, не получится - абонента то можно добавить - но для добавления в таблицу Calls в нашем примере нужно иметь значение AbonentID которое будет в тот момент не известно.
И в программе которая дана в качестве примера это соответственно тоже не работает. Может есть какой-нибудь способ запросить с сервера последнее значение автоинкремента(счётчика) или то которое будет при добавлении новой записи.


 
A_N_D ©   (2004-09-28 09:07) [3]

IDENT_CURRENT
Returns the last identity value generated for a specified table in any session and any scope.

Syntax
IDENT_CURRENT("table_name")

Arguments
table_name

Is the name of the table whose identity value will be returned. table_name is varchar, with no default.


 
KSergey ©   (2004-09-28 09:34) [4]

Так это все в один грид выгребается?? Тогда логику надо менять, возможно - на корню. Может LookUp поля помогут, например?


 
Lamer8   (2004-09-28 21:26) [5]

А можно поподробнее про IDENT_CURRENT, это откуда вообще комманда, немогу найти в справке.


 
АлексейК   (2004-09-29 05:42) [6]

А можно поподробнее про IDENT_CURRENT, это откуда вообще комманда, немогу найти в справке.
Из MSSQL Server.



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

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

Наверх




Память: 0.48 MB
Время: 0.048 c
9-1087796659
MsShtaer
2004-06-21 09:44
2004.10.24
игра 64-bit


6-1092940190
Луарвик
2004-08-19 22:29
2004.10.24
Веб програмирование: отправка запросов в инет?


3-1095714619
Maxim______
2004-09-21 01:10
2004.10.24
тормоза BLOB в GDB


14-1096967487
Robbin
2004-10-05 13:11
2004.10.24
ОЗУ


14-1096876667
Доброжелатель
2004-10-04 11:57
2004.10.24
Зарплата