Hi Daniel,
ja sieht so aus.
Ich habe versucht die Callback Funktion des SQLite Beispiels so zu übersetzen, dass ich sie in Delphi nutzen kann.
Der Code:
Delphi-Quellcode:
#include <stdio.h>
#include <stdlib.h>
#include "sqlite3.h"
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);
}
rc = sqlite3_open(argv[1], &
db);
if( rc )
{
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
rc = sqlite3_exec(
db, argv[2], callback, 0, &zErrMsg);
if( rc!=SQLITE_OK )
{
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
sqlite3_close(
db);
return 0;
}
Ziel soll sein, dass der eigentliche Aufruf in eine
DLL geschrieben wird, die Callback Funktion jedoch in Delphi bleibt.
Das Ergebnis wäre eine ganz einfache Schnittstelle zu SQlite, die nur auf
SQL Befehlen basiert.
Vielen Dank und Grüsse
Rainer