Встроенный MySQL сервер и C++ builder
Но мне надо использовать встроенный сервер. В документации это libmysqld. Но в полной инсталяции я не нашел в директории MySQL ничего что мне нужно там есть:
1.
Mysql\lib\libmysql.lib
Mysql\lib\libmysql.dll
Mysql\lib\mysqlclient.lib
2.
Mysql\embedded\DLL\libmysqld.dll
Mysql\embedded\DLL\libmysqld.lib
Mysql\embedded\DLL\libmysqld.exp
3.
Myqsl\embedded\static\mysqlserver.lib
Я так понял что 1. это просто клиентская библиотека.
2 - это динамическая библиотека встроенного сервера, которую нужно грузить с ImportLibrary, но тогда зачем там .lib и .exp файлы?
3. Это статическая библиотека встроенного сервера,
в доке по MySQL как раз говорится что лучше юзать статические библиотеки с с++ builder.
Подключаю 3 библиотеку, при линковке выдает
invalid OMF...
Код:
MYSQLSERVER.LIB' contains invalid OMF record, type 0x21 (possibly COFF)
хорошо нашел что нужно сначала преобразовать, использую тулзу coof2omf которая идет с борландом
Код:
coof2omf mysqlserver.lib mysqld.lib
получаю файл размером 12!!! килобайт, хотя исходный файл 10метров? Думаю вряд ли это она..
пробую вариант 2 добавляю к проекту libmysqld.lib, там та же тема с OMF опять с помощью той же утилиты преобразую .lib файл добавляю его к проекту.. все компилится.
Нафиг нужен .exp файл?
Как только пытаюсь вызвать какуюнить функцию, то при запуске програмы выбрасывает в отладчик причем в ассемблер.
Ставлю брейк перед первой вызываемой функцией. До него даже не доходит. Т.е. при самом запуске вылетает.
Ничерта не пойму что нужно подключать, и как.
вот исходник:
Код:
static char *server_args[] = {
"this_program", /* this string is not used */
"--datadir=./data",
"--key_buffer_size=32M"
};
static char *server_groups[] = {
"embedded",
"server",
"this_program_SERVER",
(char *)NULL
};
void somefunct()
{
MYSQL * mysql;
MYSQL_RES * result;
MYSQL_ROW row;
if (mysql_server_init(sizeof(server_args)/sizeof(char *),server_args, server_groups))
ShowMessage("Error on init");
if(mysql = mysql_init(NULL))
ShowMessage("Can't init ");
mysql_server_end();
}
"this_program", /* this string is not used */
"--datadir=./data",
"--key_buffer_size=32M"
};
static char *server_groups[] = {
"embedded",
"server",
"this_program_SERVER",
(char *)NULL
};
void somefunct()
{
MYSQL * mysql;
MYSQL_RES * result;
MYSQL_ROW row;
if (mysql_server_init(sizeof(server_args)/sizeof(char *),server_args, server_groups))
ShowMessage("Error on init");
if(mysql = mysql_init(NULL))
ShowMessage("Can't init ");
mysql_server_end();
}
Зарание спасибо, очень надо просто.