Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - MySql in C++
Forum - C/C++ - MySql in C++

Avatar
Stefano (Ex-Member)
Rookie


Messaggi: 32
Iscritto: 27/12/2007

Segnala al moderatore
Postato alle 10:51
Domenica, 24/05/2009
Salve a tutti, per un mio progetto dovrei connettermi a un database Mysql tramite c++.
Ho trovato le librerie mysql++ ma gli esempi mi generano errori.
Confido in voi per trovare la soluzione al problema.
Anche con un esempio possibilmente :)

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 11:29
Domenica, 24/05/2009

PM Quote
Avatar
Stefano (Ex-Member)
Rookie


Messaggi: 32
Iscritto: 27/12/2007

Segnala al moderatore
Postato alle 15:03
Domenica, 24/05/2009
Ok ottimo..il problema è che la query mi da in output un MYSQL_RES. Io dovrei avere un wchar_t * in ouput. O perlomeno un char in modo da convertirlo in wchar.

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 16:37
Domenica, 24/05/2009
Che vuoi dire?

Quello e' il resultset ... dopo dovrai leggere le righe con la

mysql_fetch_row

Ma hai letto l'esempio con attenzione?

PM Quote
Avatar
Stefano (Ex-Member)
Rookie


Messaggi: 32
Iscritto: 27/12/2007

Segnala al moderatore
Postato alle 19:30
Domenica, 24/05/2009
Si ho fatto un errore di battitura io...comunque restituisce sempre un MYSQL_ROW...che è una variabile in proprio...quindi lo posso trattare come una char comunissima da quello che capisco dall'esempio..o no?

Ultima modifica effettuata da Stefano il 24/05/2009 alle 19:30
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 19:39
Domenica, 24/05/2009
No ... non la puoi trattare come un char ! E' un riferimento ad un resultset ... la utilizzi con le opportune chiamate successive ...

Ti ripeto ... hai letto l'esempio di codice?

E quale codice hai utilizzato/scritto ?

PM Quote
Avatar
Stefano (Ex-Member)
Rookie


Messaggi: 32
Iscritto: 27/12/2007

Segnala al moderatore
Postato alle 19:45
Domenica, 24/05/2009
Non ci siamo capiti. :rotfl:
Allora         
Codice sorgente - presumibilmente C/C++

  1. char *query = (char *) malloc(sizeof(char) * (strlen(row[0]) + 5));
  2.                 sprintf(query,"USE %s",row[0]);
  3.                 mysql_query(&conn,query);
  4. mysql_query(&conn,"SHOW TABLES");
  5.                 numero_tabelle = mysql_num_rows(mysql_store_result(&conn));
  6.                 printf("%-25s [%-2lu tabell%c]\n",row[0],(unsigned long)numero_tabelle,(numero_tabelle > 1) ? 'e' : 'a');



Questo è il codice di esempio che prende in esame la query SHOW TABLES. Stampa a video le tabelle del db selezionato. E fin qui ci siamo.
Nel mio programma ho bisogno di trasformare il risultato di ogni riga in una stringa. Ovvero:

Esempio:
Il database abcd ha le tabelle: forum, utenti, topic (esempio banale).
L'output in console mi darà:

...
forum
utenti
topic
...

Io voglio prendere ogni singola riga quindi "forum", "utenti",... e metterla in una stringa.
E' possibile farlo? E in che modo?

Ultima modifica effettuata da Stefano il 24/05/2009 alle 19:48
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 19:53
Domenica, 24/05/2009
MYSQL_ROW e' un array di stringhe

Quindi row[0] e' una stringa e cosi' via row[1] ...

PM Quote
Avatar
Stefano (Ex-Member)
Rookie


Messaggi: 32
Iscritto: 27/12/2007

Segnala al moderatore
Postato alle 19:54
Domenica, 24/05/2009
ah perfetto ora provo e ti so dire.
Grazie mille per il chiarimento :k:

PM Quote