曙海教育集团论坛开发语言培训专区SQL Server数据库 → 关于“EXCEL数据导入MS SQL SERVER2000”的技术讨论!


  共有5965人关注过本帖树形打印

主题:关于“EXCEL数据导入MS SQL SERVER2000”的技术讨论!

美女呀,离线,留言给我吧!
wangxinxin
  1楼 个性首页 | 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:青蜂侠 帖子:1393 积分:14038 威望:0 精华:0 注册:2010-11-12 11:08:23
关于“EXCEL数据导入MS SQL SERVER2000”的技术讨论!  发帖心情 Post By:2010-12-13 12:42:12

1.问题:
在用DELPHI 7编程实现"EXCEL数据导入MS SQL SERVER 2000"时提示:
“已拒绝OLE DB提供程序‘Microsoft.Jet.OLEDB.4.0’的特殊访问,必须通过链接服务器来访问此提供程序。”
2.现状:
   A:MS SQL SERVER 2000数据导入EXCEL程序如下:  -----程序运行是成功的!
   第一:连接数据库:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\chengji.xls;Extended Properties=excel 8.0
   第二:导入数据:SELECT bianhao,yuwen into cj_yuwen  FROM a_chengji IN [ODBC][ODBC;Driver=SQL   server;UID=sys;PWD=;Server=YUAN;DataBase=tbms;]
    说明:将a_chengji表中的bianhao,yuwen列的数据导出到e:\chengji.xls的cj_yuwen工作表中.
   B:在MS SQL SERVER 2000查询分析器执行如下命令:  ----命令运行是成功的!
    insert into a_chengji (bianhao,yuwen,shuxue,yingyu) select bianhao,yuwen,shuxue,yingyu FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="e:\chengji.xls";Extended Properties="Excel 8.0;HDR=Yes;";Persist Security Info=False')...chengji$
    说明: 将e:\chengji.xls的chengji工作表中bianhao,yuwen,shuxue,yingyu列的数据导出到a_chengji表的bianhao,yuwen,shuxue,yingyu列中.
   C:在DELPHI 7编程实现"EXCEL数据导入MS SQL SERVER 2000":
  procedure Tf_chengji.BitBtn1Click(Sender: TObject);  
  var
  s_sql:string;
  begin
    s_sql:'insert into a_chengji (bianhao,yuwen,shuxue,yingyu) select bianhao,yuwen,shuxue,yingyu FROM OpenDataSource    ('''+'Microsoft.Jet.OLEDB.4.0'+''''+ ','+''''+'Data Source="'+'e:\chengji.xls'+'";Extended Properties="Excel     8.0;HDR=Yes;";Persist Security Info=False'+''''+')...chengji$';
    ADOConnection1.Connected:=false;
    ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Persist Security Info=false;User ID=sys;Initial Catalog=tbms';
    ADOConnection1.Connected:=true;
    ADOConnection1.Execute(s_sql);
  end;
  说明:MS SQL SERVER 2000本地数据库tbms,用户名:sys,密码:无。
  运行时,提示:
  “已拒绝OLE DB提供程序‘Microsoft.Jet.OLEDB.4.0’的特殊访问,必须通过链接服务器来访问此提供程序。”
3.分析:
  A和B的运行成功,说明MS SQL SERVER 2000和EXCEL是正常的,我们排除了MS SQL SERVER 2000和EXCEL异常的可能性。问题就出在DELPHI 7的程序上,B中命令运行成功,说明C中的s_sql语句是正确的,问题就应该在“链接服务器”上。
4.解决方案:
  A:找出被拒绝特殊访问的原因,从而解决此问题:“通过对TADOConnection控件ADOConnection1的属性设置”。
  B:新建“链接服务器”,从而访问此提供程序:
     sp_addlinkedserver N'Excel', N'Jet 4.0',
                   N'Microsoft.Jet.OLEDB.4.0',
                   N'e:\chengji.xls', NULL, N'Excel 5.0'
     GO
     exec sp_addlinkedsrvlogin N'Excel', false, sa, N'ADMIN', NULL
     可我在查询其chengji数据时:提示说找不到chengji表,或用户名不具备访问权限!
     SELECT * FROM EXCEL...chengji
5.新问题:
A:如何设置TADOConnection控件ADOConnection1的属性设置,以解决其被拒绝???
B:如何编写sp_addlinkedsrvlogin,以使“用户名:sys,密码:无”有权限????
C: 如果用sp_addlinkedserver建立新链接服务器,又应该如何在DELPHI 7编程实现"EXCEL数据导入MS SQL SERVER 2000"???

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

关于“EXCEL数据导入MS SQL SERVER2000”的技术讨论!








签名