怎么将客户端excel数据导入到服务端SQLServer表中呢?(50)

  • 主题发起人 主题发起人 ynkm
  • 开始时间 开始时间
Y

ynkm

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么将客户端excel数据导入到服务端SQLServer相应的表中呢?
 
唉..客户端程序读出来,写进去而已
 
SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:/Finance/account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
 
谢谢hongfeng0727;Gaxm 从其它地方引来的方法只是读取Excel数据,我的意思是用OPENDATASOURCE或OPENROWSET来实现从客户端存到服务端(两者不在同一机子上)。
 
OpenDataSource 里的路径我不知道支持网络路径不,可以先把客户端xls拷贝到本地来在利用OpenDataSource来导入,至于拷贝到本地可以利用delphi的调用command指令copy来做,
 
我一直是把excle直接放到SQL SERVER一个新表中,如下:MySQL := 'SELECT * into Tdrsj_A FROM OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''Data Source="'+EditPath.Text+'";User ID=Admin;Password=;Extended properties=Excel 5.0'')...['+ListBoxLs.Items[0]+']'; DM.ADOConnAcc.Connected := False; DM.ADOConnS.Connected := False; DM.ADOConnS.ConnectionString := Conn; try DM.ADOConnS.Connected := True; DM.ADOConnS.Execute(MySQL); except Application.MessageBox('连接数据库失败','提示!',mb_ok+mb_iconError); DM.ADOConnS.Connected := False; Exit; end;
 
不在同一台机器上有什么区别呢,除非你的程序时单机版。
 
程序是C/S结构的,用OPENDATASOURCE或OPENROWSET来实现从客户端存到服务端,数据量比较大。
 
客户端EXCEL表中的数据是要导入服务端SQL SERVER数据库一个已存在的表中,两者的字段名完全一致.
 
首先:只要是C/S结构,数据库就应该理解为是远程的,只是有时因为实际环境的原因,可能是安装在同一台计算机而已其次:要实现你的功能,用一个ADOQuery连接到数据库,然后增加SQL语句: SQLStr:='insert into TabelName SELECT * FROM OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'',''Data Source="'+OpenDialog1.FileName+'";User ID=Admin;Password=;Extended properties=Excel 5.0'')...Sheet1$';insert into EYES_Setup ADOQueryTmp.Close; ADOQueryTmp.SQL.Clear; ADOQueryTmp.SQL.Add(SQLStr); ADOQueryTmp..ExecSQL;第三:明白了导入方法,具体如何应用就是思路的问题了,呵呵
 
后退
顶部