Intento habilitar claves externas usando la biblioteca HDBC-sqlite3 haskell. Esta biblioteca utiliza un pequeño ayudante c - FunciónTeclas externas Sqlite
int sqlite3_open2(const char *filename, finalizeonce **ppo)
que exige a su vez una sqlite3_open
. En el sqlite documentation encontré una bonita función sqlite3_db_config
que se supone que habilita las claves externas. Para probarlo He añadido rápidamente 2 líneas en sqlite3_open2
(los dos últimos de la lista):
int sqlite3_open2(const char *filename, finalizeonce **ppo) {
sqlite3 *ppDb;
finalizeonce *newobj;
int res, *resFK, resFK1;
fprintf(stderr, "DB pointer: %d\n", ppDb);
res = sqlite3_open(filename, &ppDb);
resFK1 = sqlite3_db_config(ppDb, 1002, 1, resFK);
fprintf(stderr, "\nForeign Keys: ON/OFF:%d ERR:%d\n", resFK, resFK1);
...
Mi sorpresa fue el resultado: Foreign Keys: ON/OFF:0 ERR:1
.
¿Podría alguien darme una pista de qué estoy haciendo mal o cuál sería la forma adecuada de habilitar las claves externas?
su solución funciona. Has abierto mis ojos con respecto a cómo resolver mi problema en el nivel de Haskell. Una vez que lo termine lo publicaré aquí. – bartoszw