type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses ComObj;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
conn:OleVariant;
rs:OleVariant;
i:integer;
begin
conn:=CreateOleObject('adodb.connection');
rs:=CreateOleObject('adodb.recordset');
conn.open('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + ExtractFilePath(ParamStr(0)) + '\test.mdb;User ID=admin;Password=;Jet OLEDB:Database Password=');
rs:=conn.OpenSchema(20); //adSchemaTables 这里是列出表,还有很多很多参数,可以做很多很多事情,请参考 MSDN
// 列出所有表,包括系统表和用户表
repeat
for i:=0 to rs.fields.count-1 do
begin
if VarIsNull(rs.fields.item[i].value)=true then
begin
self.Memo1.lines.Add( rs.fields.item[i].name + '->' );
end
else
self.Memo1.lines.add(rs.fields.item[i].name + '->' + VarToStr(rs.fields.item[i].value));
end;
self.Memo1.Lines.Add('--------');
rs.movenext;
until rs.eof=true;
rs.close;
conn.close;
conn:= Unassigned;
rs:=Unassigned;
SL:=Tstringlist.Create;
try
adoconnection1.GetTableNames(SL,false);
except
raise Exception.Create('装载源库列表错误!错误特征码2003');
end;
TableExist:=false;
for index := 0 to (SL.Count - 1) do
begin
//Export Table
if SL[index]=databasename then
begin
TableExist:=true;
break;
end;
end;
SL.free ;
if tableexist=false then //数据表不存在,则创建。