UniQuery1.SQL.Clear;
UniQuery1.SQL.Text := 'show tables';
UniQuery1.Execute;
这样写是如何把输出结果,读取出来?
8 个解决方案
#1
返回记录集应该用open
#2
请问OPEN以后,该怎么写???能写个例子吗?
#3
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的环境,你试下吧。
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的环境,你试下吧。
#4
不行,这个方法,只能用在先使用 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;
但这个方法有问题,只能获得第一个表名,第二个就获取不了了,不知道为什么。
#5
whilt not Form2.UniQuery2.eof do
begin
showmessage(Form2.UniQuery2.Fields[0].AsString);
query.next;
end;
begin
showmessage(Form2.UniQuery2.Fields[0].AsString);
query.next;
end;
#6
whilt not Form2.UniQuery2.eof do
begin
showmessage(Form2.UniQuery2.Fields[0].AsString);
Form2.UniQuery2.next;
end;
begin
showmessage(Form2.UniQuery2.Fields[0].AsString);
Form2.UniQuery2.next;
end;
#7
var tblList :TStringList;
TADOConnection连接数据库后,
ADOConnection1.GetTableNames(tblList);
即可获得数据库中,全部表。
TADOConnection连接数据库后,
ADOConnection1.GetTableNames(tblList);
即可获得数据库中,全部表。
#8
var
lstTables: TStrings;
begin
...
//TODO open connection
...
UniConnection1.GetTableNames(lstTables,true);
lstTables: TStrings;
begin
...
//TODO open connection
...
UniConnection1.GetTableNames(lstTables,true);
#1
返回记录集应该用open
#2
请问OPEN以后,该怎么写???能写个例子吗?
#3
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的环境,你试下吧。
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的环境,你试下吧。
#4
不行,这个方法,只能用在先使用 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;
但这个方法有问题,只能获得第一个表名,第二个就获取不了了,不知道为什么。
#5
whilt not Form2.UniQuery2.eof do
begin
showmessage(Form2.UniQuery2.Fields[0].AsString);
query.next;
end;
begin
showmessage(Form2.UniQuery2.Fields[0].AsString);
query.next;
end;
#6
whilt not Form2.UniQuery2.eof do
begin
showmessage(Form2.UniQuery2.Fields[0].AsString);
Form2.UniQuery2.next;
end;
begin
showmessage(Form2.UniQuery2.Fields[0].AsString);
Form2.UniQuery2.next;
end;
#7
var tblList :TStringList;
TADOConnection连接数据库后,
ADOConnection1.GetTableNames(tblList);
即可获得数据库中,全部表。
TADOConnection连接数据库后,
ADOConnection1.GetTableNames(tblList);
即可获得数据库中,全部表。
#8
var
lstTables: TStrings;
begin
...
//TODO open connection
...
UniConnection1.GetTableNames(lstTables,true);
lstTables: TStrings;
begin
...
//TODO open connection
...
UniConnection1.GetTableNames(lstTables,true);