RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
YandexMoney: 
41001198119846 
E-gold:
5128052

Глава 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.

Поиск

 

Найди своих коллег!