Domanda Problemi di connessione con database Mysql

enk17

Utente Bronze
23 Ottobre 2021
67
16
8
33
Salve mi era venuta in mente di creare un codice in c++ in cui simula un manager dei pazienti di un ospedale mi spiego meglio,questo codice si connette a un database (Mysql) e da la possiblità di inserire pazienti e modificarli però il programma non vuole saperne proprio di connettersi,ho installato e linkato tutte le librerie neccessarie (uso visual studio 2022) così facendo ho risolto la maggior parte dei problemi con le librerie però da questo errore:
impossibile utilizzare un valore di tipo "const char *" per inizializzare un'entità di tipo "char *"
che si ripete sia per username,password,database etc..

il codice:
C++:
#include <iostream>
#include <mysql.h>
#include <stdio.h>

int main()
{
    MYSQL* conn;
    MYSQL_RES* res;
    MYSQL_ROW row;

    /* Dichiaro le variabili di connessione */
    char* server = "localhost:3306";
    char* user = "root";
    char* password = "root";
    char* database = "database";

    /*Inizializzo la connessione*/
    conn = mysql_init(NULL);

    /* Se possibile mi connetto al database altrimenti
    esco dal programma e scrivo un messaggio d'errore sullo stderr*/
    if (!mysql_real_connect(conn, server,
        user, password, database, 0, NULL, 0)) {
        fprintf(stderr, "%s\n", mysql_error(conn));
        exit(1);
    }

    /* Invio se possibile la query */
    if (mysql_query(conn, "show tables")) {
        fprintf(stderr, "%s\n", mysql_error(conn));
        exit(1);
    }

    /*Prendo i risultati della query*/
    res = mysql_use_result(conn);

    /* Stampo a video i risultati della query */
    printf("MySQL Tables in mysql database:\n");
    while ((row = mysql_fetch_row(res)) != NULL)
        //nel vettore row ci sono i risultati adesso
        printf("%s \n", row[0]);

    /* Distruggo il puntatore ai risultati della query
    e chiudo la connessione al database */
    mysql_free_result(res);
    mysql_close(conn);

    return 0;
}
 

enk17

Utente Bronze
23 Ottobre 2021
67
16
8
33
Significa che il file non è nelle cartelle dove visual studio cerca le librerie, puoi copiarla lì o mettere il percorso completo al file.

PS: il file per fare linking è .lib, non .dll
ho controllato manualmente e ci sono entrambi i file (nel linker ho messo .lib),dove dovrei inserire il percorso intero?
 

CrazyMonk

Utente Electrum
24 Dicembre 2021
497
14
261
159
ho controllato manualmente e ci sono entrambi i file (nel linker ho messo .lib),dove dovrei inserire il percorso intero?
Secondo Microsoft, per utilizzare librerie .lib non presenti nel progetto devi svolgere i seguenti passaggi:
1) Fare clic con il pulsante destro del mouse sul nodo del progetto Esplora soluzioni quindi scegliere Proprietà.
2) Nella pagina VC++ directory di libreria aggiungere il percorso alla directory che contiene il file LIB in Percorsi libreria. Aggiungere quindi il percorso dei file di intestazione della libreria a Directory di inclusione.
3) Nella pagina delle proprietà Input del linker > aggiungere il nome del file LIB a Dipendenze
 

enk17

Utente Bronze
23 Ottobre 2021
67
16
8
33
Secondo Microsoft, per utilizzare librerie .lib non presenti nel progetto devi svolgere i seguenti passaggi:
1) Fare clic con il pulsante destro del mouse sul nodo del progetto Esplora soluzioni quindi scegliere Proprietà.
2) Nella pagina VC++ directory di libreria aggiungere il percorso alla directory che contiene il file LIB in Percorsi libreria. Aggiungere quindi il percorso dei file di intestazione della libreria a Directory di inclusione.
3) Nella pagina delle proprietà Input del linker > aggiungere il nome del file LIB a Dipendenze
da sempre lo stesso errore,ho optato per usare Azure che attualmente sembra funzionare