1 /*************************************************************************
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
3 *
4 * Copyright 2008 by Sun Microsystems, Inc.
5 *
6 * OpenOffice.org - a multi-platform office productivity suite
7 *
8 * $RCSfile: mysqlc_propertyids.cxx,v $
9 *
10 * $Revision: 1.1.2.2 $
11 *
12 * This file is part of OpenOffice.org.
13 *
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
17 *
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
23 *
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org.  If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
28 ************************************************************************/
29 
30 #ifndef _OSL_DIAGNOSE_H_
31 #include <osl/diagnose.h>
32 #endif
33 #include "mysqlc_propertyids.hxx"
34 
35 using ::rtl::OUString;
36 
37 namespace connectivity
38 {
39 namespace mysqlc
40 {
41 const sal_Char* getPROPERTY_QUERYTIMEOUT()			{ return "QueryTimeOut"; }
42 const sal_Char* getPROPERTY_MAXFIELDSIZE()			{ return "MaxFieldSize"; }
43 const sal_Char* getPROPERTY_MAXROWS()				{ return "MaxRows"; }
44 const sal_Char* getPROPERTY_CURSORNAME()			{ return "CursorName"; }
45 const sal_Char* getPROPERTY_RESULTSETCONCURRENCY()	{ return "ResultSetConcurrency"; }
46 const sal_Char* getPROPERTY_RESULTSETTYPE()			{ return "ResultSetType"; }
47 const sal_Char* getPROPERTY_FETCHDIRECTION()		{ return "FetchDirection"; }
48 const sal_Char* getPROPERTY_FETCHSIZE()				{ return "FetchSize"; }
49 const sal_Char* getPROPERTY_ESCAPEPROCESSING()		{ return "EscapeProcessing"; }
50 const sal_Char* getPROPERTY_USEBOOKMARKS()			{ return "UseBookmarks"; }
51 
52 const sal_Char* getPROPERTY_NAME()					{ return "Name"; }
53 const sal_Char* getPROPERTY_TYPE()					{ return "Type"; }
54 const sal_Char* getPROPERTY_TYPENAME()				{ return "TypeName"; }
55 const sal_Char* getPROPERTY_PRECISION()				{ return "Precision"; }
56 const sal_Char* getPROPERTY_SCALE()					{ return "Scale"; }
57 const sal_Char* getPROPERTY_ISNULLABLE()			{ return "IsNullable"; }
58 const sal_Char* getPROPERTY_ISAUTOINCREMENT()		{ return "IsAutoIncrement"; }
59 const sal_Char* getPROPERTY_ISROWVERSION()			{ return "IsRowVersion"; }
60 const sal_Char* getPROPERTY_DESCRIPTION()			{ return "Description"; }
61 const sal_Char* getPROPERTY_DEFAULTVALUE()			{ return "DefaultValue"; }
62 
63 const sal_Char* getPROPERTY_REFERENCEDTABLE()		{ return "ReferencedTable"; }
64 const sal_Char* getPROPERTY_UPDATERULE()			{ return "UpdateRule"; }
65 const sal_Char* getPROPERTY_DELETERULE()			{ return "DeleteRule"; }
66 const sal_Char* getPROPERTY_CATALOG()				{ return "Catalog"; }
67 const sal_Char* getPROPERTY_ISUNIQUE()				{ return "IsUnique"; }
68 const sal_Char* getPROPERTY_ISPRIMARYKEYINDEX()		{ return "IsPrimaryKeyIndex"; }
69 const sal_Char* getPROPERTY_ISCLUSTERED()			{ return "IsClustered"; }
70 const sal_Char* getPROPERTY_ISASCENDING()			{ return "IsAscending"; }
71 const sal_Char* getPROPERTY_SCHEMANAME()			{ return "SchemaName"; }
72 const sal_Char* getPROPERTY_CATALOGNAME()			{ return "CatalogName"; }
73 const sal_Char* getPROPERTY_COMMAND()				{ return "Command"; }
74 const sal_Char* getPROPERTY_CHECKOPTION()			{ return "CheckOption"; }
75 const sal_Char* getPROPERTY_PASSWORD()				{ return "Password"; }
76 const sal_Char* getPROPERTY_RELATEDCOLUMN()			{ return "RelatedColumn"; }
77 
78 const sal_Char* getSTAT_INVALID_INDEX()				{ return "Invalid descriptor index"; }
79 
80 const sal_Char* getPROPERTY_FUNCTION()				{ return "Function"; }
81 const sal_Char* getPROPERTY_TABLENAME()				{ return "TableName"; }
82 const sal_Char* getPROPERTY_REALNAME()				{ return "RealName"; }
83 const sal_Char* getPROPERTY_DBASEPRECISIONCHANGED()	{ return "DbasePrecisionChanged"; }
84 const sal_Char* getPROPERTY_ISCURRENCY()			{ return "IsCurrency"; }
85 const sal_Char* getPROPERTY_ISBOOKMARKABLE()		{ return "IsBookmarkable"; }
86 
87 const sal_Char* getPROPERTY_FORMATKEY()				{ return "FormatKey"; }
88 const sal_Char* getPROPERTY_LOCALE()				{ return "Locale"; }
89 
90 const sal_Char* getPROPERTY_AUTOINCREMENTCREATION()	{ return "AutoIncrementCreation"; }
91 const sal_Char* getPROPERTY_PRIVILEGES()			{ return "Privileges"; }
92 	//============================================================
93 	//= error messages
94 	//============================================================
95 const sal_Char* getERRORMSG_SEQUENCE()				{ return "Function sequence error"; }
96 const sal_Char* getSQLSTATE_SEQUENCE()				{ return "HY010"; }
97 const sal_Char* getSQLSTATE_GENERAL()				{ return "HY0000"; }
98 const sal_Char* getSTR_DELIMITER()					{ return "/"; }
99 
100 
101 
102 /* {{{ OPropertyMap::~OPropertyMap() -I- */
103 OPropertyMap::~OPropertyMap()
104 {
105 	::std::map<sal_Int32 , rtl_uString*>::iterator aIter = m_aPropertyMap.begin();
106 	for(; aIter != m_aPropertyMap.end(); ++aIter) {
107 		if (aIter->second) {
108 			rtl_uString_release(aIter->second);
109 		}
110 	}
111 }
112 /* }}} */
113 
114 
115 /* {{{ OPropertyMap::getNameByIndex() -I- */
116 OUString OPropertyMap::getNameByIndex(sal_Int32 idx) const
117 {
118 	OUString sRet;
119 	::std::map<sal_Int32 , rtl_uString*>::const_iterator aIter = m_aPropertyMap.find(idx);
120 	if (aIter == m_aPropertyMap.end()) {
121 		sRet = const_cast<OPropertyMap*>(this)->fillValue(idx);
122 	} else {
123 		sRet = aIter->second;
124 	}
125 	return sRet;
126 }
127 /* }}} */
128 
129 typedef const sal_Char * (*property_callback)();
130 
131 static const property_callback property_callbacks[PROPERTY_ID_LAST] =
132 {
133 	NULL, /* PROPERTY_ID_FIRST */
134 	getPROPERTY_QUERYTIMEOUT,
135 	getPROPERTY_MAXFIELDSIZE,
136 	getPROPERTY_MAXROWS,
137 	getPROPERTY_CURSORNAME,
138 	getPROPERTY_RESULTSETCONCURRENCY,
139 	getPROPERTY_RESULTSETTYPE,
140 	getPROPERTY_FETCHDIRECTION,
141 	getPROPERTY_FETCHSIZE,
142 	getPROPERTY_ESCAPEPROCESSING,
143 	getPROPERTY_USEBOOKMARKS,
144 	// Column
145 	getPROPERTY_NAME,
146 	getPROPERTY_TYPE,
147 	getPROPERTY_TYPENAME,
148 	getPROPERTY_PRECISION,
149 	getPROPERTY_SCALE,
150 	getPROPERTY_ISNULLABLE,
151 	getPROPERTY_ISAUTOINCREMENT,
152 	getPROPERTY_ISROWVERSION,
153 	getPROPERTY_DESCRIPTION,
154 	getPROPERTY_DEFAULTVALUE,
155 
156 	getPROPERTY_REFERENCEDTABLE,
157 	getPROPERTY_UPDATERULE,
158 	getPROPERTY_DELETERULE,
159 	getPROPERTY_CATALOG,
160 	getPROPERTY_ISUNIQUE,
161 	getPROPERTY_ISPRIMARYKEYINDEX,
162 	getPROPERTY_ISCLUSTERED,
163 	getPROPERTY_ISASCENDING,
164 	getPROPERTY_SCHEMANAME,
165 	getPROPERTY_CATALOGNAME,
166 
167 	getPROPERTY_COMMAND,
168 	getPROPERTY_CHECKOPTION,
169 	getPROPERTY_PASSWORD,
170 	getPROPERTY_RELATEDCOLUMN,
171 
172 	getPROPERTY_FUNCTION,
173 	getPROPERTY_TABLENAME,
174 	getPROPERTY_REALNAME,
175 	getPROPERTY_DBASEPRECISIONCHANGED,
176 	getPROPERTY_ISCURRENCY,
177 	getPROPERTY_ISBOOKMARKABLE,
178 	getSTAT_INVALID_INDEX,
179 	getERRORMSG_SEQUENCE,
180 	getSQLSTATE_SEQUENCE,
181 	getSQLSTATE_GENERAL,
182 	getSTR_DELIMITER,
183 	getPROPERTY_FORMATKEY,
184 	getPROPERTY_LOCALE,
185 	getPROPERTY_AUTOINCREMENTCREATION,
186 	getPROPERTY_PRIVILEGES,
187 };
188 
189 
190 /* {{{ OPropertyMap::fillValue() -I- */
191 OUString OPropertyMap::fillValue(sal_Int32 idx)
192 {
193 	rtl_uString* pStr = NULL;
194 	rtl_uString_newFromAscii(&pStr, property_callbacks[idx]());
195 	m_aPropertyMap[idx] = pStr;
196 	return pStr;
197 }
198 /* }}} */
199 
200 } /* mysqlc */
201 } /* connectivity */
202 
203 /*
204  * Local variables:
205  * tab-width: 4
206  * c-basic-offset: 4
207  * End:
208  * vim600: noet sw=4 ts=4 fdm=marker
209  * vim<600: noet sw=4 ts=4
210  */
211