一个关于SQL查询的问题。高手请进。(30分)

  • 主题发起人 主题发起人 chys
  • 开始时间 开始时间
C

chys

Unregistered / Unconfirmed
GUEST, unregistred user!
现在我想设计一个可以展示数据库中所有表名的窗口,当在这个窗口中点击表名的时候就可以用DBgrids看到表的内容。
有可以查询数据库中所有表名的语句吗?
如果可以实现,用什么控件比较好?
 
SQL Server: sysobjects
 
二楼的朋友能否说的详细一点?
 
select [name] from sysobjects where xtype='U'
 
在系统表里面有一个表名为sysobjects 的表,里面就是存储你建立的所有表,视图,存储过程的信息。
 
为什么我不能提问问题啊
 
我现在用的是acsses作的表。是不是不能用这个语句。
系统提示我找不到这个sysobjects表
 
SELECT [Name] FROM MSysObjects WHERE Type=1 AND Flags=0
 
系统提示我没有读取sysobjects表的权限。。。怎么才能有读取的权限呢?
 
哪位高手可以帮我做个这样的小实例,我的邮箱是:wanjun1212@163.com
只想学习一下方法。
 
procedure TForm1.Button1Click(Sender: TObject);

var
SL: TStrings;
index: Integer;
begin
SL := TStringList.Create;
try
ADOConnection1.GetTableNames(SL, False);//把数据库的表名放到sl中
for index := 0 to (SL.Count - 1) do begin

ADOTable1.TableName := SL[index];
ADOTable1.Open;
end;
finally
SL.Free;
ADOTable1.Close;
end;
end;
 
楼上的朋友,这个不行啊。能否抽出一点时间给我做个这样的实例(delphi的工程文件等),给我传到邮箱里。谢谢你。我现在着急用呢。。。。。。
我的邮箱是wanjun1212@163.com
 
我记得以前Rxlib的例程里面有一个,叫Dbexpl32可以做到,不管是什么数据库都可以把所有的表列出来。
 
对,查数据库中的系统表
 
select name from sysobjects where xtype='U' and status>0
这句话就可以找到在当前数据库中的所有表名
你可以用个ADOquery 把这条语句放到里面,将结果用
循坏放到你存这些表信息的控件中,然后用一个ADOtable 当选中某个表名时,把ADOtable 的tablename=(这个表名就行了)....
 
问题解决,谢谢大家
 
后退
顶部