Как я могу использовать поле целочисленного автоматического увеличения в DBx4 с BlackFish? - PullRequest
1 голос
/ 25 февраля 2009

Я пытаюсь использовать автоинкрементные поля в dbx4 с базой данных черной рыбы У меня есть простая структура таблицы:

    CREATE TABLE tblTABname (
    ID int AUTOINCREMENT Primary Key,
    Description varchar(100) NOT NULL );

До открытия я делаю:

qryTAB.FieldByName( ‘ID’).AutoGenerateValue := arAutoInc;
cdsTAB.FieldByName( ‘ID’).AutoGenerateValue := arAutoInc;

После открытия:

qryTab.FieldByName('ID').ProviderFlags := [pfInWhere, pfInKey];
cdsTab.FieldByName('ID').ProviderFlags := [pfInWhere, pfInKey];

Если я это сделаю:

cdsTAB.Edit;
cdsTAB.FieldByName(‘Description’).value := ‘Test’;
cdsTAB.Post;

Или, если я использую это в DBGRID, произойдет сбой с ошибкой:

«Поле« ID »должно иметь значение»

Ведьма должна была быть сгенерирована.

Если я запускаю запрос INSERT, он работает нормально, с или без строк «AutoGenerateValue: = arAutoInc».

Как мне преодолеть эту проблему?

1 Ответ

0 голосов
/ 21 апреля 2009

Вместо вызова CDSTab.EDIT вызывайте CDSTab.INSERT, чтобы добавить новую строку, вызывайте CDSTab.EDIT, только когда курсор уже находится на записи, и редактируйте значение этой записи.

...