Jordan Atkinson
Jordan Atkinson

Reputation: 202

capture values from a simple select query TADOQuery Delphi

I am having issues returning the value gotten from a simple SELECT query using TADOQuery

here is my code below:

  dbWizconQuery.SQL.Clear;
  dbWizconQuery.SQL.Add('SELECT * FROM test');
  tb_wizconValues.Items.Add('' + dbWizconQuery.SQL.GetText);

  dbWizconQuery.ExecSQL;
  processed := IntToStr(dbWizconQuery.FieldByName ('input' ).Value);
  tb_wizconValues.Items.Add('' + processed);

I get the first print out in my textbox ok, with the SQL String but then i dont get the value coming out.

Can you see why this might be?

Processed is a String and input is an INT(5) which comes out AsString

Kind Regards,

Jordan

Upvotes: 0

Views: 2922

Answers (2)

AirWolf
AirWolf

Reputation: 597

in delphi ExecSQL is used when you want to do an

UPDATE,INSERT,DELETE

when you want to do a select call open or just set the query to

active := true;

you can get multiple results back by using this code:

dbWizconQuery.SQL.Clear;
dbWizconQuery.SQL.Text := 'SELECT * FROM test';
dbWizconQuery.Open; // or dbWizconQuery.Active := True;
while not dbWizconQuery.eof do
begin
  ShowMessage(dbWizconQuery.FieldByName('FieldName').AsString); // this shows the fields value
  dbWizconQuery.Next; //use this line or you will get an infinite loop
end;
dbWizconQuery.Close; //closes the dataset

for executing statements like UPDATE,INSERT,DELETE use it like this:

dbWizconQuery.SQL.Text := 'DELETE FROM test WHERE ID = 1';
dbWizconQuery.ExecSQL;

Upvotes: 1

Ken White
Ken White

Reputation: 125708

ExecSQL is used for statements that don't return a rowset, such as INSERT, DELETE and UPDATE. For a SELECT, you need to use Open instead:

dbWizconQuery.SQL.Clear;
dbWizconQuery.SQL.Add('SELECT * FROM test');
tb_wizconValues.Items.Add('' + dbWizconQuery.SQL.GetText);

dbWizconQuery.Open;
processed := IntToStr(dbWizconQuery.FieldByName ('input' ).Value);
tb_wizconValues.Items.Add('' + processed);

For more info, see the documentation for TDataSet

Upvotes: 1

Related Questions