在进行信息系统软件开发的时候,我可能要依靠编程来获得制定数据库中的表名以及存储过程名。这有不少方法,例如要取得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;