Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Встроенный MySQL сервер и C++ builder

501
25 февраля 2006 года
hell_admin
110 / / 02.10.2004
Не как не могу разабратся, в библиотеках для работы с MySQL, скачал версию 4.1.13 покапался в документации, под VC++ скомпилировал даже клиентский проект с libmysql.lib.

Но мне надо использовать встроенный сервер. В документации это 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();
}


Зарание спасибо, очень надо просто.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог