Checking, if a Database exists
    Ruslan Zasukhin 
    sunshine at public.kherson.ua
       
    Thu Nov 20 04:21:10 CST 2008
    
    
  
On 11/20/08 12:08 PM, "Stefan Von Torklus" <stefanvt at gmx.de> wrote:
> hello,
> 
> I have a strange problem.
> I create a database, the file exists. And on shutdown I close/flush the
> database.
> 
> The next start I expected, that the get_Exists()-Method of I_Disk_Location
> notices, that
> the database already exists. But it always say, that it does not.
> 
> I_Disk_Location* pLocation = CreateDiskLocation(filename);
> if(pLocation->get_Exists()) {
>     //open -> never!
> } else {
>    //create -> always! :-(
> }
> 
> Do I missunderstood this Method?
> I don't want to use some system dependent/Non-Valentina method for this. And
> I'm sure, there is a way,
> but I can't find a suitable method for it in the valentina-interfaces
> header...
> 
> Would be glad, if someone may point me to the right direction...
This is one of our tests:
    although I see this is test of SQL command CREATE DATABASE
void Test_VSQL_CreateDatabase( void ) throw()
{
    TEST_NAME( "Test_VSQL_CreateDatabase" );
    try
    {
        I_SqlDatabase_Ptr pSqlDb = Test_Persistent_Database_Prepare();
        I_Database_Ptr pDb = CreateDatabase();
        pDb->put_Location( FBL::CreateDiskLocation( "db1" ) );
        DO_TEST_EQ( pDb->get_Exists(), false );
        pSqlDb->SqlExecute( "CREATE DATABASE if not exists db1 " );
        DO_TEST_EQ( pDb->get_Exists(), true );
    }
    TEST_CATCH
    {
        I_SqlDatabase_Ptr pSqlDb = Test_Persistent_Database_Prepare();
        Test_VSQL_Database_CleanUp( pSqlDb );
        // Clean up.
        I_Database_Ptr pDb = CreateDatabase();
        pDb->put_Location( FBL::CreateDiskLocation( "db1" ) );
        try
        {
            pDb->ThrowOut();
        }
        catch(...)
        {          
        }
    }
}
-- 
Best regards,
Ruslan Zasukhin
VP Engineering and New Technology
Paradigma Software, Inc
Valentina - Joining Worlds of Information
http://www.paradigmasoft.com
[I feel the need: the need for speed]
    
    
More information about the Valentina
mailing list