PDA

Visualizza la versione completa : [C++] Accesso violato mysql libraries


Salvy95
06-04-2011, 15:17
Aiuto ragazzi! Dopo aver incluso (Spero correttamente) la libreria libmysql.lib
mi sono ritrovato a dover gestire un errore mai visto:
Eccezione non gestita a 0x5779e238 in sql.exe: 0xC0000005: Violazione di accesso nella lettura del percorso 0x0000000c.

Questo il codice di programmazione:


#include <Windows.h>
#include <WinSock.h>
#include "C:\Program Files\MySQL\MySQL Connector C 6.0.2\include\mysql.h"
#include <stdio.h>
#include <stdlib.h>
MYSQL *conn;
MYSQL_RES *result;
MYSQL_ROW row;

const char* host = "salvy95.altervista.org"; // host
const char* database = "my_salvy95"; // database
const char* db_user = "salvy95"; // nome utente
const char* db_pass = "796f7574756265"; // password

int main (int argc, char *argv[])
{
conn = mysql_init (NULL);
mysql_real_connect (conn, /* connection handler */
host, /* host */
db_user, /* user name */
db_pass, /* password */
database, /* database */
0, /* porta */
NULL, /* socket */
0); /* flags */

mysql_query(conn, "SELECT CURTIME();");
result = mysql_use_result(conn);
row = mysql_fetch_row(result);
printf("Ora: %s\n", row[0]);

mysql_close (conn);
exit (0);
}


Avete qualche idea?

EDIT: L'errore mi appare attrverso un messageBox e non nei log di compilazione!

MacApp
07-04-2011, 20:03
le funzioni mysql possono restituire degli errori, che se non controllati, producono un comportamento indefinito del tuo programma, tra cui appunto l'errore da te descritto.

ad esempio:


http://dev.mysql.com/doc/refman/5.0/en/mysql-real-connect.html

Return Values

A MYSQL* connection handle if the connection was successful, NULL if the connection was unsuccessful. For a successful connection, the return value is the same as the value of the first parameter.



p.s gli errori di compilazione sono una cosa, quelli d'esecuzione un'altra.

Salvy95
08-04-2011, 16:21
Perfetto... e come potrei fare per gestirli?

Loading