Link to home
Start Free TrialLog in
Avatar of marioway
marioway

asked on

Problem inserting data into firebird table

Hi, I have a problem inserting data into Firebird tables.

- Connecting to database: no problem
- Using TIBDatabase; TIBTransaction, TIBQuery
- Running first TIBQuery on table 'STRAAT'  1 field with Unique index 'STRATEN'
   
  IBQuery1.Close;              //Straat
  IBQuery1.Prepare;
  IBQuery1.Open;
  IBQuery1.First;
   for i:= 0 to IBQuery1.RecordCount-1 do begin
    ComboBox2.Items.Add(IBQuery1Straten.Value);
    IBQuery1.Next;
   end;

Then by exit ComboBox2

procedure TAdministratie.ComboBox2Exit(Sender: TObject);
var A: string;
begin
with Datamodule1 do begin
 if Trim(ComboBox2.Text) = '' then begin
  Exit;
 end
  else
   begin
    A:= Trim(ComboBox2.Text);
    if not IBQuery1.Locate('Straten', Trim(ComboBox2.Text), [])then begin
      IBQuery5.Close;
      IBQuery5.SQL.Clear;
      IBQuery5.SQL.Add('Insert INTO STRAAT(STRATEN) Values(:A)');
      IBQuery5.Prepare;
      IBQuery5.ExecSQL;
    end
     else
      begin
       Exit;
      end;
  end;
end;
end;

Result is that in the field of the table, data: NULL, instead of the naam of ComboBox2

what might be the problem here ? I know something about SQL-programming, but connot get this right. Can anyone help me on this

thx
Mario
ASKER CERTIFIED SOLUTION
Avatar of rfwoolf
rfwoolf
Flag of South Africa image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of marioway
marioway

ASKER

Hi rfwoolf, I tried this

    A:= Trim(ComboBox2.Text);
    if not IBQuery1.Locate('Straten', Trim(ComboBox2.Text), [])then begin
      IBQuery5.Close;
      IBQuery5.SQL.Clear;
      IBQuery5.SQL.Add('Insert INTO STRAAT(STRATEN) Values(:A)');
       IBQuery5.Params[0].AsString:= A;
      IBQuery5.ExecSQL;

and it works

thx a lot
Mario