Весь день сижу перед монитором, пытаюсь подключиться к MySQL через c++. Файлы заголовков MySQL дистрибутива скопировал в проект, подключил (ошибок не выдаёт по этому поводу).
Воспользовался чьим-то кодом (на каком-то форуме человек нашёл решение и код якобы рабочий). Собственно я хочу всего-лишь вывести построчно логины аккаунтов с гмлвл > 0.
Во многих (опробованных мною) простейших реализациях подключения c++ к MySQL вылетает очень противная ошибка:
Код:
main.obj : error LNK2019: ссылка на неразрешенный внешний символ _mysql_close@4 в функции _main
и так почти на каждую функцию mysql_*.
Я использую:
Microsoft Windows XP Professional SP3
Microsoft Visual Studio 2008 Professional Edition (rus).
MySQL 5.1.39-community
Собственно, код:
Код:
#include <stdafx.h>
#include <Winsock2.h>
#include <mstcpip.h>
#include <mysql.h>
#include <errmsg.h>
MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;
void exiterr(int err)
{
fprintf(stderr, "%s\n", mysql_error(&mysql));
exit(err);
}
void main()
{
if(!(mysql_real_connect(&mysql,"localhost","mangos","mangos","realmd",3306,NULL,NULL)))
exiterr(1);
if(mysql_select_db(&mysql,"realmd"))
exiterr(2);
if(mysql_query(&mysql,"SELECT username FROM account WHERE gmlevel > 0"))
exiterr(3);
if(!(res = mysql_store_result(&mysql)))
exiterr(4);
while((row=mysql_fetch_row(res)))
{
for(unsigned int i = 0;i < mysql_num_fields(res); i++)
printf("%s\n",row[i]);
}
if(!mysql_eof(res))
exiterr(5);
mysql_free_result(res);
mysql_close(&mysql);
}
Помнится, на старом форуме была
тема про коннектор, но мне бы хотелось обойтись без подобных реализаций.
Если у кого-то имеется рабочий пример - очень прошу поделиться.
P.s. Выкладывали когда-то давно программку RUDB, она подключалась к БД и заполняла таблицы locales_*. Если у кого имеется код - буду рад покопаться в нём.
Спасибо.