#ifndef DATABASE_SQLITE_SQLITE_BMX_RELEASE_WIN32_X86_H
#define DATABASE_SQLITE_SQLITE_BMX_RELEASE_WIN32_X86_H

#include <brl.mod/blitz.mod/.bmx/blitz.bmx.release.win32.x86.h>
#include <database.mod/core.mod/.bmx/core.bmx.release.win32.x86.h>
#include "common.bmx.release.win32.x86.h"
int __bb_database_sqlite_sqlite();
struct database_sqlite_TSQLiteDatabaseLoader_obj;
struct database_sqlite_TDBSQLite_obj;
struct database_sqlite_TSQLiteResultSet_obj;
void _database_sqlite_TSQLiteDatabaseLoader_New(struct database_sqlite_TSQLiteDatabaseLoader_obj* o);
typedef struct database_core_TDBConnection_obj* (*database_sqlite_TSQLiteDatabaseLoader_LoadDatabase_SSiSSSS_m)(struct database_sqlite_TSQLiteDatabaseLoader_obj*,BBSTRING,BBSTRING,BBINT,BBSTRING,BBSTRING,BBSTRING,BBSTRING);
struct database_core_TDBConnection_obj* _database_sqlite_TSQLiteDatabaseLoader_LoadDatabase_SSiSSSS(struct database_sqlite_TSQLiteDatabaseLoader_obj*,BBSTRING,BBSTRING,BBINT,BBSTRING,BBSTRING,BBSTRING,BBSTRING);
struct BBClass_database_sqlite_TSQLiteDatabaseLoader {
	struct BBClass_database_core_TDatabaseLoader*  super;
	void      (*free)( BBObject *o );
	BBDebugScope* debug_scope;
	unsigned int instance_size;
	void      (*ctor)( BBOBJECT o );
	void      (*dtor)( BBOBJECT o );
	BBSTRING  (*ToString)( BBOBJECT x );
	int       (*Compare)( BBOBJECT x,BBOBJECT y );
	BBOBJECT  (*SendMessage)( BBOBJECT o,BBOBJECT m,BBOBJECT s );
	BBINTERFACETABLE itable;
	void*     extra;
	unsigned int obj_size;
	unsigned int instance_count;
	unsigned int fields_offset;
	database_sqlite_TSQLiteDatabaseLoader_LoadDatabase_SSiSSSS_m m_LoadDatabase_SSiSSSS;
};

