Форум: "Базы";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];
ВнизНе обновляется атоинкрементальное поле Найти похожие ветки
← →
first_aid (2003-06-06 10:01) [0]Приветствую.
Я только недавно начал переходить с BDE на ADO и уверен , что подобный вопрос задовался уже не раз,
н я ненашел на него ответа, так что позволю себе задать его еще раз.
Имеется таблица со следующими полями:
Pk INT IDENTITY(1,1) CONSTRAINT Pk_Idx PRIMARY KEY,
Txt VARCHAR(100)
Для доступа к таблице и представления данных используется связка:
TADOTable->TDataSource-TDBGrid
Записи добавляются:
TADOTable.Insert;
TADOTableTxt.Value = ‘…’;
TADOTAble.Post;
Так вот после добавления записи в таблицу, поле Pk не обновляется, в TDBGrid значение этого поля 0,
при попытке редактирования добавленной записи:
TADOTable.Edit;
TADOTableTxt.Value = ‘…’;
TADOTAble.Post;
Вылетает исключение с текстом ‘Не удается найти строку для обновления. Некоторые значения могли быть изменены со времени ее последнего чтения.’, Если переоткрыть таблицу, то все нормально, поле Pk имеет ‘нормальное’ значение и все работает, но это же моразм после каждого добавления переоткрывать таблицу:
Отсюда вечный вопрос: Что делать?
← →
KoluChi (2003-06-06 11:17) [1]попробуйте
TADOTable.CursorLocation = clServer;
TADOTable.CursorType = ctKeySet;
← →
first_aid (2003-06-06 12:34) [2]2 KoluChi
Побарабану, ничего не изменилось.
← →
KoluChi (2003-06-06 13:32) [3]Попробуйте
object ADOConnection: TADOConnection
Attributes = [xaCommitRetaining]
Если не получится, завяжитесь на ADOQuery.
← →
Polevi (2003-06-06 16:03) [4]Access какой версии
← →
first_aid (2003-06-09 06:32) [5]По всей видимости Access 2000, создаю базу таким вот макаром:
procedure CreateDataBase;
var
DBEngine: _DBEngine;
begin
DBEngine := CreateComObject(CLASS_DBEngine) as _DBEngine;
DBEngine.Workspaces[0].CreateDatabase("c:\1.mdb", ";LANGID=0x0409;CP=1252;COUNTRY=0", 32);
DBEngine := nil;
end;
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c