Как я могу использовать поле целочисленного автоматического увеличения в DBx4 с BlackFish?

Я пытаюсь использовать автоинкрементные поля в 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 Query, он работает нормально, с или без строк "AutoGenerateValue:= arAutoInc".

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

1 ответ

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

Другие вопросы по тегам