poster
2019-12-10, 20:41
我正在尝试使用Matlab获取Access数据库中所有表的列表。
到目前为止,我正在使用actxobject,并且可以针对数据库成功运行查询,但是我在这里 (https://stackoverflow.com/questions/201282/how-to-get-table-names-from-access)阅读的所有方法均失败了。
我始终收到错误消息“对MSysObjects没有读取权限”。该查询在Access程序中运行良好,但是我程序的实现不允许我将查询存储在该程序中。
因此,我的问题是:是否可以通过Matlab列出Access数据库的所有表?
回答:
考虑以下代码:
conn = actxserver('ADODB.Connection'); connString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Nwind.mdb'; conn.Open(connString); rs = conn.OpenSchema('adSchemaTables').GetRows; tableNames = rs(3, ismember(rs(4,:),'TABLE') ); 结果是:
>> tableNames' ans = 'Categories' 'Customers' 'Employees' 'Order Details' 'Orders' 'Products' 'Shippers' 'Suppliers'
更多&回答... (https://stackoverflow.com/questions/3100998)
到目前为止,我正在使用actxobject,并且可以针对数据库成功运行查询,但是我在这里 (https://stackoverflow.com/questions/201282/how-to-get-table-names-from-access)阅读的所有方法均失败了。
我始终收到错误消息“对MSysObjects没有读取权限”。该查询在Access程序中运行良好,但是我程序的实现不允许我将查询存储在该程序中。
因此,我的问题是:是否可以通过Matlab列出Access数据库的所有表?
回答:
考虑以下代码:
conn = actxserver('ADODB.Connection'); connString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Nwind.mdb'; conn.Open(connString); rs = conn.OpenSchema('adSchemaTables').GetRows; tableNames = rs(3, ismember(rs(4,:),'TABLE') ); 结果是:
>> tableNames' ans = 'Categories' 'Customers' 'Employees' 'Order Details' 'Orders' 'Products' 'Shippers' 'Suppliers'
更多&回答... (https://stackoverflow.com/questions/3100998)