Согласно нашему опыту, переделать такие инструментальные программы, как
msql-tcl
и msqljava
, созданные на основе C API mSQL для работы с C API
MySQL, несложно.
Сделать это можно так:
Пропустите исходный файл через сценарий оболочки
msql2mysql
. Для этого необходима программаreplace
, распространяющаяся вместе с MySQL Server.Откомпилируйте.
Исправьте все найденные компилятором ошибки.
Различия между реализациями C API в mSQL и MySQL заключаются в следующем:
В качестве типа в MySQL используется структура
MYSQL
(в mSQL в этом качестве применяетсяint
).Оператор
mysql_connect()
принимает в качестве параметра указатель на структуруMYSQL
. Такую структуру можно легко объявить как глобальную или создать ее с помощьюmalloc()
. Кроме того,mysql_connect()
принимает еще два параметра, в которых указываются имя пользователя и его пароль. Для использования данной структуры по умолчанию этим параметрам нужно присвоить значенияNULL
,NULL
.mysql_error()
принимает в качестве параметра структуруMYSQL
. При переносе старого кода достаточно добавить параметр в вызовmsql_error()
.Для всех ошибок MySQL возвращает номер ошибки и текстовое сообщение. mSQL же возвращает только текстовое сообщение об ошибке.
Существует некоторая несовместимость, обусловленная тем, что в MySQL Server можно создавать несколько соединений с сервером из одного и того же процесса.