Как я могу использовать поле целочисленного автоматического увеличения в 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, только когда курсор уже находится на записи, и редактируйте значение этой записи.