Я использую инструментарий MATLAB Database для чтения данных из файлов MS Access * .mdb. Раньше я делал это с помощью jdb c: odb c bridge 'sun.jdb c .odb c .JdbcOdbcDriver.' Однако этот драйвер больше не поддерживается и не доступен, и я реализую решение с использованием драйвера UCanAccess. Это основано на решении, описанном на форуме MATLAB Answers здесь . Тем не менее, я столкнулся с ошибкой драйвера и надеюсь, что кто-то может помочь предложить некоторые предложения!
Вот документация MATLAB по функции database ().
I ' Мы загрузили и установили UCanAccess 5.0.0.
Ниже мой код MATLAB:
javaaddpath('C:\Program Files\MATLAB\UCanAccess\UCanAccess-5.0.0-bin\ucanaccess-5.0.0.jar');
javaaddpath('C:\Program Files\MATLAB\UCanAccess\UCanAccess-5.0.0-bin\lib\commons-lang3-3.8.1.jar');
javaaddpath('C:\Program Files\MATLAB\UCanAccess\UCanAccess-5.0.0-bin\lib\commons-logging-1.2.jar');
javaaddpath('C:\Program Files\MATLAB\UCanAccess\UCanAccess-5.0.0-bin\lib\hsqldb-2.5.0.jar');
javaaddpath('C:\Program Files\MATLAB\UCanAccess\UCanAccess-5.0.0-bin\lib\jackcess-3.0.1.jar');
javaaddpath('C:\Program Files\MATLAB\UCanAccess\UCanAccess-5.0.0-bin\loader\ucanload.jar');
db_path = 'C:/Data/file.mdb';
url = ['jdbc:ucanaccess://' db_path];
conn = database('','','','net.ucanaccess.jdbc.UcanaccessDriver',url);
Объект подключения создается в MATLAB, но появляется предупреждение:
WARNING:You shouldn't use 'user' reserved word as column name in the table BatchHistory_Table (it refers to the database user).
Escape it in your SQL!
(e.g. SELECT [USER] FROM TABLE WHERE [USER]='Joe')
Означает ли это, что что-то не так или повреждено с моим файлом mdb? Файлы mdb создаются сторонним программным пакетом, и я не могу изменить какие-либо данные, имена столбцов или имена таблиц. Я просто хочу прочитать данные из файла mdb.
Затем, когда я смотрю на сообщение о соединении, conn.Message, это:
'JDBC Driver Error: UCAExc:::5.0.0-SNAPSHOT unexpected token: AND required: VALUE'
Я не знаю, какие шаги делать дальше или как найти дополнительную информацию об этой ошибке драйвера. Связано ли это с ожидаемым запросом? Я еще не пробовал делать запросы - сначала я хочу открыть соединение, а затем сделать запросы к файлу mdb.
Заранее благодарю за помощь!