Add embedded firebird loading code, set as default db.

Change-Id: I993d7d7bacec710bb57d9e8f91d3cd01b0fbf616
This commit is contained in:
Andrzej J.R. Hunt
2013-07-08 09:39:55 +01:00
parent 002e9c5a83
commit 99dfc26327
4 changed files with 16 additions and 2 deletions

View File

@@ -147,7 +147,10 @@ sal_Bool SAL_CALL FirebirdDriver::acceptsURL( const ::rtl::OUString& url )
{
// here we have to look if we support this url format
// change the URL format to your needs, but please aware that the first on who accepts the URl wins.
return url.startsWith("sdbc:firebird:");
// This could be extended to allow for external dbs using e.g. sdbc:firebird:url
// in addition to embedded dbs.
// return url.startsWith("sdbc:firebird:");
return url.equals("sdbc:embedded:firebird");
}
// --------------------------------------------------------------------------------
Sequence< DriverPropertyInfo > SAL_CALL FirebirdDriver::getPropertyInfo( const ::rtl::OUString& url, const Sequence< PropertyValue >& info ) throw(SQLException, RuntimeException)

View File

@@ -206,6 +206,7 @@ OUString ODsnTypeCollection::getDatasourcePrefixFromMediaType(const OUString& _s
bool ODsnTypeCollection::isShowPropertiesEnabled( const OUString& _sURL ) const
{
return !( _sURL.matchIgnoreAsciiCaseAsciiL("sdbc:embedded:hsqldb",sizeof("sdbc:embedded:hsqldb")-1)
|| _sURL.matchIgnoreAsciiCaseAsciiL("sdbc:embedded:firebird",sizeof("sdbc:embedded:firebird")-1)
|| _sURL.matchIgnoreAsciiCaseAsciiL("sdbc:address:outlook",sizeof("sdbc:address:outlook")-1)
|| _sURL.matchIgnoreAsciiCaseAsciiL("sdbc:address:outlookexp",sizeof("sdbc:address:outlookexp")-1)
|| _sURL.matchIgnoreAsciiCaseAsciiL("sdbc:address:mozilla:",sizeof("sdbc:address:mozilla:")-1)
@@ -321,7 +322,11 @@ OUString ODsnTypeCollection::getEmbeddedDatabase() const
}
}
if ( sEmbeddedDatabaseURL.isEmpty() )
#ifdef ENABLE_FIREBIRD_SDBC
sEmbeddedDatabaseURL = "sdbc:embedded:firebird";
#else
sEmbeddedDatabaseURL = "sdbc:embedded:hsqldb";
#endif
return sEmbeddedDatabaseURL;
}
//-------------------------------------------------------------------------
@@ -361,6 +366,9 @@ DATASOURCE_TYPE ODsnTypeCollection::determineType(const OUString& _rDsn) const
if (sDsn.equalsIgnoreAsciiCase("sdbc:embedded:hsqldb"))
return DST_EMBEDDED_HSQLDB;
if (sDsn.equalsIgnoreAsciiCase("sdbc:embedded:firebird"))
return DST_EMBEDDED_FIREBIRD;
// find second :
nSeparator = sDsn.indexOf(static_cast<sal_Unicode>(':'), nSeparator + 1);
if (-1 == nSeparator)
@@ -489,6 +497,7 @@ void ODsnTypeCollection::fillPageIds(const OUString& _sURL,::std::vector<sal_Int
case DST_KAB:
case DST_MACAB:
case DST_EMBEDDED_HSQLDB:
case DST_EMBEDDED_FIREBIRD:
break;
default:
_rOutPathIds.push_back(PAGE_DBSETUPWIZARD_USERDEFINED);

View File

@@ -61,6 +61,7 @@ enum DATASOURCE_TYPE
DST_EMBEDDED_HSQLDB = 23,
DST_MYSQL_NATIVE = 24,
DST_MYSQL_NATIVE_DIRECT = 25,
DST_EMBEDDED_FIREBIRD = 26,
DST_USERDEFINE1, /// first user defined driver
DST_USERDEFINE2,

View File

@@ -276,7 +276,8 @@ namespace dbaui
_inout_rDisplayName = String();
}
if ( eType == ::dbaccess::DST_EMBEDDED_HSQLDB )
if ( eType == ::dbaccess::DST_EMBEDDED_HSQLDB
|| eType == ::dbaccess::DST_EMBEDDED_FIREBIRD )
_inout_rDisplayName = String();
return _inout_rDisplayName.getLength() > 0;