Utilizzo librerie sqlite3 in c.. aiuto!
  • In diretta da GamesVillage.it
    • News
    • -
    • In Evidenza
    • -
    • Recensioni
    • -
    • RetroGaming
    • -
    • Anteprime
    • -
    • Video
    • -
    • Cinema

Visualizzazione risultati da 1 a 7 di 7

Discussione: Utilizzo librerie sqlite3 in c.. aiuto!

Cambio titolo
  1. #1
    Utente L'avatar di Bonch
    Registrato il
    07-05
    Località
    Mestre, Italy
    Messaggi
    2.515

    Domanda Utilizzo librerie sqlite3 in c.. aiuto!

    Sto tentando di fare un semplice programma in c che mi apra un database e mi esegua una query di selezione, sto seguendo la documentazione del sito ufficiale, però non riesco a venirne fuori anche perchè le mie conoscenze di c sono abbastanza frammentarie, c'è qualche anima pia che può scrivermi un programma d'esempio? Grazie mille

  2. #2
    Linux User # 477930 L'avatar di Metflar
    Registrato il
    09-06
    Località
    Anagni
    Messaggi
    2.353
    Citazione Bonch Visualizza Messaggio
    Sto tentando di fare un semplice programma in c che mi apra un database e mi esegua una query di selezione, sto seguendo la documentazione del sito ufficiale, però non riesco a venirne fuori anche perchè le mie conoscenze di c sono abbastanza frammentarie, c'è qualche anima pia che può scrivermi un programma d'esempio? Grazie mille
    Codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <sqlite3.h>
    //funzione che esegue la query
    static int callback(void *NotUsed, int argc, char **argv, char **azColName){
      int i;
      for(i=0; i<argc; i++){
        printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
      }
      printf("\n");
      return 0;
    }
    
    int main(int argc, char **argv){
      sqlite3 *db;
      char *zErrMsg = 0;
      int rc;
      
      if( argc!=3 ){
        fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
        exit(1);
      }
      //apro il db
      rc = sqlite3_open("database", &db);
      //se nn esiste esco
      if( rc ){
        fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
        sqlite3_close(db);
        exit(1);
      }
      //esiste e lancio la query
      rc = sqlite3_exec(db, "select * from tabella", callback, 0, &zErrMsg);
      if( rc!=SQLITE_OK ){
        fprintf(stderr, "SQL error: %s\n", zErrMsg);
        sqlite3_free(zErrMsg);
      }
      sqlite3_close(db);
      return 0;
    }
    spero ti possa essere d'aiuto

    conoscenze: C\C++, Java, PHP,Python

  3. #3
    Utente L'avatar di Bonch
    Registrato il
    07-05
    Località
    Mestre, Italy
    Messaggi
    2.515
    Quel programma l'avevo trovato pure io.. il problema sembrerebbe un altro, io sto utilizzando il chris compiler con il programma code::blocks su ubuntu.. e quando compilo il programma va a compilarsi il file sqlite.c e da errore in compilazione ovvero: undefined reference to 'pthread_create' e undefined reference to 'pthread_join' da quanto ho capito manca qualcosa che tratta i thread per&#242; nelle opzioni del compilatore mi pare di avre messo tutto ci&#242; che riguarda i thread..
    EDIT: A quanto pare penso di aver risolto
    Ultima modifica di Bonch; 20-06-2009 alle 19:16:16

  4. #4
    Utente L'avatar di devilheart
    Registrato il
    01-03
    Messaggi
    28.310
    ti mancano le librerie di sviluppo di glibc

  5. #5
    Utente L'avatar di Bonch
    Registrato il
    07-05
    Località
    Mestre, Italy
    Messaggi
    2.515
    No ma ho risolto inserendo nelle opzioni di compilazioni il flag -pthread

  6. #6
    Ex ***** VIPz Estathé L'avatar di nicjedi
    Registrato il
    12-02
    Località
    non vivo
    Messaggi
    16.158
    ma perch&#233; vai a compilarti sqlite.c se c'&#232; gi&#224; la libreria fornita? o.O
    "La violenza è l'ultimo rifugio degli incapaci"
    "Non lasciare mai che la morale ti impedisca di fare la cosa giusta"
    "La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta."
    "fare molte cose alla volta significa non farne bene nessuna"


  7. #7
    Utente L'avatar di Bonch
    Registrato il
    07-05
    Località
    Mestre, Italy
    Messaggi
    2.515
    Riutilizzo questo thread senza aprirne un altro perch&#232; il problema riguarda sempre sqlite e il c.. utilizzando il codice che mi &#232; stato fornito da Metflar funziona tutto a meraviglia.. per&#242; io ora i dati dei record li devo memorizzare nelle variabili, e in quel programma la funzione callback si occupa di visualizzare a video i dati.. come faccio?

Regole di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •