All pastes #495534 Raw Edit

Mine

public text v1 · immutable
·published 2007-05-18 20:20 UTC
rendered paste body
//#ifndef _DATA_BASE_H
//#define _DATA_BASE_H

#include <mysql.h>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>

using namespace std;

const char *server_groups[]={"dr_bank","embedded","server",NULL};

class DBase {
	public:
		DBase();
		~DBase();
	//protected:
		MYSQL *db_connect(const char *dbname);
		void db_disconnect(MYSQL *db);
		void db_do_query(MYSQL *db, const char *query);
		void die(MYSQL *db, char *fmt, ...);
	//private:
		//MYSQL *db;
		
};

DBase::DBase()
{
	mysql_server_init(1, (char **)"--skip-innodb",(char **)server_groups);
}

DBase::~DBase()
{
	//mysql_close(db);
}

void DBase::die(MYSQL *db, char *fmt, ...)
{
  va_list ap;
  va_start(ap, fmt);
  vfprintf(stderr, fmt, ap);
  va_end(ap);
  (void)putc('\n', stderr);
  if (db)
    db_disconnect(db);
  exit(EXIT_FAILURE);
}	

MYSQL* DBase::db_connect(const char *dbname)
{
	MYSQL *con = mysql_init(NULL);
	if ( !con )
		die(con, "Falha no mysql_init(NULL): %s", mysql_error(con));
	mysql_options(con, MYSQL_READ_DEFAULT_GROUP, "dr_bank");
	if (!mysql_real_connect(con, NULL, NULL, NULL, dbname, 0, NULL, 0))
		die(con, "Falha no mysql_real_connect : %s", mysql_error(con));
	return con;
}

void DBase::db_disconnect(MYSQL *db)
{
	mysql_close(db);
}

void DBase::db_do_query(MYSQL *db, const char *query)
{
	if ( mysql_query(db, query) != 0 )
		goto err;
	
	if (mysql_field_count(db) > 0)
	{
		MYSQL_RES *res;
		MYSQL_ROW row, end_row;
		int num_fields;
		
		if (!(res = mysql_store_result(db)))
			goto err;
		num_fields = mysql_num_fields(res);
		while ((row = mysql_fetch_row(res)))
		{
			(void)fputs(">> ", stdout);
			for ( end_row = row + num_fields; row < end_row; ++row)
				(void)printf("%s\t", row ? (char *)*row : "NULL" );
		}
			(void)fputc('\n', stdout);
			mysql_free_result(res);
	}
	else
		(void)printf("Row Afetados: %lld\n", mysql_affected_rows(db));
	
	return;
err:
	die(db, "db_do_query falhou %s [%s]", mysql_error(db), query);
}
	
int main(int argc, char **argv)
{
	DBase dbase;
	MYSQL *db;
	db = dbase.db_connect("dr_bank");
	dbase.db_do_query(db, "SHOW TABLE");
	dbase.db_disconnect(db);
	return 0;
}

//#endif
	
aqui compilando

g++ data_base.cpp -o teste `mysql_config --include --libmysqld-libs`
/tmp/ccRoycCt.s: Assembler messages:
/tmp/ccRoycCt.s:558: Error: unknown pseudo-op: `.weakref'
/tmp/ccRoycCt.s:559: Error: unknown pseudo-op: `.weakref'
/tmp/ccRoycCt.s:560: Error: unknown pseudo-op: `.weakref'
/tmp/ccRoycCt.s:561: Error: unknown pseudo-op: `.weakref'
/tmp/ccRoycCt.s:562: Error: unknown pseudo-op: `.weakref'
/tmp/ccRoycCt.s:563: Error: unknown pseudo-op: `.weakref'
/tmp/ccRoycCt.s:564: Error: unknown pseudo-op: `.weakref'
/tmp/ccRoycCt.s:565: Error: unknown pseudo-op: `.weakref'
/tmp/ccRoycCt.s:566: Error: unknown pseudo-op: `.weakref'
/tmp/ccRoycCt.s:567: Error: unknown pseudo-op: `.weakref'
/tmp/ccRoycCt.s:568: Error: unknown pseudo-op: `.weakref'
/tmp/ccRoycCt.s:569: Error: unknown pseudo-op: `.weakref'
/tmp/ccRoycCt.s:570: Error: unknown pseudo-op: `.weakref'
/tmp/ccRoycCt.s:571: Error: unknown pseudo-op: `.weakref'