以文本方式查看主題 - 曙海教育集團論壇 (http://www.hufushizhe.com/bbs/index.asp) -- SQL Server數據庫 (http://www.hufushizhe.com/bbs/list.asp?boardid=67) ---- 關于“EXCEL數據導入MS SQL SERVER2000”的技術討論! (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=67&id=2517) |
-- 作者:wangxinxin -- 發布時間:2010-12-13 12:42:12 -- 關于“EXCEL數據導入MS SQL SERVER2000”的技術討論! 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"??? |