How to pass parameter values to TIBCSQL
Posted: Tue 02 Oct 2012 11:52
Hi!
I want to insert records to a table with TIBCSQL.
But got error message "validation error for column FIELD4 value null" on Execute.
Use FB 2.5.2 and IBDAC 4.5.9.
My table:
Delphi example:
Gabor
I want to insert records to a table with TIBCSQL.
But got error message "validation error for column FIELD4 value null" on Execute.
Use FB 2.5.2 and IBDAC 4.5.9.
My table:
Code: Select all
CREATE TABLE TABLE1 (
FIELD1 BIGINT NOT NULL,
FIELD2 SMALLINT,
FIELD3 BIGINT,
FIELD4 SMALLINT NOT NULL,
FIELD5 NUMERIC(14,2),
FIELD6 NUMERIC(14,2)
);Code: Select all
procedure TForm1.FormCreate(Sender: TObject);
var
FB_DB:TIBCConnection;
FB_TR:TIBCTransaction;
qSC:TIBCSQL;
begin
FB_DB:=TIBCConnection.Create(Self);
FB_DB.Options.Charset:='UTF8';
FB_DB.Database:='C:\tmp\IBDAC_TEST.FDB';
FB_DB.ClientLibrary:='fbclient.dll';
FB_DB.UserName:='SYSDBA';
FB_DB.PassWord:='masterkey';
FB_TR:=TIBCTransaction.Create(Self);
FB_TR.IsolationLevel:=iblcustom;
FB_TR.DefaultConnection:=FB_DB;
FB_TR.Params.Add('wait');
FB_TR.Params.Add('write');
FB_TR.Params.Add('read_committed');
FB_TR.Params.Add('no_rec_version');
FB_TR.DefaultCloseAction:=taRollback;
FB_DB.Open;
qSC:=TIBCSQL.Create(Self);
qSC.Connection:=FB_DB;
qSC.Transaction:=FB_TR;
with qSC do
begin
SQL.Add('INSERT INTO TABLE1 (');
SQL.Add('FIELD1, FIELD2, FIELD3, FIELD4, FIELD5, FIELD6');
SQL.Add(') VALUES (');
SQL.Add('NEXT VALUE FOR SEQ_1, :IN_FIELD2, :IN_FIELD3, :IN_FIELD4, :IN_FIELD5, :IN_FIELD6');
SQL.Add(') RETURNING FIELD1;');
ParamByName('IN_FIELD2').Value:=2;
ParamByName('IN_FIELD3').Value:=3;
ParamByName('IN_FIELD4').Value:=4;
ParamByName('IN_FIELD5').Value:=5;
ParamByName('IN_FIELD6').Value:=6;
FB_TR.StartTransaction;
Execute;
FB_TR.Commit;
end;
end;