среда, 30 марта 2011 г.

Встроенный MySQL сервер

Для работы необходимы библиотеки libmysqld.lib и libmysqld.dll
Это минимальный вариант встроенного сервера. Взят с офф сайта.
Код:

#include "stdio.h"
#include "stdlib.h"
#include "stdarg.h"
#include "my_global.h"
#include "mysql.h"

#pragma comment(lib, "libmysqld.lib")

MYSQL *mysql;
MYSQL_RES *results;
MYSQL_ROW record;

static char *server_options[] = { "mysql_test",
 //"--defaults-file=.\\my.ini",
    "--basedir=.\\",
    "--datadir=.\\bases",
 "--default-character-set=latin1",
    NULL };
    
int num_elements = (sizeof(server_options) / sizeof(char *)) - 1;

static char *server_groups[] = { "test_MySQL_Embedded", "embedded", "server", NULL };

int main(void)
{
 int emb = 0;
 int affected = 0;

 printf("MySQL Embedded initializing . . .");
 emb = mysql_server_init(num_elements, server_options, (char **)server_groups);
 
 if (emb > 0)
 {
  printf("\nCan't init server\nPress any key to exit . . .");
  //system("pause");
  return 1;
 }
 mysql = mysql_init(NULL);
 mysql_options(mysql, MYSQL_READ_DEFAULT_GROUP, "client");
 mysql_options(mysql, MYSQL_OPT_USE_EMBEDDED_CONNECTION, NULL);

 //printf("\nconnecting . . .\n");
 if (!mysql_real_connect(mysql, NULL, NULL, NULL, "const", 0, NULL, 0))
  printf("%s\n", mysql_error(mysql));

 //printf("query\n");
 if (mysql_query(mysql, "SELECT * FROM try") != 0)
 {
  printf("\n%s\n", mysql_error(mysql));
  //system("pause");
  return 1;
 }

 affected = (int)mysql_affected_rows(mysql);
 if (affected < 0)
 {
  printf("\nField count: %d\n", mysql_field_count(mysql));

  results = mysql_store_result(mysql);

  //printf("output data\n");
  while((record = mysql_fetch_row(results))) 
  {
   printf("%s - %s \n", record[0], record[1]);
  }
 }
 else
 {
  printf("\nAffected rows: %d\n", affected);
 }

 printf("MySQL Embedded stoping . . .");
 mysql_free_result(results);
 mysql_close(mysql);
 mysql_server_end();
 //system("pause");
 return 0;
}
//---------------------------------------------------------------------------
psycho-coder
(http://programmersforum.ru/showthread.php?t=59147&page=5)

Комментариев нет:

Отправить комментарий