设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3675|回复: 0
打印 上一主题 下一主题

連結ODBC資料來源的資料表

[复制链接]
跳转到指定楼层
1#
发表于 2002-11-5 19:18:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下示範如何連結Microsoft SQL Server資料表,並將顯示確認方塊:

Dim CurrentDatabase As Database
Dim MyTableDef As TableDef
' Open the Microsoft Access database named Test.mdb.
Set CurrentDatabase = DBEngine.Workspaces(0).OpenDatabase _
("C:\Access\Data\Test.mdb")
' Create the TableDef object.
Set MyTableDef = CurrentDatabase.CreateTableDef("Attached SQL Server Table")
' Set the connection information.
MyTableDef.Connect = "ODBC;DATABASE=AR;UID=saWD=nimda;DSN=SQLTEST"
MyTableDef.SourceTableName = "Accounts"
' Append the TableDef object to create the link.
CurrentDatabase.TableDefs.Append MyTableDef
' Display a confirmation message.
MsgBox "Finished attaching " & MyTableDef.SourceTableName & ".", 0


開啟ODBC Data Source的資料表
以下範例是在無法連結外部資料時,教導您如何直接開啟Microsoft SQL Server資料表,而後開啟資料表上的 Recordset。

警告:相對於連結,直接開啟ODBC資料是非常沒有效率的並且嚴重拖垮效能,儘可能使用連結資料表。

Dim CurrentDatabase As Database
Dim MySet As Recordset
' Open the external SQL Server database named AP.
' ***NOTE THAT PERFORMANCE USING THE DATABASE WILL BE SLOW.***
Set CurrentDatabase = DBEngine.Workspaces(0).OpenDatabase _
("", False,False, "ODBC;DATABASE=AP;UID=MyIDWD=whocares;DSN=SQLSERV")
' Open a Recordset object on the Accounts table.
Set MySet = CurrentDatabase.OpenRecordset("Accounts")


初始化設定
當您安裝外部資料庫的驅動程式時,安裝程式會將相關輸入寫入數個次索引的登錄,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.0\Engines下。不論您想要存取那一個外部資料來源,都會增加驅動索引。只有當您使用其它驅動程式時,才會加入次索引。縱然安裝程式可為登錄檔案項目寫入無誤的預設值,如果您有特殊環境或偏好可能需要手動更改。如果您覺得需要自定相關設定,以下範例與表格將有所幫助。

注意:當您更改初始設定時,新設定生效前,必需離開並重新啟動Microsoft Access。

 

驅動
驅動登錄索引包括Jet資料庫引擎的初始化設定。此索引典型的項目設定如以下範例:

PageTimeout 5
LockedPageTimeout 5
LockRetry 20
CommitLockRetry 20
MaxBufferSize 512
ReadAheadPages 16

Microsoft Access使用以下項目:

Stt 描述
PageTimeout 在內部外取的資料尚未閱讀索定與過前之間的時間,以100毫秒表示,預設值為5(500毫秒或0.5秒)。
LockedpageTimeout 在內部外取的資料尚未閱讀索定與過前之間的時間,以100毫秒表示,預設值為5(500毫秒或0.5秒)。
LockRetry 重覆嘗試存取索定頁的次數,預設值為20。(注意,LockRetry與下面敘述的CommitLockRetry有關)。
CommitLockRetry Jet資料庫引擎嘗試在資料上取得索定以便移交改變予該筆資料,如果不能取得移交索定,則無法成功更新該資料。
MaxBufferSize Jet資料庫引擎內部快取大小,計算單位為千位元(K)。MaxBufferSize必需在18到4096(含)間,預設值為512。
ReadAheadPages 作循序掃描時,事先閱讀的頁數。預設值為16

 

在引擎索引下是各個可安裝的ISAM驅動程式的次索引。各個次索引均包含對外部ISAM資料庫的驅動程式路徑。這些輸入的典型設定如以下範例:

Paradox C:\Windows\System\Mspdox35.dll
Xbase C:\ Windows\System\Msxbse35.dll
(With Xbase including dBASE and FoxPro)


每個次索引下的引擎索引均含有指向外部ISAM資料庫驅動程式的路徑。如果輸入錯誤或是某個特定驅動程式的路徑不正確,您將會收到這樣的訊息“找不到可安裝的ISAM。

 

XBASE
XBASE次索引包括Msxbase35.dll驅動程式的初始化設定,用於對FoxPro與dBASE的外部存取。這些輸入的典型設定如以下範例:

NetworkAccess 01
PageTimeout 0x00000258 (600)
INFPath C:\DBASE\System
CollatingSequence Ascii
Deleted 01
Century 00
Date MDY
Mark 0x00000000 (0)
Exact 00
SupportsLongNames 00

 

Microsoft Access使用的Xbase設定如下表:

輸入 描述
NetworkAccess 檔案索定偏好的開關指示。如果NetworkAccess是關的,資料表開放個人存取,不論OpenDatabase與OpenRecordset的個人選項設定為何。預設值是開的。
PageTimeout 在內部外取的資料尚未閱讀索定與過前之間的時間,以100毫秒表示,預設值為600(60秒)。
INFPath 指向副檔名為inf的檔案資料夾。Jet資料庫引擎會先在含有資料表的資料夾內尋找inf檔。如果inf檔不在資料庫檔案夾內,Jet資料庫引擎會在INFPath內尋找。如果也沒有INFPath,便會在資料庫的資料夾內尋找任何索引檔案(.cdx或.mdx)。這項輸入沒有預設值。
CollatingSequence 以Microsoft Access建立或開啟的dBASE資料表的自動分
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-27 03:04 , Processed in 0.089939 second(s), 24 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表