我正在使用Microsoft visual studio 2005.任何人都可以告诉我如何获取MS访问数据库的表名和列名?
答案 0 :(得分:4)
通常,您应该使用数据库驱动程序的元数据功能来执行此操作。所有数据库调用级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
答案 1 :(得分:1)
您可以通过查询以下表格来完成此操作
MSysAccessObjects
MSysAccessXML
MSysACEs
MSysObjects
MSysQueries
MSysRelationships
如果这些表未显示打开表选项,并在“视图”选项卡上选中“系统对象”
答案 2 :(得分:1)
这个例子是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