Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19001508
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: 数据库开发技术

2008-05-28 15:34:49

在进行信息系统软件开发的时候,我可能要依靠编程来获得制定数据库中的表名以及存储过程名。这有不少方法,例如要取得sql server数据库中的table信息,我们可以通过查询information_schema.tables来获得,这种通过sql 查询语句来获得数据库表名的操作要依靠数据库系统的支持,不同的数据库系统提供的访问方式也不同,我们也就不能通过相同的代码来获得信息。为了达到这一目的,我们可以采用ADOCONNECTION组件的GetTableNames来获得表名列表,通过GetProcedureNames来获得存储过程列表。函数原型如下:
  • procedure GetTableNames(List: TStrings; SystemTables: Boolean = False);
  • procedure GetProcedureNames(List: TStrings);

上面的List是一个TStrings类型的列表,用来接收返回的信息,SystemTables是一个布尔类型的参数,如果为true,则代表返回时包含系统表,为false代表不返回系统表。

    一个例子:

    新建立一个工程,窗体中添加一个Listbox组件(ListBox1)用来接受信息,一个CheckBox(ckbxSystemInfo)组件用来做是否返回系统表的判断,一个ADOCONNECTION(ADOConnection1)组件用来连接制定的数据库,两个按钮分别用来完成获得存储过程列表以及获得table列表,设置好ADOCONNECTION1的连接字符串,然后使用下面的代码:

procedure TForm1.Button1Click(Sender: TObject);
begin
 ADOConnection1.GetTableNames(ListBox1.Items,ckbxSystemInfo.Checked );
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ADOConnection1.GetProcedureNames(ListBox1.Items);
end;

阅读(478) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~