diff options
author | Ocke Janssen <oj@openoffice.org> | 2001-07-05 10:05:34 +0000 |
---|---|---|
committer | Ocke Janssen <oj@openoffice.org> | 2001-07-05 10:05:34 +0000 |
commit | cebffff0d887e7d54f2efaa4cf9a46f807529cee (patch) | |
tree | 7ed22e17fc7a54a2410ea714895b844a4ab8ca79 /connectivity/source/drivers/adabas/BTables.cxx | |
parent | 0cdfb99fc2120bd133cb592b8fbbfb55a26b041d (diff) |
#89259# check for special types
Diffstat (limited to 'connectivity/source/drivers/adabas/BTables.cxx')
-rw-r--r-- | connectivity/source/drivers/adabas/BTables.cxx | 35 |
1 files changed, 28 insertions, 7 deletions
diff --git a/connectivity/source/drivers/adabas/BTables.cxx b/connectivity/source/drivers/adabas/BTables.cxx index 7dee06e5094f..96dc0faf0c6d 100644 --- a/connectivity/source/drivers/adabas/BTables.cxx +++ b/connectivity/source/drivers/adabas/BTables.cxx @@ -2,9 +2,9 @@ * * $RCSfile: BTables.cxx,v $ * - * $Revision: 1.18 $ + * $Revision: 1.19 $ * - * last change: $Author: oj $ $Date: 2001-07-03 13:01:47 $ + * last change: $Author: oj $ $Date: 2001-07-05 11:03:56 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -327,15 +327,30 @@ void OTables::createTable( const Reference< XPropertySet >& descriptor ) aTypeName = xColProp->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPENAME)); - if(aTypeName.hasValue() && getString(aTypeName).getLength()) - aSql += getString(aTypeName); - else - aSql += getTypeString(xColProp) + ::rtl::OUString::createFromAscii(" "); + sal_Int32 nDataType = 0; + xColProp->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPE)) >>= nDataType; - switch(getINT32(xColProp->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPE)))) + switch(nDataType) + { + case DataType::VARBINARY: + aSql += ::rtl::OUString::createFromAscii("VAR"); + /* run through*/ + case DataType::BINARY: + aSql += ::rtl::OUString::createFromAscii("CHAR"); + break; + default: + if(aTypeName.hasValue() && getString(aTypeName).getLength()) + aSql += getString(aTypeName); + else + aSql += getTypeString(xColProp) + ::rtl::OUString::createFromAscii(" "); + } + + switch(nDataType) { case DataType::CHAR: case DataType::VARCHAR: + case DataType::FLOAT: + case DataType::REAL: aSql += ::rtl::OUString::createFromAscii("(") + ::rtl::OUString::valueOf(getINT32(xColProp->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_PRECISION)))) + ::rtl::OUString::createFromAscii(")"); @@ -349,6 +364,12 @@ void OTables::createTable( const Reference< XPropertySet >& descriptor ) + ::rtl::OUString::valueOf(getINT32(xColProp->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_SCALE)))) + ::rtl::OUString::createFromAscii(")"); break; + case DataType::BINARY: + case DataType::VARBINARY: + aSql += ::rtl::OUString::createFromAscii("(") + + ::rtl::OUString::valueOf(getINT32(xColProp->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_PRECISION)))) + + ::rtl::OUString::createFromAscii(") BYTE"); + break; } ::rtl::OUString aDefault = getString(xColProp->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_DEFAULTVALUE))); if(getINT32(xColProp->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_ISNULLABLE))) == ColumnValue::NO_NULLS) |