如何取得ACCESS数据库中的所有表名称?如何用ADO动态创建ACCESS数据库中的表?(200分)

  • 主题发起人 主题发起人 baoling
  • 开始时间 开始时间
B

baoling

Unregistered / Unconfirmed
GUEST, unregistred user!
如何取得ACCESS数据库中的所有表名称?如何用ADO动态创建ACCESS数据库中的表?

 
使用 fr:=TStringList.Create();
DM.AdoConnection1.GetTableNames(fr,false);
FR中就包括所有的表名。
使用ADOX可以动态创建表的。在ADOQUERY中执行SQL语句也行,
 
加一个ADOConnection1,一个ADOCommand1,一个ListBox1。
设置好ADOConnection1和ADOCommand1
使用:
ADOConnection1.GetTableNames(ListBox1.Items);

就可以得到所有表的名称。

下面代码则动态创建ACCESS数据库中的表:员工资料
var SQL:WideString;

SQL := 'CREATE TABLE 员工资料 (员工编号 varchar (10) NOT NULL ,';
SQL := SQL+'员工姓名 varchar (12),部门名称';
SQL := SQL+' varchar (20) NOT NULL,性别 varchar (2) NULL,婚否 varchar (4) NULL);';
ADOCommandSQL.CommandText := SQL;
ADOCommandSQL.Execute;
 
gettablename
动态表能得到吗?
 
楼上两位已经说得很清楚了,具体代码你可以看delphi/source
C:/Program Files/Borland/Delphi6/Source/Vcl/ADODB.pas
tadoconnection的源代码
procedure GetFieldNames(const TableName: string; List: TStrings);
procedure GetTableNames(List: TStrings; SystemTables: Boolean = False);
 
也行的,使用ADOX的TABLE也能得到所有的表。
 
不用SQL可以创建表吗?
 
var tbnames:tstringlist;
begin
tbnames:=tstringlist.Create ;
ADOConnection1.GetTableNames(tbnames,false);
ListBox1.Items:=tbnames;
end.

//-----------------------
AA.SQL.Clear;
AA.SQL.Add('CREATE TABLE ABC(A1 IDENTITY(1,1) PRIMARY KEY,A2 VARCHAR(10) NOT NULL )');
AA.ExecSQL
 
后退
顶部