Oppure

Loading
17/09/09 20:09
Stefano
Salve ho un programma che nonostante le mie ripetute ricerche su google non ha ancora trovato una soluzione:

/*
Definizione classe database
*/
#pragma warning
class Cdb
{
public:
	Cdb();
	~Cdb();

	 char* host;
	char* user;
	char* password;
	char* db;
	MYSQL conn;			//struttura per la connessione
	my_ulonglong risult_num,risult2; //numero risultati
	MYSQL_RES *risultato;	//struttura per il risultato
	MYSQL_RES *risultato2;	
	MYSQL_ROW row;		//variabile che memorizza una riga
	void connect()
	{
	mysql_init(&this->conn); //inizializza la struttura per la connessione
	mysql_options(&this->conn,MYSQL_OPT_COMPRESS,0); 
	if (!mysql_real_connect(&this->conn,this->host,this->user,this->password,this->db,0,NULL,0)) //Connetto al DB
	{  
		fprintf(stderr,"Errore nella connessione al database: %s\n", mysql_error(&this->conn));
		dbconn = false;
		//getchar();
		//exit(1);
	}
	}
	void disconnect()
	{
			/*Al termine della classe distruggo il puntatore del db*/
			mysql_close(&this->conn);
	}


};


Cdb::Cdb() //Costruttore
{
}
Cdb::~Cdb() // Distruttore
{

}

Cdb vwardb;
vwardb.connect();


Al momento della compilazione (USO VS2005), questa si ferma:

1>db_class.h(51) : error C2143: errore di sintassi: ';' mancante prima di '.'
1>db_class.h(51) : error C4430: identificatore di tipo mancante, verrà utilizzato int. Nota: default-int non è più supportato in C++
1>db_class.h(51) : error C2371: 'vwardb': ridefinizione. Tipi di base differenti.

Cercando soluzioni su google, inerenti agli errori, non sono venute a me soluzioni reali. Chiedo aiuto :)
Ultima modifica effettuata da Stefano 17/09/09 20:17
aaa
17/09/09 20:37
theprogrammer
E l'include di mysql dove sta?

Quale compilatore usi?
aaa
17/09/09 21:01
Stefano
uso vs2005.
L'include di mysql sta in altre librerie, questa è una specifica :)
aaa
17/09/09 21:02
theprogrammer
Postato originariamente da Stefano:

uso vs2005.
L'include di mysql sta in altre librerie, questa è una specifica :)


Altre librerie? Cosa intendi?

In ogni caso, l'include deve stare anche all'inzio di questo codice, altrimenti come fa il compilatore, ad esempio, a sapere cosa e'

MYSQL

o

MYSQL_RES

???
aaa
17/09/09 21:04
Stefano
praticamente il progetto è composto da:

- main.cpp (dove ci sono i riferimenti a mysql)
- db_class.h (viene incluso dopo i riferimenti in main.cpp)
aaa
17/09/09 21:10
theprogrammer
Quindi questa linea

vwardb.connect();

sta al di fuori di qualsiasi funzione ... e questo non e' consentito in un programma C/C++ ...
aaa
17/09/09 21:19
Stefano
Postato originariamente da theprogrammer:

Quindi questa linea

vwardb.connect();

sta al di fuori di qualsiasi funzione ... e questo non e' consentito in un programma C/C++ ...


grazie mi ero proprio dimenticato di questa cosa, d'altronde è tre mesi che non tocco il c++ :S
aaa