求救 ( 积分: 200 )

  • 主题发起人 主题发起人 jklee
  • 开始时间 开始时间
J

jklee

Unregistered / Unconfirmed
GUEST, unregistred user!
谁知道在DELPHI5里怎么将一张数据表(SQL-SERVER)指定条件的数据导成EXECL文件,急啊~~~
大家给点思路啊
 
谁知道在DELPHI5里怎么将一张数据表(SQL-SERVER)指定条件的数据导成EXECL文件,急啊~~~
大家给点思路啊
 
按照文本文件格式写就是.
每个记录1行.
每个字段使用#9分隔,
文件扩展名使用XLS就可以满足你的要求了。
 
procedure TForm1.btn_MSSQL2EXCELClick(Sender: TObject);
begin
//MSSQL2EXCEL
ADOConnection1.ConnectionString:=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:/mysmallexe/excel2sql/yp.xls;'
+'Extended Properties=excel 8.0';
ADOConnection1.Execute('select * into [Abc] from drug_yk IN [ODBC] [ODBC;Driver=SQL Server;UID=sa;PWD=kcsoft58;Server=127.0.0.1;DataBase=kcsoft_his]');
//把一个MSSQL的数据库表及数据导出到excel中,abc为excel中不存在的表名,drug_yk为MSSQL里的表, sa为用户, kcsoft58为密码 , 127.0.0.1为服务大地址 ,kcsoft_his是数据库名称
ADOConnection1.Execute('insert into [abc] select * from drug_yk in [ODBC] [ODBC;Driver=SQL Server;UID=sa;PWD=kcsoft58;Server=127.0.0.1;DataBase=kcsoft_his]');
//把一个MSSQL的数据库表的记录增加到到excel中,执行以后相当于两倍量的数据,一次是导入,一次是insert
end;
 
用两个ADOQuery,一个打开SQLSERVER表,SQL语句中指定某些条件,
另一个打开EXCEL文件(ConnectionString用Build一看就明白了),
然后两个ADOQuery就可以拷数据了:
Q1.First;
Q2.First;
while not Q1.Eof do
begin
Q2.Insert;
Q2.Fields[0].AsString := Q1.Fields[0].AsString;
Q2.Fields[1].AsString := Q1.Fields[1].AsString;
...
Q2.Post;
Q1.Next;
Q2.Next;
end;
 
后退
顶部