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

Ваш аккаунт

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

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

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

Как обратиться к MySQL серверу

3.4K
22 марта 2006 года
_Undead_
43 / / 05.10.2004
Каким образом обратиться к SQL серверу из обычной Win32 программы?

Мне нужно, чтоб моя программа работала как сервер, но данные хранила в SQL базе. На firststeps про обращение к SQL серверу из Win32 программы не нашел.
Помогите плз.
285
22 марта 2006 года
Romik
479 / / 24.11.2002
Читай мануал к MySQL
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
3.4K
22 марта 2006 года
_Undead_
43 / / 05.10.2004
Цитата:
Originally posted by Romik
для работы с 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++, и не получилось скомпилять, он достал меня со своими сокетами. Напиши хоть пример тупой проги обращающейся к серваку или дай ссылу плз.

1.8K
22 марта 2006 года
_const_
229 / / 26.11.2003
Цитата:
Originally posted by _Undead_
Не нашел там в мануале, чтоб писали о удаленном серваке ( только вложенный ). Использую MS Visual Studio C++, и не получилось скомпилять, он достал меня со своими сокетами. Напиши хоть пример тупой проги обращающейся к серваку или дай ссылу плз.



Ну так и дай компилятору, чего он просит.

 
Код:
#include <winsock2.h>
#include "mysql.h"

mysql_init(...);
mysql_real_connect(..);

См. примеры в доках на MySQL.
285
23 марта 2006 года
Romik
479 / / 24.11.2002
Уважаемый, воспользовавшись поиском (я не говорю о топиках на главной странице) на этом сайте, я нашёл документацию на русском языке. Обратите внимание, что Native interface - это не единственный способ связи с MySQL Server, есть ещё ODBC
16K
12 апреля 2006 года
CGoodMann
8 / / 12.04.2006
Цитата:
Originally posted by _const_
Ну так и дай компилятору, чего он просит.
 
Код:
#include <winsock2.h>
#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) в кач. второго параметра указываешь хост на котором запущен скервер СУБД.

395
12 апреля 2006 года
RelB
367 / / 09.11.2002
Насколько я знаю, для MySQL существует ODBC драйвер...
16K
12 апреля 2006 года
CGoodMann
8 / / 12.04.2006
Цитата:
Originally posted by Romik
линкуешь к проекту:
libmysql.lib
если будет ругаться, то и:

если будет ругаться, то и: mysqlclient.lib
mysys.lib
mysys-max.lib
regex.lib
strings.lib


ни разу не ругался!!!?

3.4K
17 апреля 2006 года
_Undead_
43 / / 05.10.2004
Цитата:
Originally posted by CGoodMann
если будет ругаться, то и: mysqlclient.lib
mysys.lib
mysys-max.lib
regex.lib
strings.lib


ни разу не ругался!!!?



у меня нету этих либок...
где их достать?
в сорсах на мускул их нет.

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