我正在尝试使用 Matlab 获取 Access 数据库中所有表的列表。
到目前为止,我使用的是 actxobject 并且可以成功地对数据库运行查询,但是我在这里阅读的所有方法都失败了。
我一直收到错误消息“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'