// -----------------------------------------------------------------------------
// CUpnpSecurityDbConnection::OpenDatabaseL
// Prepare database for use, create new if not exist.
// -----------------------------------------------------------------------------
//
void CUpnpSecurityDbConnection::OpenDatabaseL()
    {
    EnsureDiskSpaceL();

    if ( OpenDb( iDbFileName ) != KErrNone )
        {
        User::LeaveIfError( CreateDbFile( iDbFileName ) );
        }

    if ( !Validate() )
        {
        CreateTablesL();
        }
    }
Beispiel #2
0
bool recDb::CreateDb( const wxString& fname, unsigned flags )
{
    wxFileName dbfile( fname );

    if( flags & CREATE_DB_STD_EXT ) {
        dbfile.SetExt( "tfpd" );
    }

    if( flags & CREATE_DB_ENUM_FN ) {
        wxString fn = dbfile.GetName();
        wxString nfn;

        for( int i = 2 ; dbfile.FileExists() == true ; i++ ) {
            nfn.Printf( "%s(%d)", fn.c_str(), i );
            dbfile.SetName( nfn );
        }
    } else {
        if( dbfile.FileExists() == true ) {
            recMessage( _("File already exists"), _("Create Database") );
            // TODO: replace existing file
            return false;
        }
    }

    if( s_db->IsOpen() ) {
        recMessage( _("Database already open"), _("Create Database") );
        return false;
    }

    wxString dbfname = dbfile.GetFullPath();
    CreateReturn ret = CreateDbFile( dbfname, DT_Full );
    if ( ret == CR_OK ) {
        s_db->Open( dbfname );
        return true;
    }
    return false;
}