Как обратиться к MySQL серверу
Мне нужно, чтоб моя программа работала как сервер, но данные хранила в SQL базе. На firststeps про обращение к SQL серверу из Win32 программы не нашел.
Помогите плз.
XX. MySQL APIs
141. MySQL C API
C API Datatypes
C API Function Overview
C API Function Descriptions
Есть две возможности работать с MySQL: remote server (удалённый сервер) и embeeded server (встроенный сервер)
для работы с remote server пишешь в заголовочном файле вот такую штуку:
#define __LCC__
#include <mysql.h>
линкуешь к проекту:
libmysql.lib
если будет ругаться, то и:
mysqlclient.lib
mysys.lib
mysys-max.lib
regex.lib
strings.lib
ложишь в каталог с бинарником libmySQL.dll
берёшь все эти файлы из каталогов include и lib/debug (в процессе разработки) либо lib/opt (в релизной версии) - эти каталоги лежат в корневой папке MySQL сервера, а вообще всё это есть в мануале к MySQL
для работы с remote server пишешь в заголовочном файле вот такую штуку:
#define __LCC__
#include <mysql.h>
линкуешь к проекту:
libmysql.lib
если будет ругаться, то и:
mysqlclient.lib
mysys.lib
mysys-max.lib
regex.lib
strings.lib
ложишь в каталог с бинарником libmySQL.dll
берёшь все эти файлы из каталогов include и lib/debug (в процессе разработки) либо lib/opt (в релизной версии) - эти каталоги лежат в корневой папке MySQL сервера, а вообще всё это есть в мануале к MySQL
Не нашел там в мануале, чтоб писали о удаленном серваке ( только вложенный ). Использую MS Visual Studio C++, и не получилось скомпилять, он достал меня со своими сокетами. Напиши хоть пример тупой проги обращающейся к серваку или дай ссылу плз.
Не нашел там в мануале, чтоб писали о удаленном серваке ( только вложенный ). Использую MS Visual Studio C++, и не получилось скомпилять, он достал меня со своими сокетами. Напиши хоть пример тупой проги обращающейся к серваку или дай ссылу плз.
Ну так и дай компилятору, чего он просит.
#include "mysql.h"
mysql_init(...);
mysql_real_connect(..);
См. примеры в доках на MySQL.
Ну так и дай компилятору, чего он просит.
#include "mysql.h"
mysql_init(...);
mysql_real_connect(..);
См. примеры в доках на MySQL.
можно поще. создать класс Реализ нужные тебе фунции. Например:
Db.cpp
#include "stdafx.h"
#include "dialog.h"
#include "Db.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CDb::CDb()
{
err = 0;
szErr = "\0";
if ( (mysql = mysql_init((MYSQL*) 0)) &&
mysql_real_connect( mysql, NULL, NULL, NULL, NULL, MYSQL_PORT,NULL, 0 ) )
{
if ( mysql_select_db( mysql, "bee_db" )<0)
{
err = mysql_errno( mysql );
//strcpy(szErr,mysql_error( mysql ));
//szErr = mysql_error( mysql );
mysql_close( mysql ) ;
return ;
}
}
else
{
err = mysql_errno( mysql );
//strcpy(szErr,mysql_error( mysql ));
return ;
}
}
CDb::~CDb()
{
mysql_free_result( res );
mysql_close( mysql );
}
bool CDb::query(char *szQuery)
{
if ( ! mysql_query( mysql, szQuery ) )
{
res = mysql_store_result( mysql );
rows = (int) mysql_num_rows( res );
fields = (int) mysql_num_fields( res );
return TRUE;
}
else
return FALSE;
}
bool CDb::next(void)
{
row = mysql_fetch_row( res );
if ( row != NULL )
return TRUE;
else
return FALSE;
}
Db.h
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <windows.h>
#include <winsock2.h>
#include <mysql.h>
class CDb
{
public:
unsigned int err;
char *szErr;
MYSQL *mysql;
MYSQL_RES *res;
MYSQL_ROW row;
int rows,fields;
CDb(void);
virtual ~CDb(void);
bool query(char *);
bool next(void);
};
Работает как часы.
Функция mysql_real_connect(...) (не исп. фун. mysql_connect) в кач. второго параметра указываешь хост на котором запущен скервер СУБД.
линкуешь к проекту:
libmysql.lib
если будет ругаться, то и:
если будет ругаться, то и: mysqlclient.lib
mysys.lib
mysys-max.lib
regex.lib
strings.lib
ни разу не ругался!!!?
если будет ругаться, то и: mysqlclient.lib
mysys.lib
mysys-max.lib
regex.lib
strings.lib
ни разу не ругался!!!?
у меня нету этих либок...
где их достать?
в сорсах на мускул их нет.