sqlite.h


Control de bajo nivel de ficheros de base de datos

int sqlite3_file_control(sqlite3*, const char *zDbName, int op, void*);

La función The sqlite3_file_control() hace una llamada directa al método xFileControl para el objeto sqlite3_io_methods asociado con una base de datos en particular identificada por el segundo argumento. El nombre de la base de datos es "main" para la base de datos principal o "temp" para la base de datos TEMP, o el nombre que aparece después de la palabra clave AS para bases de datos añadidas usando la sentencia ATTACH. Un puntero NULL se puede usar en lugar de "main" para referirse al fichero de base de datos principal. El tercer y cuarto parámetros para esta función son pasados directamente a través del segundo y tercer parámetros del método xFileControl. El valor de retorno del método xFileControl se convierte en el valor de retorno para esta función.

El valor SQLITE_FCNTL_FILE_POINTER para el parámetro op hace que se escriba un puntero al objeto sqlite3_file subyacente en el espacio apuntado por el cuarto parámetro. El caso SQLITE_FCNTL_FILE_POINTER es un atajo que en realidad no invoca al método subyacente sqlite3_io_methods.xFileControl.

Si el segundo parámetro, zDbName no coincide con el nombre de ningún fichero de base de datos abierto, se retorna SQLITE_ERROR. Este código de error no es recordado y no puede ser obtenido por sqlite3_errcode() o sqlite3_errmsg(). El método subyacente xFileControl también puede devolver SQLITE_ERROR. No hay modo de distinguir entre los retornos de un zDbName incorrecto y un SQLITE_ERROR por parte del método subyacente xFileControl.

Ver también: SQLITE_FCNTL_LOCKSTATE.