struct database_sqlite_TSQLiteDatabaseLoader_obj {
	struct BBClass_database_sqlite_TSQLiteDatabaseLoader* clas;
	BBSTRING _database_core_tdatabaseloader__type;
	struct database_core_TDatabaseLoader_obj* _database_core_tdatabaseloader__succ;
};
extern struct BBClass_database_sqlite_TSQLiteDatabaseLoader database_sqlite_TSQLiteDatabaseLoader;
void _database_sqlite_TDBSQLite_New(struct database_sqlite_TDBSQLite_obj* o);
void _database_sqlite_TDBSQLite_Delete(struct database_sqlite_TDBSQLite_obj* o);
typedef struct database_core_TDBConnection_obj* (*database_sqlite_TDBSQLite_Create_TTDBConnection_SSiSSSS_f)(BBSTRING,BBSTRING,BBINT,BBSTRING,BBSTRING,BBSTRING,BBSTRING);
struct database_core_TDBConnection_obj* database_sqlite_TDBSQLite_Create_TTDBConnection_SSiSSSS(BBSTRING,BBSTRING,BBINT,BBSTRING,BBSTRING,BBSTRING,BBSTRING);
typedef void (*database_sqlite_TDBSQLite_close_m)(struct database_sqlite_TDBSQLite_obj*);
void _database_sqlite_TDBSQLite_close(struct database_sqlite_TDBSQLite_obj*);
typedef BBINT (*database_sqlite_TDBSQLite_commit_m)(struct database_sqlite_TDBSQLite_obj*);
BBINT _database_sqlite_TDBSQLite_commit(struct database_sqlite_TDBSQLite_obj*);
typedef BBARRAY (*database_sqlite_TDBSQLite_getTables_m)(struct database_sqlite_TDBSQLite_obj*);
BBARRAY _database_sqlite_TDBSQLite_getTables(struct database_sqlite_TDBSQLite_obj*);
typedef struct database_core_TDBTable_obj* (*database_sqlite_TDBSQLite_getTableInfo_Si_m)(struct database_sqlite_TDBSQLite_obj*,BBSTRING,BBINT);
struct database_core_TDBTable_obj* _database_sqlite_TDBSQLite_getTableInfo_Si(struct database_sqlite_TDBSQLite_obj*,BBSTRING,BBINT);
typedef BBINT (*database_sqlite_TDBSQLite_open_SS_m)(struct database_sqlite_TDBSQLite_obj*,BBSTRING,BBSTRING);
BBINT _database_sqlite_TDBSQLite_open_SS(struct database_sqlite_TDBSQLite_obj*,BBSTRING,BBSTRING);
typedef BBINT (*database_sqlite_TDBSQLite_rollback_m)(struct database_sqlite_TDBSQLite_obj*);
BBINT _database_sqlite_TDBSQLite_rollback(struct database_sqlite_TDBSQLite_obj*);
typedef BBINT (*database_sqlite_TDBSQLite_startTransaction_m)(struct database_sqlite_TDBSQLite_obj*);
BBINT _database_sqlite_TDBSQLite_startTransaction(struct database_sqlite_TDBSQLite_obj*);
typedef BBBYTE* (*database_sqlite_TDBSQLite_databaseHandle_m)(struct database_sqlite_TDBSQLite_obj*);
BBBYTE* _database_sqlite_TDBSQLite_databaseHandle(struct database_sqlite_TDBSQLite_obj*);
typedef struct database_core_TQueryResultSet_obj* (*database_sqlite_TDBSQLite_createResultSet_m)(struct database_sqlite_TDBSQLite_obj*);
struct database_core_TQueryResultSet_obj* _database_sqlite_TDBSQLite_createResultSet(struct database_sqlite_TDBSQLite_obj*);
typedef BBSTRING (*database_sqlite_TDBSQLite_nativeErrorMessage_i_m)(struct database_sqlite_TDBSQLite_obj*,BBINT);
BBSTRING _database_sqlite_TDBSQLite_nativeErrorMessage_i(struct database_sqlite_TDBSQLite_obj*,BBINT);
typedef BBINT (*database_sqlite_TDBSQLite_hasPrepareSupport_m)(struct database_sqlite_TDBSQLite_obj*);
BBINT _database_sqlite_TDBSQLite_hasPrepareSupport(struct database_sqlite_TDBSQLite_obj*);
typedef BBINT (*database_sqlite_TDBSQLite_hasTransactionSupport_m)(struct database_sqlite_TDBSQLite_obj*);
BBINT _database_sqlite_TDBSQLite_hasTransactionSupport(struct database_sqlite_TDBSQLite_obj*);
typedef void (*database_sqlite_TDBSQLite_clearQueries_m)(struct database_sqlite_TDBSQLite_obj*);
void _database_sqlite_TDBSQLite_clearQueries(struct database_sqlite_TDBSQLite_obj*);
typedef void (*database_sqlite_TDBSQLite_resetQueries_m)(struct database_sqlite_TDBSQLite_obj*);
void _database_sqlite_TDBSQLite_resetQueries(struct database_sqlite_TDBSQLite_obj*);
typedef void (*database_sqlite_TDBSQLite_addQuery_TTSQLiteResultSet_m)(struct database_sqlite_TDBSQLite_obj*,struct database_sqlite_TSQLiteResultSet_obj*);
void _database_sqlite_TDBSQLite_addQuery_TTSQLiteResultSet(struct database_sqlite_TDBSQLite_obj*,struct database_sqlite_TSQLiteResultSet_obj*);
typedef void (*database_sqlite_TDBSQLite_removeQuery_TTSQLiteResultSet_m)(struct database_sqlite_TDBSQLite_obj*,struct database_sqlite_TSQLiteResultSet_obj*);
void _database_sqlite_TDBSQLite_removeQuery_TTSQLiteResultSet(struct database_sqlite_TDBSQLite_obj*,struct database_sqlite_TSQLiteResultSet_obj*);
typedef void (*database_sqlite_TDBSQLite_addUser_SSi_m)(struct database_sqlite_TDBSQLite_obj*,BBSTRING,BBSTRING,BBINT);
void _database_sqlite_TDBSQLite_addUser_SSi(struct database_sqlite_TDBSQLite_obj*,BBSTRING,BBSTRING,BBINT);
typedef void (*database_sqlite_TDBSQLite_modifyUser_SSi_m)(struct database_sqlite_TDBSQLite_obj*,BBSTRING,BBSTRING,BBINT);
void _database_sqlite_TDBSQLite_modifyUser_SSi(struct database_sqlite_TDBSQLite_obj*,BBSTRING,BBSTRING,BBINT);
typedef void (*database_sqlite_TDBSQLite_deleteUser_S_m)(struct database_sqlite_TDBSQLite_obj*,BBSTRING);
void _database_sqlite_TDBSQLite_deleteUser_S(struct database_sqlite_TDBSQLite_obj*,BBSTRING);
struct BBClass_database_sqlite_TDBSQLite {
	struct BBClass_database_core_TDBConnection*  super;
	void      (*free)( BBObject *o );
	BBDebugScope* debug_scope;
	unsigned int instance_size;
	void      (*ctor)( BBOBJECT o );
	void      (*dtor)( BBOBJECT o );
	BBSTRING  (*ToString)( BBOBJECT x );
	int       (*Compare)( BBOBJECT x,BBOBJECT y );
	BBOBJECT  (*SendMessage)( BBOBJECT o,BBOBJECT m,BBOBJECT s );
	BBINTERFACETABLE itable;
	void*     extra;
	unsigned int obj_size;
	unsigned int instance_count;
	unsigned int fields_offset;
	database_sqlite_TDBSQLite_Create_TTDBConnection_SSiSSSS_f f_Create_TTDBConnection_SSiSSSS;
	database_core_TDBConnection_Init_SSiSSSS_m m_Init_SSiSSSS;
	database_sqlite_TDBSQLite_close_m m_close;
	database_sqlite_TDBSQLite_commit_m m_commit;
	database_sqlite_TDBSQLite_getTables_m m_getTables;
	database_sqlite_TDBSQLite_getTableInfo_Si_m m_getTableInfo_Si;
	database_sqlite_TDBSQLite_open_SS_m m_open_SS;
	database_sqlite_TDBSQLite_rollback_m m_rollback;
	database_sqlite_TDBSQLite_startTransaction_m m_startTransaction;
	database_core_TDBConnection_executeQuery_S_m m_executeQuery_S;
	database_core_TDBConnection_isOpen_m m_isOpen;
	database_core_TDBConnection_getDatabaseName_m m_getDatabaseName;
	database_core_TDBConnection_getHost_m m_getHost;
	database_core_TDBConnection_getPortNumber_m m_getPortNumber;
	database_core_TDBConnection_error_m m_error;
	database_core_TDBConnection_resetError_m m_resetError;
	database_core_TDBConnection_hasError_m m_hasError;
	database_core_TDBConnection_setError_SSii_m m_setError_SSii;
	database_sqlite_TDBSQLite_databaseHandle_m m_databaseHandle;
	database_sqlite_TDBSQLite_createResultSet_m m_createResultSet;
	database_sqlite_TDBSQLite_nativeErrorMessage_i_m m_nativeErrorMessage_i;
	database_sqlite_TDBSQLite_hasPrepareSupport_m m_hasPrepareSupport;
	database_sqlite_TDBSQLite_hasTransactionSupport_m m_hasTransactionSupport;
	database_core_TDBConnection_free_m m_free;
	database_sqlite_TDBSQLite_clearQueries_m m_clearQueries;
	database_sqlite_TDBSQLite_resetQueries_m m_resetQueries;
	database_sqlite_TDBSQLite_addQuery_TTSQLiteResultSet_m m_addQuery_TTSQLiteResultSet;
	database_sqlite_TDBSQLite_removeQuery_TTSQLiteResultSet_m m_removeQuery_TTSQLiteResultSet;
	database_sqlite_TDBSQLite_addUser_SSi_m m_addUser_SSi;
	database_sqlite_TDBSQLite_modifyUser_SSi_m m_modifyUser_SSi;
	database_sqlite_TDBSQLite_deleteUser_S_m m_deleteUser_S;
};

