[英]capture values from a simple select query TADOQuery Delphi
我在使用TADOQuery返回從簡單SELECT查詢獲得的值時遇到問題
這是我的代碼如下:
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);
我用SQL字符串在我的文本框中確定了第一次打印,但是隨后我沒有得到值。
你知道為什么會這樣嗎?
處理的是一個字符串,輸入的是一個INT(5),它來自AsString
親切的問候,
約旦
ExecSQL
用於不返回行集的語句,例如INSERT
, DELETE
和UPDATE
。 對於SELECT
,您需要使用Open
代替:
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);
有關更多信息,請參見TDataSet的文檔。
在delphi中使用ExecSQL時,
UPDATE,INSERT,DELETE
當您想進行選擇呼叫打開或只是將查詢設置為
active := true;
您可以使用以下代碼獲得多個結果:
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
對於執行UPDATE,INSERT,DELETE之類的語句,請像這樣使用它:
dbWizconQuery.SQL.Text := 'DELETE FROM test WHERE ID = 1';
dbWizconQuery.ExecSQL;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.