Hallo ich versuche mich gerade an sqlite3 mit C++, nur bin ich jetzt auf ein Problem gestoßen.
Ich würde gerne Datensätze aus einer Datenbank lesen und diese in der main Funktion weiter bearbeiten, also ich möchte nicht der callback funktion arbeiten.
Jetzt habe ich im Internet ein Beispiel gefunden:
Aber wenn ich den Code Compilieren möchte bekomme ich folgende Fehler:
Ich würde gerne Datensätze aus einer Datenbank lesen und diese in der main Funktion weiter bearbeiten, also ich möchte nicht der callback funktion arbeiten.
Jetzt habe ich im Internet ein Beispiel gefunden:
PHP Code:
#include <stdio.h>
#include <stdlib.h>
#include "sqlite3.h"
typedef struct sqlite_vm sqlite_vm;
int sqlite_compile(
sqlite3 *db, /* The open database */
const char *zSql, /* SQL statement to be compiled */
const char **pzTail, /* OUT: uncompiled tail of zSql */
sqlite_vm **ppVm, /* OUT: the virtual machine to execute zSql */
char **pzErrmsg /* OUT: Error message. */
);
int sqlite_step(
sqlite_vm *pVm, /* The virtual machine to execute */
int *pN, /* OUT: Number of columns in result */
const char ***pazValue, /* OUT: Column data */
const char ***pazColName /* OUT: Column names and datatypes */
);
int sqlite_finalize(
sqlite_vm *pVm, /* The virtual machine to be finalized */
char **pzErrMsg /* OUT: Error message */
);
int main(int argc, char **argv){
sqlite3 *db; /*Datenbank-Objekt*/
sqlite_vm *dbcursor;
char *dberr = 0; /*Fehlermeldungen*/
char *sql, *sqltail; /*SQL-Kommandos*/
/*
* Datenbankdatei öffnen
*/
if(!sqlite3_open("test2.s3db", &db)){
printf("Hoppla: %sn", dberr);
free(dberr);
return 1;
}
/*
* Beispiel für Select-Statement
*/
sql = "SELECT * FROM Mitarbeiter";
/* Lege Statement-Cursor an (Konstruktor) */
if(SQLITE_OK != sqlite_compile(db, sql, &sqltail, &dbcursor, &dberr)) { //Zeile 48
printf("Oha: %sn", dberr);
free(dberr);
}else{
int ncols; /*Anzahl zurückgegebener Spalten*/
char **colnames; /*Spaltennamen*/
char **values; /*Spalteninhalte*/
/* arbeite Ergebnis mit Cursor ab */
while (SQLITE_ROW == sqlite_step(dbcursor, &ncols, &values, &colnames)) { //Zeile 57
printf("nr='%s', name='%s'n", values[0], values[1]);
}
}
/*
* Datenbank schließen
*/
sqlite3_close(db);
return 0;
}
Code:
E:\Daten\Dokumente\.Dokumente\Projekte\CodeBlocks\sqlite2\main.cpp:: In function `int main(int, char**)': E:\Daten\Dokumente\.Dokumente\Projekte\CodeBlocks\sqlite2\main.cpp:48: error: invalid conversion from `char**' to `const char**' E:\Daten\Dokumente\.Dokumente\Projekte\CodeBlocks\sqlite2\main.cpp:48: error: initializing argument 3 of `int sqlite_compile(sqlite3*, const char*, const char**, sqlite_vm**, char**)' E:\Daten\Dokumente\.Dokumente\Projekte\CodeBlocks\sqlite2\main.cpp:57: error: invalid conversion from `char***' to `const char***' E:\Daten\Dokumente\.Dokumente\Projekte\CodeBlocks\sqlite2\main.cpp:57: error: initializing argument 3 of `int sqlite_step(sqlite_vm*, int*, const char***, const char***)' E:\Daten\Dokumente\.Dokumente\Projekte\CodeBlocks\sqlite2\main.cpp:57: error: invalid conversion from `char***' to `const char***' E:\Daten\Dokumente\.Dokumente\Projekte\CodeBlocks\sqlite2\main.cpp:57: error: initializing argument 4 of `int sqlite_step(sqlite_vm*, int*, const char***, const char***)' :: === Build finished: 6 errors, 0 warnings ===
Comment