Использование UCanAccess для чтения файла mdb из MATLAB - PullRequest
0 голосов
/ 18 июня 2020

Я использую инструментарий 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.

Заранее благодарю за помощь!

...