如何爲MS-Access數據庫標識「提供者特定模式」?如何獲取access.mdb的「提供程序特定模式」?
架構下面的例子:
{947bb102-5d43-11d1-bdbf-00c04fb92675}
如何爲MS-Access數據庫標識「提供者特定模式」?如何獲取access.mdb的「提供程序特定模式」?
架構下面的例子:
{947bb102-5d43-11d1-bdbf-00c04fb92675}
谷歌搜索{947bb102-5d43-11d1-bdbf-00c04fb92675}
變成了這個頁面http://allenbrowne.com/func-ado.html。一個例子用法是網頁上找到(其實不過是從https://support.microsoft.com/en-gb/kb/198755複製)
Option Explicit
Function ShowUserRosterMultipleUsers()
'Source: kb 198755.
Dim cn As New ADODB.Connection
'Dim cn2 As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim i, j As Long
cn.Provider = "Microsoft.Jet.OLEDB.4.0"
cn.Open "Data Source=C:\Data\Northwind2003.mdb"
'cn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:\Data\Northwind2003.mdb"
' The user roster is exposed as a provider-specific schema rowset
' in the Jet 4 OLE DB provider. You have to use a GUID to
' reference the schema, as provider-specific schemas are not
' listed in ADO's type library for schema rowsets
Set rs = cn.OpenSchema(adSchemaProviderSpecific, , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
'Output the list of all users in the current database.
Debug.Print rs.Fields(0).Name, "", rs.Fields(1).Name, "", rs.Fields(2).Name, rs.Fields(3).Name
While Not rs.EOF
Debug.Print rs.Fields(0), rs.Fields(1), rs.Fields(2), rs.Fields(3)
rs.MoveNext
Wend
End Function
調查OpenSchema方法給出了兩個鏈接 https://msdn.microsoft.com/en-us/library/ms676705(v=vs.85).aspx | http://www.w3schools.com/asp/met_conn_openschema.asp 這些鏈接中的第二個似乎表明,可以打開各種各樣的模式,但如果需要提供程序特定的模式,則必須通過adSchemaProviderSpecific
,然後通過GUI。在上面的Microsoft鏈接中,它表示
「提供程序查詢的GUID未由OLE DB規範定義。」
那麼這個模式{947bb102-5d43-11d1-bdbf-00c04fb92675}
數字來自哪裏呢?在我看來,它來自Jet數據庫引擎OLE DB提供程序的開發人員。
有趣的是,你的問題暗示每個數據庫(.mdb文件)有一個guid。事實上,我相信它是在OLE DB提供商,所以我認爲你的問題是誤導。
使用Google提供的特定模式在第一頁上提供http://allenbrowne.com/func-ado.html。你應該爲自己嘗試一些代碼,然後發佈一個更好的問題。你應該提供研究證據。 –
我GOOGLE了這個,發現了幾個職位,說明它可以用於什麼,但沒有明確說明如何獲得數字。關於如何達到這個數字的一些背景將非常感謝。謝謝。 – Chewy1985