Objeto de instancia de tabla virtual
struct sqlite3_vtab { const sqlite3_module *pModule; /* El módulo para esta tabla virtual */ int nRef; /* NO USADO */ char *zErrMsg; /* Mensaje de error desde sqlite3_mprintf() */ /* Las implementaciones de tablas virtuales generalmente añaden más campos */ };
Cada implementación de módulo de tabla virtual usa una subclase de este objeto para describir una instancia particular de la tabla virtual. Cada subclase se adaptará a las necesidades específicas de la implementación del módulo. El propósito de esta supreclase es definir ciertos campos que sean comunes a todas las implementaciones de módulo.
Los métodos de tablas virtuales pueden poner un mensaje de error mediante la asignación de una cadena obtenida desde sqlite3_mprintf() a zErrMsg. El método debe tener cuidado de que cualquier cadena anterior sea liberada mediante una llamada a sqlite3_free() antes de asignar una nueva cadena a zErrMsg. Después de que el mensaje de error sea entregado a la aplicación cliente, la cadena será automáticamente liberada por sqlite3_free() y zErrMsg anulado.