簡體   English   中英

從簡單的選擇查詢TADOQuery Delphi捕獲值

[英]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用於不返回行集的語句,例如INSERTDELETEUPDATE 對於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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM