Click here to Skip to main content
15,904,817 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
QuestionRe: Vc++ dll creation Pin
CPallini17-Jun-09 23:05
mveCPallini17-Jun-09 23:05 
AnswerRe: Vc++ dll creation Pin
anishkannan17-Jun-09 23:34
anishkannan17-Jun-09 23:34 
QuestionRe: Vc++ dll creation Pin
CPallini17-Jun-09 23:41
mveCPallini17-Jun-09 23:41 
AnswerRe: Vc++ dll creation Pin
anishkannan17-Jun-09 23:51
anishkannan17-Jun-09 23:51 
QuestionRe: Vc++ dll creation Pin
CPallini18-Jun-09 0:00
mveCPallini18-Jun-09 0:00 
AnswerRe: Vc++ dll creation Pin
anishkannan18-Jun-09 0:08
anishkannan18-Jun-09 0:08 
GeneralRe: Vc++ dll creation Pin
CPallini18-Jun-09 0:38
mveCPallini18-Jun-09 0:38 
QuestionHow to Connect C++ code with MySQL Pin
6kyAngel17-Jun-09 18:13
6kyAngel17-Jun-09 18:13 
Hi,

I already download the example code and try to connect to MySQL using "mysql-connector-c++-noinstall-1.0.5-win32-vs2005".

The problem that I'm facing is, I can't even compile the code-error:

fatal error C1083: Cannot open include file: 'mysql.h': No such file or directory

The example program that I used is as below. I already change the setting, include the HEADER file and INCLUDE file while compiling, but still got error.:

///////////////////////////////////////////////////////////////////////////////////////
//// mysqlplus.cpp
///////////////////////////////////////////////////////////////////////////////////////

#include "mysqlplus.h"

#include <stdio.h>

///////////////////////////////////////////////////////////////////////////////////////
//// sql_connection_c

sql_connection_c::sql_connection_c()
{
   host = user = password = database = 0;
   opendbbase = 0;
   errc = 0;
}

sql_connection_c::sql_connection_c( char *__database, char *__host, char *__user, char *__password )
{
   host = user = password = database = 0;
   opendbbase = 0;
   errc = 0;

   connect( __database, __host, __user, __password );
}

sql_connection_c::~sql_connection_c()
{
   if ( host )
   {
	   delete[] host;
      host = 0;
   }

   if ( user )
   {
	   delete[] user;
      user = 0;
   }

   if ( password )
   {
	   delete[] password;
      password = 0;
   }
   if ( database )
   {
	   delete[] database;
      database = 0;
   }

   OPENDB *odb;
	for ( odb = opendbbase; odb; odb = odb->next )
   {
      mysql_close( &odb->mysql );
   }

   while ( opendbbase )
   {
	   odb = opendbbase;
	   opendbbase = opendbbase->next;
	   if ( odb -> busy )
      {
		   //fprintf(stderr,"destroying Database object before Connect object(s)\n");
      }

	   delete odb;
   }
}

///////////////////////////////////////////////////////////////////////////////////////

void sql_connection_c::connect( char *__database, char *__host, char *__user, char *__password )
{
   host = new char[ strlen( __host ) + 1 ];
   strcpy( host, __host );
   
   if ( __user )
   {
      user = new char[ strlen( __user ) + 1 ];
      strcpy( user, __user );
   }
   if ( __password )
   {
      password = new char[ strlen( __password ) + 1 ];
      strcpy( password, __password );
   }

   database = new char[ strlen( __database ) + 1 ];
   strcpy( database, __database );

   freedb( grabdb() ); //// open one connection
}

///////////////////////////////////////////////////////////////////////////////////////

OPENDB *sql_connection_c::grabdb()
{
   OPENDB *odb;
   for ( odb = opendbbase; odb; odb = odb->next )
   {
      if ( !odb->busy )
      {
         break;
      }
   }

   if ( !odb )
   {
	   odb = new OPENDB;
	   if ( !mysql_init( &odb->mysql ) )
	   {
		   //fprintf( stderr, "mysql_init() failed\n" );
		   errc = 1;
	   }
	   if ( !mysql_connect( &odb->mysql, host, user, password ) )
	   {
		   //fprintf( stderr, "mysql_connect(%s,%s,***) failed\n", host, user );
		   errc = 2;
	   }
	   if ( mysql_select_db( &odb->mysql, database ) )
	   {
		   //fprintf( stderr, "mysql_select_db(%s,%s,%s,%s) failed\n", host, user, password, database );
		   errc = 3;
	   }

	   odb->busy = 1;
	   odb->next = opendbbase;
	   opendbbase = odb;
   }
   else
   {
      odb->busy++;
   }

   return odb;
}

void sql_connection_c::freedb( OPENDB *odb )
{
   odb->busy = 0;
}

short sql_connection_c::errcode()
{
   return errc;
}

///////////////////////////////////////////////////////////////////////////////////////
//// sql_query_c

sql_query_c::sql_query_c()
{
   sql_connection = 0;
   odb = 0;
   res = 0;
   row = 0;

   results.set_size( 0 );
}

sql_query_c::sql_query_c( sql_connection_c *__sql_connection )
{
   sql_connection = __sql_connection;
   odb = sql_connection->grabdb();
   res = 0;
   row = 0;

   results.set_size( 0 );
}

sql_query_c::sql_query_c( sql_connection_c *__sql_connection, char *sql )
{
   sql_connection = __sql_connection;
   odb = sql_connection->grabdb();
   res = 0;
   row = 0;

   try_execute( sql );

   results.set_size( 0 );
}

sql_query_c::~sql_query_c()
{
   for ( int idx = 0; idx < results.n_items(); idx++ )
   {
      delete results[ idx ];
      results[ idx ] = 0;
   }

   if ( res )
   {
	   mysql_free_result( res );
   }

   if ( odb )
   {
	   sql_connection->freedb( odb );
   }
}

///////////////////////////////////////////////////////////////////////////////////////

int sql_query_c::try_execute( char *sql )
{
   if ( sql_connection && odb && !res )
   {
	   if ( !mysql_query( &odb->mysql, sql ) )
      {
         return 1;
      }
   }

   return 0;
}

int sql_query_c::execute( char *sql )
{
   if ( sql_connection && odb && !res )
   {
	   if ( try_execute( sql ) )
      {
		   res = mysql_store_result( &odb->mysql );
      }
   }

   return (int)res;
}

sql_result_c *sql_query_c::store()
{
   if ( !res )
   {
      return 0;
   }

   sql_result_c *p = new sql_result_c( this, res );
   results.add( p );

   res = 0; //// prevent someone else from freeing this block

   return p;
}

void sql_query_c::free_result( sql_result_c *sql_result )
{
   for ( int idx = 0; idx < results.n_items(); idx++ )
   {
      if ( results[ idx ] == sql_result )
      {
         delete results[ idx ];
         results[ idx ] = 0;
         results.del( idx );
         break;
      }
   }
}

void sql_query_c::free_result()
{
   if ( sql_connection && odb && res )
   {
	   mysql_free_result( res );
	   res = 0;
	   row = 0;
   }
}

///////////////////////////////////////////////////////////////////////////////////////

__int64 sql_query_c::insert_id()
{
   if ( sql_connection && odb )
   {
	   return mysql_insert_id( &odb->mysql );
   }

   return -1;
}

///////////////////////////////////////////////////////////////////////////////////////

MYSQL_FIELD *sql_query_c::fetch_field()
{
   if ( sql_connection && odb && res )
   {
      return mysql_fetch_field( res );
   }

   return 0;
}

char *sql_query_c::fetch_fieldname()
{
   MYSQL_FIELD *field = 0;

   if ( sql_connection && odb && res )
   {
      field = mysql_fetch_field( res );
   }

   return field ? field->name : "";
}

///////////////////////////////////////////////////////////////////////////////////////

int sql_query_c::ping()
{
   if ( odb )
   {
      return mysql_ping( &odb->mysql );
   }

   return -1;
}

///////////////////////////////////////////////////////////////////////////////////////
//// sql_var_c

sql_var_c::sql_var_c()
{
   value = 0;
}

sql_var_c::sql_var_c( int i )
{
   value = 0;
   *this = i;
}

sql_var_c::sql_var_c( double d )
{
   value = 0;
   *this = d;
}

sql_var_c::sql_var_c( char *s )
{
   value = 0;
   *this = s;
}

sql_var_c::sql_var_c( const char *s )
{
   value = 0;
   *this = (char *)s;
}

sql_var_c::~sql_var_c()
{
   release();
}

///////////////////////////////////////////////////////////////////////////////////////

sql_var_c::operator int ()
{
   if ( !value )
   {
      return 0;
   }

   return atoi( value );
}

sql_var_c::operator double ()
{
   if ( !value )
   {
      return 0;
   }

   return atof( value );
}

sql_var_c::operator char * ()
{
   return value;
}

sql_var_c::operator const char * ()
{
   return value;
}

///////////////////////////////////////////////////////////////////////////////////////

sql_var_c::operator = ( int i )
{
   release();

   value = new char [ 11 + 1 ];
   itoa( i, value, 10 );
}

sql_var_c::operator = ( double d )
{
   release();

   value = new char [ 32 ];
   sprintf( value, "%15.5f", d );
}

sql_var_c::operator = ( char *s )
{
   release();

   value = new char [ strlen( s ) + 1 ];
   strcpy( value, s );
}

sql_var_c::operator = ( const char *s )
{
   *this = (char *)s;
}

///////////////////////////////////////////////////////////////////////////////////////

void sql_var_c::release()
{
   if ( value )
   {
      delete[] value;
      value = 0;
   }
}

///////////////////////////////////////////////////////////////////////////////////////
//// sql_row_c

sql_row_c::sql_row_c()
{
   row = 0;
   __allow_null = 1; //// by default, return null values
}

sql_row_c::sql_row_c( MYSQL_ROW __row )
{
   row = __row;
   __allow_null = 1; //// by default, return null values
}

///////////////////////////////////////////////////////////////////////////////////////

void sql_row_c::allow_null( int allow )
{
   __allow_null = allow;
}

///////////////////////////////////////////////////////////////////////////////////////

sql_var_c sql_row_c::operator [] ( int idx )
{
   return sql_var_c( __allow_null ? ( row[ idx ] ) : ( row[ idx ] ? row[ idx ] : "" ) );
}

///////////////////////////////////////////////////////////////////////////////////////
//// sql_field_c

sql_field_c::sql_field_c()
{
   field = 0;
}

sql_field_c::sql_field_c( MYSQL_FIELD *__field )
{
   field = __field;
}

///////////////////////////////////////////////////////////////////////////////////////

char *sql_field_c::get_name()
{
   return field->name;
}

char *sql_field_c::get_default_value()
{
   return field->def;
}

enum_field_types sql_field_c::get_type()
{
   return field->type;
}

unsigned int sql_field_c::get_max_length()
{
   return field->max_length;
}

///////////////////////////////////////////////////////////////////////////////////////
//// sql_result_c

sql_result_c::sql_result_c()
{
   query = 0;
   res = 0;
}

sql_result_c::sql_result_c( sql_query_c *__query, MYSQL_RES *__res )
{
   query = __query;
   res = __res;
}

sql_result_c::~sql_result_c()
{
   if ( res )
   {
	   mysql_free_result( res );
   }
}

///////////////////////////////////////////////////////////////////////////////////////

__int64 sql_result_c::n_rows()
{
   if ( query && res )
   {
      return mysql_num_rows( res );
   }

   return 0;
}

sql_row_c sql_result_c::fetch_row()
{
   MYSQL_ROW row = mysql_fetch_row( res );

   return sql_row_c( row );
}

///////////////////////////////////////////////////////////////////////////////////////

unsigned int sql_result_c::n_fields()
{
   if ( query && res )
   {
      return mysql_num_fields( res );
   }

   return 0;
}

sql_field_c sql_result_c::fetch_field( unsigned int field_idx )
{
   if ( query && res )
   {
      MYSQL_FIELD *field = mysql_fetch_field_direct( res, field_idx );
      return sql_field_c( field );
   }

   return sql_field_c();
}

AnswerRe: How to Connect C++ code with MySQL Pin
CPallini17-Jun-09 21:36
mveCPallini17-Jun-09 21:36 
QuestionRe: How to Connect C++ code with MySQL Pin
David Crow18-Jun-09 2:46
David Crow18-Jun-09 2:46 
QuestionAnimated GIF's as back ground under push buttons in MFC Pin
kishoresajja17-Jun-09 13:54
kishoresajja17-Jun-09 13:54 
AnswerRe: Animated GIF's as back ground under push buttons in MFC Pin
chandu00417-Jun-09 20:42
chandu00417-Jun-09 20:42 
GeneralRe: Animated GIF's as back ground under push buttons in MFC Pin
kishoresajja18-Jun-09 11:44
kishoresajja18-Jun-09 11:44 
GeneralRe: Animated GIF's as back ground under push buttons in MFC Pin
kishoresajja22-Jun-09 9:55
kishoresajja22-Jun-09 9:55 
AnswerRe: Animated GIF's as back ground under push buttons in MFC Pin
kilt17-Jun-09 20:46
kilt17-Jun-09 20:46 
GeneralRe: Animated GIF's as back ground under push buttons in MFC Pin
kishoresajja18-Jun-09 11:44
kishoresajja18-Jun-09 11:44 
QuestionConnecting Push buttons by arrow lines in MFC Form View Pin
kishoresajja17-Jun-09 13:48
kishoresajja17-Jun-09 13:48 
AnswerRe: Connecting Push buttons by arrow lines in MFC Form View Pin
«_Superman_»17-Jun-09 16:28
professional«_Superman_»17-Jun-09 16:28 
QuestionSOLVED MFC and F1 help [modified] Pin
Vaclav_17-Jun-09 13:29
Vaclav_17-Jun-09 13:29 
AnswerRe: MFC and F1 help Pin
Ozer Karaagac17-Jun-09 15:08
professionalOzer Karaagac17-Jun-09 15:08 
AnswerRe: MFC and F1 help Pin
Jijo.Raj17-Jun-09 20:50
Jijo.Raj17-Jun-09 20:50 
AnswerRe: MFC and F1 help Pin
chandu00417-Jun-09 21:10
chandu00417-Jun-09 21:10 
AnswerSOLVED MFC and F1 help using PreTranslateMessage [modified] Pin
Vaclav_18-Jun-09 9:10
Vaclav_18-Jun-09 9:10 
QuestionAlias an Array of Pointers Pin
Skippums17-Jun-09 11:00
Skippums17-Jun-09 11:00 
AnswerRe: Alias an Array of Pointers Pin
Ozer Karaagac17-Jun-09 11:44
professionalOzer Karaagac17-Jun-09 11:44 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.