Pregunta Función sqlite3_open_v2 filepath


Tengo un problema con la función sqlite3_open_v2. OS es Windows, desarrollándose en Qt Creator.

sqlite3_open("database.db", &db); // works fine

pero

sqlite3_open_v2("database.db", &db, SQLITE_OPEN_READWRITE, ""); // don't work

Estoy bastante seguro de que no es problema de codificación de utf-8, porque la primera función funciona bien y traté de cambiar la codificación en las propiedades del proyecto. Tal vez el problema es con filepath en primer arg. Los caminos absolutos tampoco funcionaron.

¿Alguien tuvo alguna idea y ejemplo de usar esta función?


5
2018-05-27 17:11


origen


Respuestas:


Gracias por las respuestas.

El problema fue con el último parámetro. Debe ser 0 o NULL en lugar de ""

Eso es todo, gracias de todos modos


5
2018-05-28 21:36



Esto es probablemente porque el archivo no existe en el directorio de trabajo. Agregaría un código para imprimir la ruta del directorio de trabajo actual justo antes de llamar a sqlite3_open_v2 para estar seguro.

Una diferencia entre sqlite3_open y sqlite3_open_v2 con SQLITE_OPEN_READWRITE es que el primero creará una base de datos vacía cuando no se encuentre ningún archivo, mientras que el segundo no lo hará.

Para permitir la creación de una base de datos con sqlite3_open_v2, debe usar:

sqlite3_open_v2("database.db", &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL );

Asegúrese de consultar la documentación para obtener más información: http://www.sqlite.org/c3ref/open.html


4
2018-05-28 11:50