Глава 7. Mysql_mex
Версия 1.12. Краткое описание интерфейса
Эти файлы генерируют MEX-функции Matlab, которые могут использоваться, чтобы
обратиться к базе данных MySQL из пакета Matlab (разработчик: MathWorks,
http://www.mathworks.com).
Оригинальный интерфейс был написан Kimmo Uutela (Kimmo.Uutela@hut.fi,
http://boojum.hut.fi/~kuutela) и изменен John Fisher
(jfisher@are.berkeley.edu). Затем он был перенесен под Windows Brian
Shand (bshand@dip5.ee.uct.ac.za). Функции нуждаются в библиотеке
mysqlclient
(public domain, входит в дистрибутив MySQL).
Поддерживаемые системы
Этот интерфейс был протестирован на Linux с Matlab 6 и на HP-UX с Matlab 5 и
6, но он работает и на других вариантах UNIX с модификациями в
Makefile
. Интерфейс был также протестирован под Windows NT 4.0.
Установка
Вы должны иметь уже установленные Matlab и MySQL. Для Windows я использовал
Microsoft Visual C++ 5.0, библиотеку клиентов MySQL из пакета
winclients-3.22.14.zip
и Cygwin GNU Make. Более поздние версии
библиотеки клиентов MySQL должны работать и с VC++ 6. Для UNIX использовался
GCC. Скопируйте правильную версию Makefile
:
cp Makefile.hpux Makefile # Для HP-UX
cp Makefile.linux Makefile # Для Linux
copy Makefile.win32 Makefile # Для Windows
Проверьте координаты библиотек и каталог назначения в первых строках
Makefile
. Затем откомпилируйте Mex:
gmake
Проверьте библиотеку и инсталлируйте файлы:
gmake test
gmake install
Возможные проблемы установки
Библиотека mysqlclient
должна компилироваться как
position-независимый код. На HP-UX это может быть выполнено параметром
компиляции +z
, на Linux надо использовать параметр
-fPIC
.
Чтобы использовать интерфейс в Linux с Matlab 5, Вы должны иметь библиотеку
libmysqlclient
, совместимую с libc5
. В некоторых
случаях Вы можете столкнуться с необходимостью явно добавить библиотеку
libgcc
к библиотекам системы. Правильное имя находится с помощью
locate libgcc.a
.
Могут иметься проблемы с использованием различных версий MySQL DLL
одновременно. Должно быть возможно использовать последнюю версию DLL с Visual
C++ 5.0. При установке DLL скопирована в двоичный каталог Matlab так, чтобы она
была легко доступна в пути поиска файлов, когда это необходимо.
Использование команд
Будут установлены две команды Matlab:
- MYSQL: делает общие запросы SQL
- SQLINSERT: вставляет записи в базу данных
Синтаксис:
- MYSQL('open',HOST,USER,PASSWD);
Открывает подключение к базе данных на
HOST
от имени пользователя USER
с паролем доступа
PASSWD
.
- MYSQL('close');
Закрывает подключение к базе данных.
- [RESULT,AFFECTED,INSERTID]=MYSQL(QUERY);
Возвращает структуру с именами
поля из запроса.
- [RESULT,AFFECTED,INSERTID]=MYSQL(QUERY,'fn');
Возвращает структуру с
именами полей fn1,fn2,...
- [RESULT]=MYSQL(QUERY,'mat');
Возвращает двойную матрицу,
соответствующую выводу запроса. Это нельзя использовать на нечисловых базах
данных. NULL
возвращен как пустая двойная матрица. Следующие типы
будут возвращены как double
: DECIMAL, TINY, SHORT, LONG,
FLOAT, DOUBLE, LONGLONG, INT24
. Все типы BLOB
будут
возвращены как векторы uint8
. Другие типы данных будут возвращены
как строки.
- [AFFECTED,INSERTID]=SQLINSERT (TABLE,'valuename',value,...);
Вставляет
записи в базу данных SQL.
содержание назад вперед