xref: /AOO42X/main/mysqlc/source/mysqlc_propertyids.cxx (revision b1c5455db1639c48e26c568e4fa7ee78ca5d60ee)
1*079eb577SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*079eb577SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*079eb577SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*079eb577SAndrew Rist  * distributed with this work for additional information
6*079eb577SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*079eb577SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*079eb577SAndrew Rist  * "License"); you may not use this file except in compliance
9*079eb577SAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11*079eb577SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13*079eb577SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*079eb577SAndrew Rist  * software distributed under the License is distributed on an
15*079eb577SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*079eb577SAndrew Rist  * KIND, either express or implied.  See the License for the
17*079eb577SAndrew Rist  * specific language governing permissions and limitations
18*079eb577SAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20*079eb577SAndrew Rist  *************************************************************/
21cdf0e10cSrcweir 
22cdf0e10cSrcweir #ifndef _OSL_DIAGNOSE_H_
23cdf0e10cSrcweir #include <osl/diagnose.h>
24cdf0e10cSrcweir #endif
25cdf0e10cSrcweir #include "mysqlc_propertyids.hxx"
26cdf0e10cSrcweir 
27cdf0e10cSrcweir using ::rtl::OUString;
28cdf0e10cSrcweir 
29cdf0e10cSrcweir namespace connectivity
30cdf0e10cSrcweir {
31cdf0e10cSrcweir namespace mysqlc
32cdf0e10cSrcweir {
getPROPERTY_QUERYTIMEOUT()33cdf0e10cSrcweir const sal_Char* getPROPERTY_QUERYTIMEOUT()          { return "QueryTimeOut"; }
getPROPERTY_MAXFIELDSIZE()34cdf0e10cSrcweir const sal_Char* getPROPERTY_MAXFIELDSIZE()          { return "MaxFieldSize"; }
getPROPERTY_MAXROWS()35cdf0e10cSrcweir const sal_Char* getPROPERTY_MAXROWS()               { return "MaxRows"; }
getPROPERTY_CURSORNAME()36cdf0e10cSrcweir const sal_Char* getPROPERTY_CURSORNAME()            { return "CursorName"; }
getPROPERTY_RESULTSETCONCURRENCY()37cdf0e10cSrcweir const sal_Char* getPROPERTY_RESULTSETCONCURRENCY()  { return "ResultSetConcurrency"; }
getPROPERTY_RESULTSETTYPE()38cdf0e10cSrcweir const sal_Char* getPROPERTY_RESULTSETTYPE()         { return "ResultSetType"; }
getPROPERTY_FETCHDIRECTION()39cdf0e10cSrcweir const sal_Char* getPROPERTY_FETCHDIRECTION()        { return "FetchDirection"; }
getPROPERTY_FETCHSIZE()40cdf0e10cSrcweir const sal_Char* getPROPERTY_FETCHSIZE()             { return "FetchSize"; }
getPROPERTY_ESCAPEPROCESSING()41cdf0e10cSrcweir const sal_Char* getPROPERTY_ESCAPEPROCESSING()      { return "EscapeProcessing"; }
getPROPERTY_USEBOOKMARKS()42cdf0e10cSrcweir const sal_Char* getPROPERTY_USEBOOKMARKS()          { return "UseBookmarks"; }
43cdf0e10cSrcweir 
getPROPERTY_NAME()44cdf0e10cSrcweir const sal_Char* getPROPERTY_NAME()                  { return "Name"; }
getPROPERTY_TYPE()45cdf0e10cSrcweir const sal_Char* getPROPERTY_TYPE()                  { return "Type"; }
getPROPERTY_TYPENAME()46cdf0e10cSrcweir const sal_Char* getPROPERTY_TYPENAME()              { return "TypeName"; }
getPROPERTY_PRECISION()47cdf0e10cSrcweir const sal_Char* getPROPERTY_PRECISION()             { return "Precision"; }
getPROPERTY_SCALE()48cdf0e10cSrcweir const sal_Char* getPROPERTY_SCALE()                 { return "Scale"; }
getPROPERTY_ISNULLABLE()49cdf0e10cSrcweir const sal_Char* getPROPERTY_ISNULLABLE()            { return "IsNullable"; }
getPROPERTY_ISAUTOINCREMENT()50cdf0e10cSrcweir const sal_Char* getPROPERTY_ISAUTOINCREMENT()       { return "IsAutoIncrement"; }
getPROPERTY_ISROWVERSION()51cdf0e10cSrcweir const sal_Char* getPROPERTY_ISROWVERSION()          { return "IsRowVersion"; }
getPROPERTY_DESCRIPTION()52cdf0e10cSrcweir const sal_Char* getPROPERTY_DESCRIPTION()           { return "Description"; }
getPROPERTY_DEFAULTVALUE()53cdf0e10cSrcweir const sal_Char* getPROPERTY_DEFAULTVALUE()          { return "DefaultValue"; }
54cdf0e10cSrcweir 
getPROPERTY_REFERENCEDTABLE()55cdf0e10cSrcweir const sal_Char* getPROPERTY_REFERENCEDTABLE()       { return "ReferencedTable"; }
getPROPERTY_UPDATERULE()56cdf0e10cSrcweir const sal_Char* getPROPERTY_UPDATERULE()            { return "UpdateRule"; }
getPROPERTY_DELETERULE()57cdf0e10cSrcweir const sal_Char* getPROPERTY_DELETERULE()            { return "DeleteRule"; }
getPROPERTY_CATALOG()58cdf0e10cSrcweir const sal_Char* getPROPERTY_CATALOG()               { return "Catalog"; }
getPROPERTY_ISUNIQUE()59cdf0e10cSrcweir const sal_Char* getPROPERTY_ISUNIQUE()              { return "IsUnique"; }
getPROPERTY_ISPRIMARYKEYINDEX()60cdf0e10cSrcweir const sal_Char* getPROPERTY_ISPRIMARYKEYINDEX()     { return "IsPrimaryKeyIndex"; }
getPROPERTY_ISCLUSTERED()61cdf0e10cSrcweir const sal_Char* getPROPERTY_ISCLUSTERED()           { return "IsClustered"; }
getPROPERTY_ISASCENDING()62cdf0e10cSrcweir const sal_Char* getPROPERTY_ISASCENDING()           { return "IsAscending"; }
getPROPERTY_SCHEMANAME()63cdf0e10cSrcweir const sal_Char* getPROPERTY_SCHEMANAME()            { return "SchemaName"; }
getPROPERTY_CATALOGNAME()64cdf0e10cSrcweir const sal_Char* getPROPERTY_CATALOGNAME()           { return "CatalogName"; }
getPROPERTY_COMMAND()65cdf0e10cSrcweir const sal_Char* getPROPERTY_COMMAND()               { return "Command"; }
getPROPERTY_CHECKOPTION()66cdf0e10cSrcweir const sal_Char* getPROPERTY_CHECKOPTION()           { return "CheckOption"; }
getPROPERTY_PASSWORD()67cdf0e10cSrcweir const sal_Char* getPROPERTY_PASSWORD()              { return "Password"; }
getPROPERTY_RELATEDCOLUMN()68cdf0e10cSrcweir const sal_Char* getPROPERTY_RELATEDCOLUMN()         { return "RelatedColumn"; }
69cdf0e10cSrcweir 
getSTAT_INVALID_INDEX()70cdf0e10cSrcweir const sal_Char* getSTAT_INVALID_INDEX()             { return "Invalid descriptor index"; }
71cdf0e10cSrcweir 
getPROPERTY_FUNCTION()72cdf0e10cSrcweir const sal_Char* getPROPERTY_FUNCTION()              { return "Function"; }
getPROPERTY_TABLENAME()73cdf0e10cSrcweir const sal_Char* getPROPERTY_TABLENAME()             { return "TableName"; }
getPROPERTY_REALNAME()74cdf0e10cSrcweir const sal_Char* getPROPERTY_REALNAME()              { return "RealName"; }
getPROPERTY_DBASEPRECISIONCHANGED()75cdf0e10cSrcweir const sal_Char* getPROPERTY_DBASEPRECISIONCHANGED() { return "DbasePrecisionChanged"; }
getPROPERTY_ISCURRENCY()76cdf0e10cSrcweir const sal_Char* getPROPERTY_ISCURRENCY()            { return "IsCurrency"; }
getPROPERTY_ISBOOKMARKABLE()77cdf0e10cSrcweir const sal_Char* getPROPERTY_ISBOOKMARKABLE()        { return "IsBookmarkable"; }
78cdf0e10cSrcweir 
getPROPERTY_FORMATKEY()79cdf0e10cSrcweir const sal_Char* getPROPERTY_FORMATKEY()             { return "FormatKey"; }
getPROPERTY_LOCALE()80cdf0e10cSrcweir const sal_Char* getPROPERTY_LOCALE()                { return "Locale"; }
81cdf0e10cSrcweir 
getPROPERTY_AUTOINCREMENTCREATION()82cdf0e10cSrcweir const sal_Char* getPROPERTY_AUTOINCREMENTCREATION() { return "AutoIncrementCreation"; }
getPROPERTY_PRIVILEGES()83cdf0e10cSrcweir const sal_Char* getPROPERTY_PRIVILEGES()            { return "Privileges"; }
84cdf0e10cSrcweir     //============================================================
85cdf0e10cSrcweir     //= error messages
86cdf0e10cSrcweir     //============================================================
getERRORMSG_SEQUENCE()87cdf0e10cSrcweir const sal_Char* getERRORMSG_SEQUENCE()              { return "Function sequence error"; }
getSQLSTATE_SEQUENCE()88cdf0e10cSrcweir const sal_Char* getSQLSTATE_SEQUENCE()              { return "HY010"; }
getSQLSTATE_GENERAL()89cdf0e10cSrcweir const sal_Char* getSQLSTATE_GENERAL()               { return "HY0000"; }
getSTR_DELIMITER()90cdf0e10cSrcweir const sal_Char* getSTR_DELIMITER()                  { return "/"; }
91cdf0e10cSrcweir 
92cdf0e10cSrcweir 
93cdf0e10cSrcweir 
94cdf0e10cSrcweir /* {{{ OPropertyMap::~OPropertyMap() -I- */
~OPropertyMap()95cdf0e10cSrcweir OPropertyMap::~OPropertyMap()
96cdf0e10cSrcweir {
97cdf0e10cSrcweir     ::std::map<sal_Int32 , rtl_uString*>::iterator aIter = m_aPropertyMap.begin();
98cdf0e10cSrcweir     for(; aIter != m_aPropertyMap.end(); ++aIter) {
99cdf0e10cSrcweir         if (aIter->second) {
100cdf0e10cSrcweir             rtl_uString_release(aIter->second);
101cdf0e10cSrcweir         }
102cdf0e10cSrcweir     }
103cdf0e10cSrcweir }
104cdf0e10cSrcweir /* }}} */
105cdf0e10cSrcweir 
106cdf0e10cSrcweir 
107cdf0e10cSrcweir /* {{{ OPropertyMap::getNameByIndex() -I- */
getNameByIndex(sal_Int32 idx) const108cdf0e10cSrcweir OUString OPropertyMap::getNameByIndex(sal_Int32 idx) const
109cdf0e10cSrcweir {
110cdf0e10cSrcweir     OUString sRet;
111cdf0e10cSrcweir     ::std::map<sal_Int32 , rtl_uString*>::const_iterator aIter = m_aPropertyMap.find(idx);
112cdf0e10cSrcweir     if (aIter == m_aPropertyMap.end()) {
113cdf0e10cSrcweir         sRet = const_cast<OPropertyMap*>(this)->fillValue(idx);
114cdf0e10cSrcweir     } else {
115cdf0e10cSrcweir         sRet = aIter->second;
116cdf0e10cSrcweir     }
117cdf0e10cSrcweir     return sRet;
118cdf0e10cSrcweir }
119cdf0e10cSrcweir /* }}} */
120cdf0e10cSrcweir 
121cdf0e10cSrcweir typedef const sal_Char * (*property_callback)();
122cdf0e10cSrcweir 
123cdf0e10cSrcweir static const property_callback property_callbacks[PROPERTY_ID_LAST] =
124cdf0e10cSrcweir {
125cdf0e10cSrcweir     NULL, /* PROPERTY_ID_FIRST */
126cdf0e10cSrcweir     getPROPERTY_QUERYTIMEOUT,
127cdf0e10cSrcweir     getPROPERTY_MAXFIELDSIZE,
128cdf0e10cSrcweir     getPROPERTY_MAXROWS,
129cdf0e10cSrcweir     getPROPERTY_CURSORNAME,
130cdf0e10cSrcweir     getPROPERTY_RESULTSETCONCURRENCY,
131cdf0e10cSrcweir     getPROPERTY_RESULTSETTYPE,
132cdf0e10cSrcweir     getPROPERTY_FETCHDIRECTION,
133cdf0e10cSrcweir     getPROPERTY_FETCHSIZE,
134cdf0e10cSrcweir     getPROPERTY_ESCAPEPROCESSING,
135cdf0e10cSrcweir     getPROPERTY_USEBOOKMARKS,
136cdf0e10cSrcweir     // Column
137cdf0e10cSrcweir     getPROPERTY_NAME,
138cdf0e10cSrcweir     getPROPERTY_TYPE,
139cdf0e10cSrcweir     getPROPERTY_TYPENAME,
140cdf0e10cSrcweir     getPROPERTY_PRECISION,
141cdf0e10cSrcweir     getPROPERTY_SCALE,
142cdf0e10cSrcweir     getPROPERTY_ISNULLABLE,
143cdf0e10cSrcweir     getPROPERTY_ISAUTOINCREMENT,
144cdf0e10cSrcweir     getPROPERTY_ISROWVERSION,
145cdf0e10cSrcweir     getPROPERTY_DESCRIPTION,
146cdf0e10cSrcweir     getPROPERTY_DEFAULTVALUE,
147cdf0e10cSrcweir 
148cdf0e10cSrcweir     getPROPERTY_REFERENCEDTABLE,
149cdf0e10cSrcweir     getPROPERTY_UPDATERULE,
150cdf0e10cSrcweir     getPROPERTY_DELETERULE,
151cdf0e10cSrcweir     getPROPERTY_CATALOG,
152cdf0e10cSrcweir     getPROPERTY_ISUNIQUE,
153cdf0e10cSrcweir     getPROPERTY_ISPRIMARYKEYINDEX,
154cdf0e10cSrcweir     getPROPERTY_ISCLUSTERED,
155cdf0e10cSrcweir     getPROPERTY_ISASCENDING,
156cdf0e10cSrcweir     getPROPERTY_SCHEMANAME,
157cdf0e10cSrcweir     getPROPERTY_CATALOGNAME,
158cdf0e10cSrcweir 
159cdf0e10cSrcweir     getPROPERTY_COMMAND,
160cdf0e10cSrcweir     getPROPERTY_CHECKOPTION,
161cdf0e10cSrcweir     getPROPERTY_PASSWORD,
162cdf0e10cSrcweir     getPROPERTY_RELATEDCOLUMN,
163cdf0e10cSrcweir 
164cdf0e10cSrcweir     getPROPERTY_FUNCTION,
165cdf0e10cSrcweir     getPROPERTY_TABLENAME,
166cdf0e10cSrcweir     getPROPERTY_REALNAME,
167cdf0e10cSrcweir     getPROPERTY_DBASEPRECISIONCHANGED,
168cdf0e10cSrcweir     getPROPERTY_ISCURRENCY,
169cdf0e10cSrcweir     getPROPERTY_ISBOOKMARKABLE,
170cdf0e10cSrcweir     getSTAT_INVALID_INDEX,
171cdf0e10cSrcweir     getERRORMSG_SEQUENCE,
172cdf0e10cSrcweir     getSQLSTATE_SEQUENCE,
173cdf0e10cSrcweir     getSQLSTATE_GENERAL,
174cdf0e10cSrcweir     getSTR_DELIMITER,
175cdf0e10cSrcweir     getPROPERTY_FORMATKEY,
176cdf0e10cSrcweir     getPROPERTY_LOCALE,
177cdf0e10cSrcweir     getPROPERTY_AUTOINCREMENTCREATION,
178cdf0e10cSrcweir     getPROPERTY_PRIVILEGES,
179cdf0e10cSrcweir };
180cdf0e10cSrcweir 
181cdf0e10cSrcweir 
182cdf0e10cSrcweir /* {{{ OPropertyMap::fillValue() -I- */
fillValue(sal_Int32 idx)183cdf0e10cSrcweir OUString OPropertyMap::fillValue(sal_Int32 idx)
184cdf0e10cSrcweir {
185cdf0e10cSrcweir     rtl_uString* pStr = NULL;
186cdf0e10cSrcweir     rtl_uString_newFromAscii(&pStr, property_callbacks[idx]());
187cdf0e10cSrcweir     m_aPropertyMap[idx] = pStr;
188cdf0e10cSrcweir     return pStr;
189cdf0e10cSrcweir }
190cdf0e10cSrcweir /* }}} */
191cdf0e10cSrcweir 
192cdf0e10cSrcweir } /* mysqlc */
193cdf0e10cSrcweir } /* connectivity */
194cdf0e10cSrcweir 
195cdf0e10cSrcweir /*
196cdf0e10cSrcweir  * Local variables:
197cdf0e10cSrcweir  * tab-width: 4
198cdf0e10cSrcweir  * c-basic-offset: 4
199cdf0e10cSrcweir  * End:
200cdf0e10cSrcweir  * vim600: noet sw=4 ts=4 fdm=marker
201cdf0e10cSrcweir  * vim<600: noet sw=4 ts=4
202cdf0e10cSrcweir  */
203