struct database_sqlite_TDBSQLite_obj {
	struct BBClass_database_sqlite_TDBSQLite* clas;
	BBBYTE* _database_core_tdbconnection_handle;
	BBSTRING _database_core_tdbconnection__dbname;
	BBSTRING _database_core_tdbconnection__host;
	BBINT _database_core_tdbconnection__port;
	BBSTRING _database_core_tdbconnection__user;
	BBSTRING _database_core_tdbconnection__password;
	BBSTRING _database_core_tdbconnection__options;
	BBSTRING _database_core_tdbconnection__server;
	BBINT _database_core_tdbconnection__isopen;
	struct database_core_TDatabaseError_obj* _database_core_tdbconnection__lasterror;
	BBARRAY _database_sqlite_tdbsqlite_queries;
};
extern struct BBClass_database_sqlite_TDBSQLite database_sqlite_TDBSQLite;
void _database_sqlite_TSQLiteResultSet_New(struct database_sqlite_TSQLiteResultSet_obj* o);
void _database_sqlite_TSQLiteResultSet_Delete(struct database_sqlite_TSQLiteResultSet_obj* o);
typedef void (*database_sqlite_TSQLiteResultSet_free_m)(struct database_sqlite_TSQLiteResultSet_obj*);
void _database_sqlite_TSQLiteResultSet_free(struct database_sqlite_TSQLiteResultSet_obj*);
typedef void (*database_sqlite_TSQLiteResultSet_reset_m)(struct database_sqlite_TSQLiteResultSet_obj*);
void _database_sqlite_TSQLiteResultSet_reset(struct database_sqlite_TSQLiteResultSet_obj*);
typedef struct database_core_TQueryResultSet_obj* (*database_sqlite_TSQLiteResultSet_Create_TTQueryResultSet_TTDBConnectionS_f)(struct database_core_TDBConnection_obj*,BBSTRING);
struct database_core_TQueryResultSet_obj* database_sqlite_TSQLiteResultSet_Create_TTQueryResultSet_TTDBConnectionS(struct database_core_TDBConnection_obj*,BBSTRING);
typedef BBINT (*database_sqlite_TSQLiteResultSet_executeQuery_S_m)(struct database_sqlite_TSQLiteResultSet_obj*,BBSTRING);
BBINT _database_sqlite_TSQLiteResultSet_executeQuery_S(struct database_sqlite_TSQLiteResultSet_obj*,BBSTRING);
typedef void (*database_sqlite_TSQLiteResultSet_cleanup_m)(struct database_sqlite_TSQLiteResultSet_obj*);
void _database_sqlite_TSQLiteResultSet_cleanup(struct database_sqlite_TSQLiteResultSet_obj*);
typedef BBINT (*database_sqlite_TSQLiteResultSet_prepare_S_m)(struct database_sqlite_TSQLiteResultSet_obj*,BBSTRING);
BBINT _database_sqlite_TSQLiteResultSet_prepare_S(struct database_sqlite_TSQLiteResultSet_obj*,BBSTRING);
typedef BBINT (*database_sqlite_TSQLiteResultSet_execute_m)(struct database_sqlite_TSQLiteResultSet_obj*);
BBINT _database_sqlite_TSQLiteResultSet_execute(struct database_sqlite_TSQLiteResultSet_obj*);
typedef BBINT (*database_sqlite_TSQLiteResultSet_firstRow_m)(struct database_sqlite_TSQLiteResultSet_obj*);
BBINT _database_sqlite_TSQLiteResultSet_firstRow(struct database_sqlite_TSQLiteResultSet_obj*);
typedef BBINT (*database_sqlite_TSQLiteResultSet_nextRow_m)(struct database_sqlite_TSQLiteResultSet_obj*);
BBINT _database_sqlite_TSQLiteResultSet_nextRow(struct database_sqlite_TSQLiteResultSet_obj*);
typedef void (*database_sqlite_TSQLiteResultSet_initRecord_m)(struct database_sqlite_TSQLiteResultSet_obj*);
void _database_sqlite_TSQLiteResultSet_initRecord(struct database_sqlite_TSQLiteResultSet_obj*);
typedef BBINT (*database_sqlite_TSQLiteResultSet_dbTypeFromNative_i_Sii_f)(BBSTRING,BBINT,BBINT);
BBINT database_sqlite_TSQLiteResultSet_dbTypeFromNative_i_Sii(BBSTRING,BBINT,BBINT);
typedef BBLONG (*database_sqlite_TSQLiteResultSet_lastInsertedId_m)(struct database_sqlite_TSQLiteResultSet_obj*);
BBLONG _database_sqlite_TSQLiteResultSet_lastInsertedId(struct database_sqlite_TSQLiteResultSet_obj*);
typedef BBINT (*database_sqlite_TSQLiteResultSet_rowsAffected_m)(struct database_sqlite_TSQLiteResultSet_obj*);
BBINT _database_sqlite_TSQLiteResultSet_rowsAffected(struct database_sqlite_TSQLiteResultSet_obj*);
struct BBClass_database_sqlite_TSQLiteResultSet {
	struct BBClass_database_core_TQueryResultSet*  super;
	void      (*free)( BBObject *o );
	BBDebugScope* debug_scope;
	unsigned int instance_size;
	void      (*ctor)( BBOBJECT o );
	void      (*dtor)( BBOBJECT o );
	BBSTRING  (*ToString)( BBOBJECT x );
	int       (*Compare)( BBOBJECT x,BBOBJECT y );
	BBOBJECT  (*SendMessage)( BBOBJECT o,BBOBJECT m,BBOBJECT s );
	BBINTERFACETABLE itable;
	void*     extra;
	unsigned int obj_size;
	unsigned int instance_count;
	unsigned int fields_offset;
	database_sqlite_TSQLiteResultSet_Create_TTQueryResultSet_TTDBConnectionS_f f_Create_TTQueryResultSet_TTDBConnectionS;
	database_core_TQueryResultSet_Init_TTDBConnectionS_m m_Init_TTDBConnectionS;
	database_core_TQueryResultSet_clearBindValues_m m_clearBindValues;
	database_core_TQueryResultSet_clear_m m_clear;
	database_sqlite_TSQLiteResultSet_executeQuery_S_m m_executeQuery_S;
	database_sqlite_TSQLiteResultSet_prepare_S_m m_prepare_S;
	database_sqlite_TSQLiteResultSet_execute_m m_execute;
	database_sqlite_TSQLiteResultSet_firstRow_m m_firstRow;
	database_sqlite_TSQLiteResultSet_nextRow_m m_nextRow;
	database_sqlite_TSQLiteResultSet_lastInsertedId_m m_lastInsertedId;
	database_sqlite_TSQLiteResultSet_rowsAffected_m m_rowsAffected;
	database_sqlite_TSQLiteResultSet_dbTypeFromNative_i_Sii_f f_dbTypeFromNative_i_Sii;
	database_core_TQueryResultSet_rowRecord_m m_rowRecord;
	database_core_TQueryResultSet_dataValue_i_m m_dataValue_i;
	database_core_TQueryResultSet_rowIndex_m m_rowIndex;
	database_core_TQueryResultSet_setRowIndex_i_m m_setRowIndex_i;
	database_core_TQueryResultSet_isActive_m m_isActive;
	database_core_TQueryResultSet_isValid_m m_isValid;
	database_core_TQueryResultSet_resetValues_i_m m_resetValues_i;
	database_core_TQueryResultSet_resetBindCount_m m_resetBindCount;
	database_core_TQueryResultSet_addBindValue_TTDBType_m m_addBindValue_TTDBType;
	database_core_TQueryResultSet_bindValue_iTTDBType_m m_bindValue_iTTDBType;
	database_sqlite_TSQLiteResultSet_reset_m m_reset;
	database_sqlite_TSQLiteResultSet_free_m m_free;
	database_sqlite_TSQLiteResultSet_cleanup_m m_cleanup;
	database_sqlite_TSQLiteResultSet_initRecord_m m_initRecord;
};

struct database_sqlite_TSQLiteResultSet_obj {
	struct BBClass_database_sqlite_TSQLiteResultSet* clas;
	struct database_core_TDBConnection_obj* _database_core_tqueryresultset_conn;
	BBBYTE* _database_core_tqueryresultset_stmthandle;
	BBSTRING _database_core_tqueryresultset_query;
	BBINT _database_core_tqueryresultset__isactive;
	BBINT _database_core_tqueryresultset_index;
	BBARRAY _database_core_tqueryresultset_values;
	BBINT _database_core_tqueryresultset_bindcount;
	BBARRAY _database_core_tqueryresultset_boundvalues;
	struct database_core_TQueryRecord_obj* _database_core_tqueryresultset_rec;
	BBINT _database_sqlite_tsqliteresultset_initialfetch;
	BBINT _database_sqlite_tsqliteresultset_fakefirstrowfetch;
};
extern struct BBClass_database_sqlite_TSQLiteResultSet database_sqlite_TSQLiteResultSet;
BBINT database_sqlite_loadOrSaveDB(struct database_sqlite_TDBSQLite_obj* bbt_inMemory,BBSTRING bbt_filename,BBINT bbt_isSave,BBSTRING bbt_database);

#endif
