Ich versuche, einige Utils für die Verwendung mit SQLite-Datenbanken zu machen. Dafür schaffe ich sqlite3_ut.h und sqlite3_ut.c DateienC, wie sqlite3 Datenbank-Handle zu übertragen
sqlite_ut.h
#ifndef sqlite3_ut_h
#define sqlite3_ut_h
#include <stdio.h>
#include "sqlite3.h"
int drop_table(sqlite3 handle);
#endif
sqlite_ut.c
int drop_table(sqlite3 handle)
{
int dropped = 0;
printf("Begin Drop\n");
sqlite3_exec(handle, "BEGIN;", NULL, NULL, NULL);
sqlite3_stmt *droptab;
if (sqlite3_prepare_v2(handle, "DROP TABLE mytable;", -1, &droptab, 0) != SQLITE_OK)
printf("db error: %s\n", sqlite3_errmsg(handle));
if(droptab)
{
sqlite3_step(droptab);
dropped = 1;
}
else
printf("Error: drop_table");
sqlite3_finalize(droptab);
sqlite3_exec(handle, "COMMIT;", NULL, NULL, NULL);
printf("End Drop\n");
return dropped;
}
sqlite_ut.h in Hauptdatei enthalten ist.
Offensichtlich kann ich Handle der geöffneten Datenbank nicht zu drop_table Funktion übertragen, die von sqlite3 Typ ist.
Wie geht das mit der vorgeschlagenen Programmkonfiguration?
Warum nicht, haben Sie es versucht? Erhalten Sie Fehler? –
Hey Joe. Ich habe eine Situation hier. Kompilieren von C++ - Programm mit c-Header und c-Datei, die angezeigt werden, und jetzt bekomme ich 'undefinierte Referenz auf Drop_Table' Nachricht. Was ist zu tun? –