[英]Delphi / ADO : how to get result of Execute()?
我已經宣布了AdoConnection : TADOConnection;
並成功連接到默認的“mysql”數據庫(因此,無需傳遞該代碼)。
現在,采取寶寶步驟學習,我想AdoConnection.Execute('SHOW DATABASES', cmdText);
這似乎工作正常,從某種意義上說它不會拋出異常,但我是一個n00b,我不知道如何檢查命令的結果: - /
HALP!
@mawg, SHOW DATABASES
命令返回一個名為'Database'的列的數據集,因此您可以使用TADOQuery
組件來讀取數據。
試試這段代碼。
var
AdoQuery : TADOQuery;
begin
AdoQuery:=TADOQuery.Create(nil);
try
AdoQuery.Connection:=AdoConnection;
AdoQuery.SQL.Add('SHOW DATABASES');
AdoQuery.Open;
while not AdoQuery.eof do
begin
Writeln(AdoQuery.FieldByname('DataBase').AsString);
AdoQuery.Next;
end;
finally
AdoQuery.Free;
end;
end;
你需要的是到達返回的_Recordset
。
如果您不介意使用Delphi組件,則應使用TADODataSet
或TADOQuery
來執行可返回任何結果的SQL命令(或更低級別的TADOCommand
的' Execute
方法)。
如果你想要一些非常簡單的東西,沒有所有的VCL balast,那么你想要從ExplainThat (MIT許可)嘗試TADOWrap
類。
您必須使用連接到TADODataBase的TADOQuery。 在屬性SQL中,您必須包含SQl statament以在SGDB中檢索數據庫。 在SQL Server中,您可以這樣做:
SELECT * FROM sysdatabases
在MySQL中必須存在類似於檢索名稱的東西。
您可以將此TADOQuery連接到TDataSource和DBGrid以查看可視結果或使用代碼來探索查詢結果(有些類似於此):
ADOQuery1.Open;
while not ADOQuery1.eof do begin
Name := ADOQuery1.FieldByName('DBName').AsString;
ADOQuery1.Next;
end;
問候
如果您只想填充網格,為什么不使用adotable?
Adotable.open;
Adotable.first;
While NOT adotable.eof do(not sure about not or <>)
Begin
Put values in variant or array;
Adotable.next;
End
然后,您可以讓任何UI訪問數組或變體。 或填充數據集。
您需要TAdoQuery來執行返回結果的語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.