示例#1
0
SyncroDB::SyncroDB( 
	const std::string& insFilename 
	) : 
kode::db::SqliteDatabase( insFilename )
{
	int nCurrentVersion = runScalar<int>( "PRAGMA user_version;" );

	if( nCurrentVersion != EXPECTED_DB_VERSION )
	{
		bool fOK;
		if( nCurrentVersion == 0 )
		{
			fOK = CreateDatabase();
		}
		else
		{
			fOK = UpgradeDatabase( nCurrentVersion );
		}
		if( fOK )
		{
			runInsert( 
				"PRAGMA user_version=" + 
				boost::lexical_cast<std::string>( EXPECTED_DB_VERSION ) + 
				";" 
				);
		}
	}
}
示例#2
0
void FbConfigDatabase::Open()
{
	wxString filename = GetConfigName();
	bool bExists = wxFileExists(filename);
	FbDatabase::Open(filename, wxEmptyString, WXSQLITE_OPEN_READWRITE | WXSQLITE_OPEN_CREATE | WXSQLITE_OPEN_FULLMUTEX);
	ExecuteUpdate(fbT("PRAGMA temp_store=2"));
	if (!bExists) CreateDatabase();
	UpgradeDatabase(DB_CONFIG_VERSION);
}
示例#3
0
void FbMainDatabase::Open(const wxString& filename, const wxString& key, int flags)
{
	FbDatabase::Open(filename, key, flags);
	ExecuteUpdate(fbT("PRAGMA temp_store=2"));
	bool bExists = TableExists(GetMaster());
	InitFunctions();

	wxString message = bExists ? _("Open database") : _("Create database");
	FbLogMessage(message, filename);

	if (!bExists) CreateDatabase();
	UpgradeDatabase(DB_DATABASE_VERSION);
}