summaryrefslogtreecommitdiff
path: root/connectivity
diff options
context:
space:
mode:
authorOcke.Janssen <Ocke.Janssen@oracle.com>2010-11-25 14:11:53 +0100
committerOcke.Janssen <Ocke.Janssen@oracle.com>2010-11-25 14:11:53 +0100
commit4679addd4b7705e0ec1e4401eea84c198ccdb395 (patch)
treea75180087e760d99e15505c6576b3cb0831ca9fa /connectivity
parentb54d82d27d8e486a8a6a251f314b60bc79ecaa73 (diff)
dba34b: #i115384# check if the length of BIT > 1 otherwise use setBoolean, and change typeinfo for ado types
Diffstat (limited to 'connectivity')
-rw-r--r--connectivity/source/drivers/ado/AColumns.cxx8
-rw-r--r--connectivity/source/drivers/ado/ADriver.cxx31
-rwxr-xr-xconnectivity/source/drivers/ado/ado.xcu5
-rw-r--r--connectivity/source/drivers/ado/adoimp.cxx3
4 files changed, 45 insertions, 2 deletions
diff --git a/connectivity/source/drivers/ado/AColumns.cxx b/connectivity/source/drivers/ado/AColumns.cxx
index b2e383f53e0d..60140e9be93e 100644
--- a/connectivity/source/drivers/ado/AColumns.cxx
+++ b/connectivity/source/drivers/ado/AColumns.cxx
@@ -72,8 +72,14 @@ Reference< XPropertySet > OColumns::createDescriptor()
sdbcx::ObjectType OColumns::appendObject( const ::rtl::OUString&, const Reference< XPropertySet >& descriptor )
{
OAdoColumn* pColumn = NULL;
+ Reference< XPropertySet > xColumn;
if ( !getImplementation( pColumn, descriptor ) || pColumn == NULL )
- m_pConnection->throwGenericSQLException( STR_INVALID_COLUMN_DESCRIPTOR_ERROR,static_cast<XTypeProvider*>(this) );
+ {
+ // m_pConnection->throwGenericSQLException( STR_INVALID_COLUMN_DESCRIPTOR_ERROR,static_cast<XTypeProvider*>(this) );
+ pColumn = new OAdoColumn(isCaseSensitive(),m_pConnection);
+ xColumn = pColumn;
+ ::comphelper::copyProperties(descriptor,xColumn);
+ }
WpADOColumn aColumn = pColumn->getColumnImpl();
diff --git a/connectivity/source/drivers/ado/ADriver.cxx b/connectivity/source/drivers/ado/ADriver.cxx
index 20eb6910f849..5b89623c28d8 100644
--- a/connectivity/source/drivers/ado/ADriver.cxx
+++ b/connectivity/source/drivers/ado/ADriver.cxx
@@ -163,6 +163,37 @@ void ODriver::impl_checkURL_throw(const ::rtl::OUString& _sUrl)
Sequence< DriverPropertyInfo > SAL_CALL ODriver::getPropertyInfo( const ::rtl::OUString& url, const Sequence< PropertyValue >& /*info*/ ) throw(SQLException, RuntimeException)
{
impl_checkURL_throw(url);
+ if ( acceptsURL(url) )
+ {
+ ::std::vector< DriverPropertyInfo > aDriverInfo;
+
+ Sequence< ::rtl::OUString > aBooleanValues(2);
+ aBooleanValues[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "false" ) );
+ aBooleanValues[1] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "true" ) );
+
+ aDriverInfo.push_back(DriverPropertyInfo(
+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IgnoreDriverPrivileges"))
+ ,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Ignore the privileges from the database driver."))
+ ,sal_False
+ ,::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "false" ) )
+ ,aBooleanValues)
+ );
+ aDriverInfo.push_back(DriverPropertyInfo(
+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("EscapeDateTime"))
+ ,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Escape date time format."))
+ ,sal_False
+ ,::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "true" ) )
+ ,aBooleanValues)
+ );
+ aDriverInfo.push_back(DriverPropertyInfo(
+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TypeInfoSettings"))
+ ,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Defines how the type info of the database metadata should be manipulated."))
+ ,sal_False
+ ,::rtl::OUString( )
+ ,Sequence< ::rtl::OUString > ())
+ );
+ return Sequence< DriverPropertyInfo >(&aDriverInfo[0],aDriverInfo.size());
+ }
return Sequence< DriverPropertyInfo >();
}
// --------------------------------------------------------------------------------
diff --git a/connectivity/source/drivers/ado/ado.xcu b/connectivity/source/drivers/ado/ado.xcu
index 50c29cf7ba2e..e95e1a676c12 100755
--- a/connectivity/source/drivers/ado/ado.xcu
+++ b/connectivity/source/drivers/ado/ado.xcu
@@ -164,6 +164,11 @@
<value>false</value>
</prop>
</node>
+ <node oor:name="TypeInfoSettings" oor:op="replace">
+ <prop oor:name="Value" oor:type="oor:string-list">
+ <value oor:separator=",">Column(2) = 16,Column(3) = 1</value>
+ </prop>
+ </node>
</node>
<node oor:name="Features">
<node oor:name="UseSQL92NamingConstraints" oor:op="replace">
diff --git a/connectivity/source/drivers/ado/adoimp.cxx b/connectivity/source/drivers/ado/adoimp.cxx
index 1bc136a35662..b59f41a597fa 100644
--- a/connectivity/source/drivers/ado/adoimp.cxx
+++ b/connectivity/source/drivers/ado/adoimp.cxx
@@ -105,7 +105,7 @@ sal_Int32 ADOS::MapADOType2Jdbc(DataTypeEnum eType)
case adDBTime: nType = DataType::TIME; break;
case adDate:
case adDBTimeStamp: nType = DataType::TIMESTAMP; break;
- case adBoolean: nType = DataType::BIT; break;
+ case adBoolean: nType = DataType::BOOLEAN; break;
// case adArray: nType = DataType::ARRAY; break;
case adBinary: nType = DataType::BINARY; break;
case adGUID: nType = DataType::OBJECT; break;
@@ -151,6 +151,7 @@ DataTypeEnum ADOS::MapJdbc2ADOType(sal_Int32 _nType,sal_Int32 _nJetEngine)
case DataType::DATE: return isJetEngine(_nJetEngine) ? adDate : adDBDate; break;
case DataType::TIME: return adDBTime; break;
case DataType::TIMESTAMP: return isJetEngine(_nJetEngine) ? adDate : adDBTimeStamp; break;
+ case DataType::BOOLEAN:
case DataType::BIT: return adBoolean; break;
case DataType::BINARY: return adBinary; break;
case DataType::VARCHAR: return adVarWChar; break;