引碧血剑的异构数据库之间完全可以用SQL语句导数据 txt 转 Access(50分)

  • 主题发起人 主题发起人 walimg
  • 开始时间 开始时间
W

walimg

Unregistered / Unconfirmed
GUEST, unregistred user!
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1691966

Form上放一个ADOConnection,连结指向目标Access库
比如txt文件在c:/temp/aaaa.txt
就执行
ADOConnection.Connected := True;
ADOConnection.Execute('Select * Into abcd From [Text;Database=c:/temp].aaaa.txt');
??为什么会提示出错,请高手帮忙。
错误信息:不正常地定义参数对象。提供了不一致或不完整的信息.
 
//初始化,设置连接字符串
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;
参考我这个,没有问题。
 
接受答案了.
 
后退
顶部