由于Access數(shù)據(jù)庫是一種文件型數(shù)據(jù)庫,所以無法跨服務(wù)器進(jìn)行訪問。下面我們來介紹一下如何利用SQL Server 的鏈接服務(wù)器,把地理上分散的Access 數(shù)據(jù)庫整合起來,使 Access 數(shù)據(jù)庫具有跨越 Web 服務(wù)器群的能力。此方法還可以使 Access 數(shù)據(jù)庫與SQL Server數(shù)據(jù)庫,甚至 Oracle 等網(wǎng)絡(luò)數(shù)據(jù)庫連接起來,實現(xiàn)異構(gòu)數(shù)據(jù)庫的互連,最終執(zhí)行分布式的查詢、更新、命令和事務(wù)。
1.創(chuàng)建鏈接服務(wù)器,連接本地 Access 數(shù)據(jù)庫
創(chuàng)建鏈接服務(wù)器可以用“企業(yè)管理器”,也可以執(zhí)行系統(tǒng)存儲過程 sp_addlinkedserver 來完成。用系統(tǒng)存儲過程相對快捷一些,格式為:
sp_addlinkedserver '鏈接服務(wù)器名', '產(chǎn)品名', 'Microsoft.Jet.OLEDB.4.0', 'Access數(shù)據(jù)庫路徑及文件名'。
指定 Microsoft.Jet.OLEDB.4.0 作為 provider_name,指定 Access 數(shù)據(jù)庫文件的完整路徑名作為 data_source。.mdb 數(shù)據(jù)庫文件必須駐留在本地服務(wù)器上,路徑必須是服務(wù)器上的有效路徑?! ?
例如,本例創(chuàng)建一個名為Anna的鏈接服務(wù)器,對 E:/我的文檔/ 文件夾下名為 DOS.mdb 的 Access 數(shù)據(jù)庫進(jìn)行操作,則在“SQL查詢分析器”中執(zhí)行:
sp_addlinkedserver 'Anna', 'Access 2000', 'Microsoft.Jet.OLEDB.4.0', 'E:/我的文檔/DOS.mdb'
2.創(chuàng)建鏈接服務(wù)器登錄映射
同樣可以用“企業(yè)管理器”或存儲過程來完成。存儲過程的格式為:
sp_addlinkedsrvlogin '鏈接服務(wù)器', false, 'SQLServer登錄名', 'admin', NULL
為訪問非保密的 Access 數(shù)據(jù)庫,試圖訪問 Access 數(shù)據(jù)庫的 SQL Server 登錄應(yīng)該有一個為用戶 Admin 定義的沒有密碼的登錄映射,下例使得本地用戶 sa 可以訪問名為 mytest 的鏈接服務(wù)器:
sp_addlinkedsrvlogin 'mytest', false, 'sa', 'admin', NULL
要訪問保密的 Access 數(shù)據(jù)庫,需使用注冊表編輯器配置注冊表,以便使用 Access 的正確的工作組信息文件。使用注冊表編輯器向該注冊表項中添加 Access 使用的工作組信息文件的完整路徑名稱:
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Jet/4.0/Engines/SystemDB
配置了注冊表項后,請使用 sp_addlinkedsrvlogin 創(chuàng)建從本地登錄到 Access 登錄的登錄映射:
sp_addlinkedsrvlogin 'mytest', false, 'sa', '[AccessUser]', '[AccessPwd]'
鏈接服務(wù)器和鏈接服務(wù)器登錄映射建立完畢,可以在企業(yè)管理器里進(jìn)行查看?! ?
3.鏈接服務(wù)器的測試
可以在“SQL查詢分析器”里對創(chuàng)建的鏈接服務(wù)器進(jìn)行測試。由于 Access 數(shù)據(jù)庫沒有目錄和架構(gòu)名稱,因此,基于 Access 的鏈接服務(wù)器中的表可以在分布式查詢中使用 [linked_server]...[table_name] 的四部分名稱進(jìn)行引用。下例從名為 mytest 的鏈接服務(wù)器中檢索 articles 表的所有行:
Select * from mytest...articles
或者:Select * from OpenQuery(mytest, 'Select * from .articles')
4.用代碼訪問鏈接服務(wù)器的 Access 數(shù)據(jù)庫
只有實現(xiàn)用代碼訪問鏈接服務(wù)器的 Access 數(shù)據(jù)庫,才使得鏈接服務(wù)器發(fā)揮了最大的靈活性和實用性??梢允褂萌械臏y試鏈接服務(wù)器的代碼建立存儲過程,供 Asp 代碼調(diào)用,也可以直接在 Asp 代碼中調(diào)用鏈接服務(wù)器。
新聞熱點(diǎn)
疑難解答
圖片精選