Kaydet (Commit) acd9f66f authored tarafından Andrzej J.R. Hunt's avatar Andrzej J.R. Hunt Kaydeden (comit) Fridrich Strba

Split type-description out of createStandardColumnPart.

createStandardColumnPart returns a string that is usable in table creation,
the type descriptor (e.g. CHAR(N)) is also useful in column-type altering
statements, hence this is split into a separate function.

This is needed primarily in the firebird driver where column-type alter
statements are in a different form to most dbs.

Change-Id: If44554f979f6dd14bf679455978f3f0b44784bf5
Reviewed-on: https://gerrit.libreoffice.org/5432Reviewed-by: 's avatarFridrich Strba <fridrich@documentfoundation.org>
Tested-by: 's avatarFridrich Strba <fridrich@documentfoundation.org>
üst bd507a0d
......@@ -60,7 +60,7 @@ namespace dbtools
using namespace connectivity;
using namespace comphelper;
OUString createStandardColumnPart(const Reference< XPropertySet >& xColProp,const Reference< XConnection>& _xConnection,ISQLStatementHelper* _pHelper,const OUString& _sCreatePattern)
OUString createStandardTypePart(const Reference< XPropertySet >& xColProp,const Reference< XConnection>& _xConnection,ISQLStatementHelper* _pHelper,const OUString& _sCreatePattern)
{
Reference<XDatabaseMetaData> xMetaData = _xConnection->getMetaData();
......@@ -72,11 +72,6 @@ OUString createStandardColumnPart(const Reference< XPropertySet >& xColProp,cons
sal_Int32 nPrecision = 0;
sal_Int32 nScale = 0;
const OUString sQuoteString = xMetaData->getIdentifierQuoteString();
OUStringBuffer aSql = ::dbtools::quoteName(sQuoteString,::comphelper::getString(xColProp->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_NAME))));
aSql.appendAscii(" ");
nDataType = nPrecision = nScale = 0;
sal_Bool bIsAutoIncrement = sal_False;
xColProp->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_TYPENAME)) >>= sTypeName;
......@@ -85,6 +80,8 @@ OUString createStandardColumnPart(const Reference< XPropertySet >& xColProp,cons
xColProp->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_SCALE)) >>= nScale;
xColProp->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_ISAUTOINCREMENT)) >>= bIsAutoIncrement;
OUStringBuffer aSql;
// check if the user enter a specific string to create autoincrement values
OUString sAutoIncrementValue;
Reference<XPropertySetInfo> xPropInfo = xColProp->getPropertySetInfo();
......@@ -180,6 +177,23 @@ OUString createStandardColumnPart(const Reference< XPropertySet >& xColProp,cons
return aSql.makeStringAndClear();
}
OUString createStandardColumnPart(const Reference< XPropertySet >& xColProp,const Reference< XConnection>& _xConnection,ISQLStatementHelper* _pHelper,const OUString& _sCreatePattern)
{
Reference<XDatabaseMetaData> xMetaData = _xConnection->getMetaData();
::dbtools::OPropertyMap& rPropMap = OMetaConnection::getPropMap();
const OUString sQuoteString = xMetaData->getIdentifierQuoteString();
OUStringBuffer aSql = ::dbtools::quoteName(sQuoteString,::comphelper::getString(xColProp->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_NAME))));
aSql.appendAscii(" ");
aSql.append(createStandardTypePart(xColProp, _xConnection, _pHelper, _sCreatePattern));
return aSql.makeStringAndClear();
}
// -----------------------------------------------------------------------------
OUString createStandardCreateStatement(const Reference< XPropertySet >& descriptor,const Reference< XConnection>& _xConnection,ISQLStatementHelper* _pHelper,const OUString& _sCreatePattern)
......
......@@ -645,6 +645,22 @@ namespace dbtools
OUString createStandardKeyStatement( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& descriptor,
const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _xConnection);
/** creates the standard sql statement for the type part of a create or alter table statement.
@param _pHelper
Allow to add special SQL constructs.
@param descriptor
The descriptor of the column.
@param _xConnection
The connection.
@param _pHelper
Allow to add special SQL constructs.
*/
OOO_DLLPUBLIC_DBTOOLS
OUString createStandardTypePart( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& descriptor
,const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection>& _xConnection
,ISQLStatementHelper* _pHelper = NULL
,const OUString& _sCreatePattern = OUString());
/** creates the standard sql statement for the column part of a create table statement.
@param _pHelper
Allow to add special SQL constructs.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment