Salve,
ho un piccolo problema con l'utilizzo di c++ e MySql. In breve, volendo inserire nella SELECT dopo la clausola WHERE una variabile, nell'esempio 'A' non riesco a fargliela riconoscere e, pertanto, non riesco atrovare solo quei records che di volta in volta 'A' potra' assumere nel programma che dovro' sviluppare. lanciando il programma infatti non visualizzo i dati del primo record ponendo 'A' uguale a 45 vi posto il codice
codice:
#include <windows.h>
#include <iostream>
#include <mysql/mysql.h>
#include <string.h>
using namespace std;
int main()
{
MYSQL *sock;
sock = mysql_init(0);
if (!sock) {
cout << "Errore durante l'inizializzazione dell'oggetto MYSQL " << endl << mysql_error(sock) << endl;
system("PAUSE");
return -1;
}
//Parametri di connessione
char *host = "localhost"; //Hostname
char *user = "root"; //user
char *pass = "prova"; //password
char *db = "demo"; //database
if (!mysql_real_connect(sock, host, user, pass, db, 0, NULL, 0)){
cout << "Errore durante la connessione MYSQL " << endl << mysql_error(sock) << endl;
system("PAUSE");
return -1;
}
int A;
A=45;
if (mysql_query(sock,"select idcliente,nome,cognome from clienti where idcliente = 'A' "))
{
cout << "Errore durante l'esecuzione della query " << endl << mysql_error(sock) << endl;
system("PAUSE");
return -1;
}
MYSQL_RES *result;
result = mysql_store_result(sock);
if (result) // Se ci sono righe
{
MYSQL_ROW row;
// retrieve rows, then call mysql_free_result(result)
while ((row = mysql_fetch_row(result))){
cout << " IDCLIENTE:" << row[0];
cout << " NOME:" << row[1];
cout << " COGNOME:" << row[2]<<endl;
}
mysql_free_result(result);
}
int codice;
char cognome[50];
char nome[50];
char sql[255];
cout<<endl << "INSERIRE IL CODICE CLIENTE :" ;
cin>>codice;
cout<<endl << "INSERIRE IL COGNOME CLIENTE :" ;
cin>>cognome;
cout<<endl << "INSERIRE IL NOME CLIENTE :" ;
cin>>nome;
sprintf(sql,"INSERT INTO clienti VALUES (%d,\'%s\',\'%s\')",codice,cognome,nome);
cout<<sql;
//Eseguo la query di comando con l'istruzione mysql_query
mysql_query(sock,sql);
if (mysql_affected_rows(sock) != 1) {
cout << "Errore durante l'esecuzione della query " << endl << mysql_error(sock) << endl;
system("PAUSE");
return -1;
}
system("PAUSE");
mysql_close(sock);
return EXIT_SUCCESS;
}
Grato per i suggerimenti resto in attesa della soluzione