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 { 33cdf0e10cSrcweir const sal_Char* getPROPERTY_QUERYTIMEOUT() { return "QueryTimeOut"; } 34cdf0e10cSrcweir const sal_Char* getPROPERTY_MAXFIELDSIZE() { return "MaxFieldSize"; } 35cdf0e10cSrcweir const sal_Char* getPROPERTY_MAXROWS() { return "MaxRows"; } 36cdf0e10cSrcweir const sal_Char* getPROPERTY_CURSORNAME() { return "CursorName"; } 37cdf0e10cSrcweir const sal_Char* getPROPERTY_RESULTSETCONCURRENCY() { return "ResultSetConcurrency"; } 38cdf0e10cSrcweir const sal_Char* getPROPERTY_RESULTSETTYPE() { return "ResultSetType"; } 39cdf0e10cSrcweir const sal_Char* getPROPERTY_FETCHDIRECTION() { return "FetchDirection"; } 40cdf0e10cSrcweir const sal_Char* getPROPERTY_FETCHSIZE() { return "FetchSize"; } 41cdf0e10cSrcweir const sal_Char* getPROPERTY_ESCAPEPROCESSING() { return "EscapeProcessing"; } 42cdf0e10cSrcweir const sal_Char* getPROPERTY_USEBOOKMARKS() { return "UseBookmarks"; } 43cdf0e10cSrcweir 44cdf0e10cSrcweir const sal_Char* getPROPERTY_NAME() { return "Name"; } 45cdf0e10cSrcweir const sal_Char* getPROPERTY_TYPE() { return "Type"; } 46cdf0e10cSrcweir const sal_Char* getPROPERTY_TYPENAME() { return "TypeName"; } 47cdf0e10cSrcweir const sal_Char* getPROPERTY_PRECISION() { return "Precision"; } 48cdf0e10cSrcweir const sal_Char* getPROPERTY_SCALE() { return "Scale"; } 49cdf0e10cSrcweir const sal_Char* getPROPERTY_ISNULLABLE() { return "IsNullable"; } 50cdf0e10cSrcweir const sal_Char* getPROPERTY_ISAUTOINCREMENT() { return "IsAutoIncrement"; } 51cdf0e10cSrcweir const sal_Char* getPROPERTY_ISROWVERSION() { return "IsRowVersion"; } 52cdf0e10cSrcweir const sal_Char* getPROPERTY_DESCRIPTION() { return "Description"; } 53cdf0e10cSrcweir const sal_Char* getPROPERTY_DEFAULTVALUE() { return "DefaultValue"; } 54cdf0e10cSrcweir 55cdf0e10cSrcweir const sal_Char* getPROPERTY_REFERENCEDTABLE() { return "ReferencedTable"; } 56cdf0e10cSrcweir const sal_Char* getPROPERTY_UPDATERULE() { return "UpdateRule"; } 57cdf0e10cSrcweir const sal_Char* getPROPERTY_DELETERULE() { return "DeleteRule"; } 58cdf0e10cSrcweir const sal_Char* getPROPERTY_CATALOG() { return "Catalog"; } 59cdf0e10cSrcweir const sal_Char* getPROPERTY_ISUNIQUE() { return "IsUnique"; } 60cdf0e10cSrcweir const sal_Char* getPROPERTY_ISPRIMARYKEYINDEX() { return "IsPrimaryKeyIndex"; } 61cdf0e10cSrcweir const sal_Char* getPROPERTY_ISCLUSTERED() { return "IsClustered"; } 62cdf0e10cSrcweir const sal_Char* getPROPERTY_ISASCENDING() { return "IsAscending"; } 63cdf0e10cSrcweir const sal_Char* getPROPERTY_SCHEMANAME() { return "SchemaName"; } 64cdf0e10cSrcweir const sal_Char* getPROPERTY_CATALOGNAME() { return "CatalogName"; } 65cdf0e10cSrcweir const sal_Char* getPROPERTY_COMMAND() { return "Command"; } 66cdf0e10cSrcweir const sal_Char* getPROPERTY_CHECKOPTION() { return "CheckOption"; } 67cdf0e10cSrcweir const sal_Char* getPROPERTY_PASSWORD() { return "Password"; } 68cdf0e10cSrcweir const sal_Char* getPROPERTY_RELATEDCOLUMN() { return "RelatedColumn"; } 69cdf0e10cSrcweir 70cdf0e10cSrcweir const sal_Char* getSTAT_INVALID_INDEX() { return "Invalid descriptor index"; } 71cdf0e10cSrcweir 72cdf0e10cSrcweir const sal_Char* getPROPERTY_FUNCTION() { return "Function"; } 73cdf0e10cSrcweir const sal_Char* getPROPERTY_TABLENAME() { return "TableName"; } 74cdf0e10cSrcweir const sal_Char* getPROPERTY_REALNAME() { return "RealName"; } 75cdf0e10cSrcweir const sal_Char* getPROPERTY_DBASEPRECISIONCHANGED() { return "DbasePrecisionChanged"; } 76cdf0e10cSrcweir const sal_Char* getPROPERTY_ISCURRENCY() { return "IsCurrency"; } 77cdf0e10cSrcweir const sal_Char* getPROPERTY_ISBOOKMARKABLE() { return "IsBookmarkable"; } 78cdf0e10cSrcweir 79cdf0e10cSrcweir const sal_Char* getPROPERTY_FORMATKEY() { return "FormatKey"; } 80cdf0e10cSrcweir const sal_Char* getPROPERTY_LOCALE() { return "Locale"; } 81cdf0e10cSrcweir 82cdf0e10cSrcweir const sal_Char* getPROPERTY_AUTOINCREMENTCREATION() { return "AutoIncrementCreation"; } 83cdf0e10cSrcweir const sal_Char* getPROPERTY_PRIVILEGES() { return "Privileges"; } 84cdf0e10cSrcweir //============================================================ 85cdf0e10cSrcweir //= error messages 86cdf0e10cSrcweir //============================================================ 87cdf0e10cSrcweir const sal_Char* getERRORMSG_SEQUENCE() { return "Function sequence error"; } 88cdf0e10cSrcweir const sal_Char* getSQLSTATE_SEQUENCE() { return "HY010"; } 89cdf0e10cSrcweir const sal_Char* getSQLSTATE_GENERAL() { return "HY0000"; } 90cdf0e10cSrcweir const sal_Char* getSTR_DELIMITER() { return "/"; } 91cdf0e10cSrcweir 92cdf0e10cSrcweir 93cdf0e10cSrcweir 94cdf0e10cSrcweir /* {{{ OPropertyMap::~OPropertyMap() -I- */ 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- */ 108cdf0e10cSrcweir 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- */ 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