我与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. 获得从sqlite的DB信息架构
- 2. 如何获得设备语言在sencha触摸或架构师
- 3. 如何获得zuora解决方案架构师认证?
- 4. 如何获得表
- 5. 如何获得的LINQ /实体框架
- 6. 如何获得剧情框架Coreplot
- 7. 如何获得Zend框架$ _GET对象
- 8. 如何获得模块在Zend框架
- 9. 如何获得骨架的坐标点?
- 10. 如何获得在Django的REST框架
- 11. 如何动态获取系统架构?
- 12. 如何获取设备的GPU架构?
- 13. 如何使用桥接表获得userId实体框架
- 14. 如何获得连接表数据实体框架
- 15. 如何获得层表
- 16. 我如何获得代表?
- 17. 如何获得在图表
- 18. 如何获得SQL Server表
- 19. 如何获得pvalues列表?
- 20. 如何获得一个表
- 21. 如何获得MySQL表
- 22. 这段代码获取表的架构
- 23. 获取表的SQL Server架构
- 24. 如何从架构创建一个表
- 25. 如何用架构层创建报表?
- 26. 架构SQL表
- 27. 如何获得球形结构元素?
- 28. 我如何从python获得C++结构?
- 29. 如何获得ninject传递到构造
- 30. IDE如何获得类层次结构
感谢罗纳德快速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