我與Microsoft Visual Studio的工作2005.Can誰能告訴我如何獲得一個MS Access數據庫的表名和列名?如何獲得表架構
如何獲得表架構
回答
通常情況下,你應該將數據庫驅動程序的元數據設施做到這一點。所有數據庫調用級別API我聽說可以返回數據庫元數據的供應方法/函數/過程,通常作爲結果集。
你沒有提到任何語言,所以讓我們假設你正在使用C#。在這種情況下,你會成爲一個OLEDB(OLEDB是.NET語言驅動程序框架)連接對象,並調用GetOleDbSchemaTable
方法就可以了。這會給你一個DataTable
對象,讓你訪問傳達這些信息的數據行。
對於OLEDB例如,參見:http://msdn.microsoft.com/en-us/library/aa288452(VS.71).aspx
對於GetOleDbSchemaTable方法,參見:http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbconnection.getoledbschematable(VS.71).aspx
有關類型由OLEDB提供的元數據的信息,請參見:http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbschemaguid_members(VS.71).aspx
可以做到這一點通過查詢以下表格
MSysAccessObjects
MSysAccessXML
MSysACEs
MSysObjects
MSysQueries
MSysRelationships
如果這些表不顯示打開表的選項,並在 「查看」 選項卡中勾選「系統對象「
我會建議反對的。這些對象可能不適用於每個用戶。此外,這是特定於訪問和AFAIK,這些表中哪些是可用的,以及它們具有哪些列隨訪問版本而變化。如果你使用驅動元數據,你的代碼或多或少是可移植的。 – 2010-01-06 14:19:41
這個例子是VBA,但它應該是可能的,因爲它使用ADO翻譯的想法。
Dim rs As ADODB.Recordset
Dim cn As ADODB.Connection
Set cn = "Provider = Microsoft.Jet.OLEDB.4.0; " _
& "Data Source = MyDB.mdb"
Set rs = cn.OpenSchema(_
adSchemaTables, Array(Empty, Empty, Empty))
Debug.Print rs.GetString
rs.Close
Set rs = Nothing
類似於adSchemaTables
,adSchemaColumns
可用於返回列。約束是TABLE_CATALOG
,TABLE_SCHEMA
,TABLE_NAME
,COLUMN_NAME
,所以你可以看到,可以返回一個特定的表列數據,或者所有列和相關的表名。例如:
Set rs = cn.OpenSchema(_
adSchemaTables, Array(Empty, Empty, "Employees", "name"))
Debug.Print rs("TABLE_NAME") & "." _
& rs("COLUMN_NAME") & ": " _
& rs("DATA_TYPE")
欲瞭解更多信息,請參閱https://msdn.microsoft.com/en-us/library/ms676705.aspx
- 1. 如何獲得表/視圖名稱(即刪除架構前綴)
- 2. 如何獲取表的架構名稱
- 3. 如何獲得許多表結構?
- 4. 獲得從sqlite的DB信息架構
- 5. 如何獲得zuora解決方案架構師認證?
- 6. 我如何獲得sencha架構師從軌道讀取json
- 7. 如何獲得設備語言在sencha觸摸或架構師
- 8. 如何獲得表
- 9. 如何獲得的LINQ /實體框架
- 10. 如何獲得在噴霧框架
- 11. 如何獲得在Django的REST框架
- 12. 如何獲得Zend框架$ _GET對象
- 13. 如何獲得模塊在Zend框架
- 14. 如何獲得ios OneDrive框架
- 15. 如何獲得骨架的座標點?
- 16. 如何獲得框架計數
- 17. 如何獲得劇情框架Coreplot
- 18. 如何動態獲取系統架構?
- 19. 如何獲取設備的GPU架構?
- 20. 如何獲得表列表和結構在sql server
- 21. 如何正確地架構架構
- 22. 如何獲得連接表數據實體框架
- 23. 如何使用橋接表獲得userId實體框架
- 24. 在遊戲框架如何獲得表單數據
- 25. 如何用架構層創建報表?
- 26. 如何從架構創建一個表
- 27. 這段代碼獲取表的架構
- 28. 獲取表的SQL Server架構
- 29. 架構SQL表
- 30. 如何獲得應急表?
感謝羅納德快速reply..i試圖this..but在這裏,我們將使用for循環。我只是想知道一種不用循環的方法 – sona 2010-01-06 13:49:58
Sona,它是「羅蘭」。沒關係,常見的錯誤。無論如何,我想我不明白。我的意思是,有多個表和多個列。無論如何,你必須反覆修改?請解釋如何在沒有循環結構的情況下處理數據。 – 2010-01-06 14:15:19
對不起羅蘭......你的權利,我們需要構建循環......但如果表中包含這麼多列意味着它會影響perfromance..so我檢查任何功能是有在ADO.net得到列名不使用for循環。我發現在SQL中我們可以使用SELECT COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME ='「+ Customers +」'「」;獲得列結構...你知道MS訪問中的任何東西 – sona 2010-01-06 14:56:23