//初始化,设置连接字符串
procedure Tdrdcform.FormCreate(Sender: TObject);
var
cons:string;
begin
cons:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s/data/data.mdb;Persist Security Info=False';
ADOConnection1.KeepConnection :=true;
ADOConnection1.LoginPrompt :=false;
adoconnection1.ConnectionString :=format(cons,[ExtractFilePath(Application.exename)]);
end;
//导出
var
cons:string;
begin
cons:='Select * Into [Text;Database=%s/].%S.txt from %s';
try
begin
ADOConnection1.Connected := True;
ADOConnection1.Execute(format(cons,[edit3.Text,edit2.Text,listbox1.Items[listbox1.ItemIndex]]));
showmessage('文件导出成功!');
end;
except
showmessage('文件导出失败!');
end;
//导入
procedure Tdrdcform.Button5Click(Sender: TObject);
var f,s,con,ft: string;
i:integer;
begin
opendialog1.Filter:='文本文件(*.txt)|*.txt';
con:='select * into %s from [text;database=%s].%s';
adoconnection1.LoginPrompt :=false;
adoconnection1.KeepConnection :=true;
adoconnection1.Connected :=true;
if opendialog1.Execute then
begin
//得到表名
edit1.Text :=opendialog1.FileName;
f:=ExtractFileName(opendialog1.FileName);
i:=pos(ExtractFileext(opendialog1.FileName),f);
ft:=copy(f,1,i-1);
s:='drop table %s';
try
try
adoconnection1.Execute(format(s,[ft])); //如果表存在,先删除表
adoconnection1.Execute(format(con,[ft,extractfilepath(opendialog1.FileName ), ExtractFileName(opendialog1.FileName)])); //导入
application.MessageBox('数据库导入成功!','提示',mb_ok);
adoconnection1.GetTableNames(listbox1.Items);
except
adoconnection1.Execute(format(con,[ft,extractfilepath(opendialog1.FileName ), ExtractFileName(opendialog1.FileName) ]));
application.MessageBox('数据库导入成功!','提示',mb_ok);
adoconnection1.GetTableNames(listbox1.Items);
end;
except
application.MessageBox('数据库导入失败或命令被取消!','提示',mb_ok);
exit;
end;
end else
exit;
end;
参考我这个,没有问题。