Я получаю эту ошибку: поле "bankid" должно иметь значение.
Для решения этой проблемы я должен добавить поле с помощью редактора полей Uniquery и установить для свойства «required» значение False, а также автоматически сгенерированное значение arAutoInc.
Это единственный способ сделать это? Добавить поля в Uniquery?
Таблица:
CREATE TABLE public.banks (
bank varchar(50),
branch varchar(80),
"no" varchar(30),
bankid integer NOT NULL GENERATED ALWAYS AS IDENTITY,
)
WITH (
OIDS = FALSE
);
уникальный компонент:
object UniQuery2: TUniQuery
SQLInsert.Strings = (
'INSERT INTO "Banks"'
' (bank, branch, no)'
'VALUES'
' (:bank, :branch, :no) RETURNING bankid;')
SQLUpdate.Strings = (
'update "Banks" set bank=:bank, branch=:branch, "no"=:no'
'where bankid=:bankid')
SQLLock.Strings = (
'')
SQLRefresh.Strings = (
'SELECT bank, branch, no, bankid FROM "Banks"'
'WHERE'
' bankid = :bankid')
SQLRecCount.Strings = (
'SELECT count(*) FROM ('
'SELECT * FROM "Banks"'
''
') t')
Connection = UniConnection1
SQL.Strings = (
'select * from "Banks" order by bank,branch,"no"')
Options.ReturnParams = True
Left = 64
Top = 80
object UniQuery2bank: TStringField
FieldName = 'bank'
Required = True
Size = 50
end
object UniQuery2branch: TStringField
FieldName = 'branch'
Required = True
Size = 80
end
object UniQuery2no: TStringField
FieldName = 'no'
Required = True
Size = 30
end
object UniQuery2bankid: TIntegerField
AutoGenerateValue = arAutoInc
FieldName = 'bankid'
end
end
код delphi:
UniQuery2.Options.DefaultValues := True;
uniquery2.open;
UniQuery2.Append;
UniQuery2.fieldByName('bank').AsString:=sEdit1.Text;
UniQuery2.fieldByName('branch').AsString:=sEdit2.Text;
UniQuery2.fieldByName('no').AsString:=sEdit2.Text;
UniQuery2.Post;
Delphi 10.2.3
postgresql 10,8