使用UniQuery1控制元件連接MYSQL資料庫,想獲取資料庫里所有的表名,在網上查到,MYSQL的指令是:show tables,在CMD模式下可以顯示所有表名了,但用控制元件怎么操作?
UniQuery1.SQL.Clear;
UniQuery1.SQL.Text := 'show tables';
UniQuery1.Execute;
這樣寫是如何把輸出結果,讀取出來?
uj5u.com熱心網友回復:
回傳記錄集應該用openuj5u.com熱心網友回復:
請問OPEN以后,該怎么寫???能寫個例子嗎?
uj5u.com熱心網友回復:
close:sql.text:='select table_name from information_schema.tables where table_schema=''csdb'' and table_type=''base table''';
open;
直接dbgrid就顯示了吧。
或者
whilt not query.eof do
begin
showmessage(query.fieldbyname('table_name').asstring);
query.next;
end;
沒有mysql的環境,你試下吧。
uj5u.com熱心網友回復:
不行,這個方法,只能用在先使用 select * from (表名) 這個命令后。問題是,我現在連表名都不知道,需要程式通過 show tables 來顯示所有表名,在逐一查詢資料,我在網上搜索了半天,只找到一個方法代碼如下:
Form2.UniQuery2.Close;
Form2.UniQuery2.SQL.Clear;
Form2.UniQuery2.Fields.Clear;
Form2.UniQuery2.SQL.Add('show tables');
Form2.UniQuery2.Open;
str := Form2.UniQuery2.Fields[0].AsString;
但這個方法有問題,只能獲得第一個表名,第二個就獲取不了了,不知道為什么。
uj5u.com熱心網友回復:
whilt not Form2.UniQuery2.eof dobegin
showmessage(Form2.UniQuery2.Fields[0].AsString);
query.next;
end;
uj5u.com熱心網友回復:
whilt not Form2.UniQuery2.eof dobegin
showmessage(Form2.UniQuery2.Fields[0].AsString);
Form2.UniQuery2.next;
end;
uj5u.com熱心網友回復:
var tblList :TStringList;TADOConnection連接資料庫后,
ADOConnection1.GetTableNames(tblList);
即可獲得資料庫中,全部表。
uj5u.com熱心網友回復:
varlstTables: TStrings;
begin
...
//TODO open connection
...
UniConnection1.GetTableNames(lstTables,true);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/67847.html
標籤:數據庫相關
上一篇:請問有沒有獲取QQ群成員號碼的delphi原始碼或者提供一些方法也行
下一篇:小白求助 求大神們幫忙解釋一下
