Mercurial > mercurial > hgweb_searcher2.cgi
comparison include/wx/wxsqlite3def.h @ 0:c174ac668e9f
First commit ! (ver2.8)
author | pyon@macmini |
---|---|
date | Tue, 05 Apr 2011 18:44:57 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:c174ac668e9f |
---|---|
1 /////////////////////////////////////////////////////////////////////////////// | |
2 // Name: wxsqlite3def.h | |
3 // Purpose: wxWidgets wrapper around the SQLite3 embedded database library. | |
4 // Author: Ulrich Telle | |
5 // Modified by: | |
6 // Created: 2005-07-14 | |
7 // Changes: 2005-10-03 - Upgrade to SQLite3 version 3.2.7 | |
8 // 2005-10-09 - Corrected error in wxSQLite3Table::FindColumnIndex | |
9 // 2005-10-30 - Added wxGTK build support | |
10 // 2005-11-01 - Corrected wxSQLite3ResultSet::GetInt64. | |
11 // Added wxSQLite3Table::GetInt64 | |
12 // 2005-11-09 - Optionally load SQLite library dynamically | |
13 // 2006-02-01 - Upgrade to SQLite3 version 3.3.3 | |
14 // 2006-02-12 - Upgrade to SQLite3 version 3.3.4 (wxMSW only) | |
15 // 2006-03-15 - Fixed a bug in wxSQLite3Database::Prepare | |
16 // Added wxSQLite3Database::IsOpen for convenience | |
17 // 2006-06-11 - Upgrade to SQLite3 version 3.3.6 | |
18 // Added support for optional SQLite meta data methods | |
19 // 2007-01-11 - Upgrade to SQLite3 version 3.3.10 | |
20 // Added support for BLOBs as wxMemoryBuffer objects | |
21 // Added support for loadable extensions | |
22 // Optional support for key based database encryption | |
23 // 2007-02-12 - Upgrade to SQLite3 version 3.3.12 | |
24 // 2007-05-01 - Upgrade to SQLite3 version 3.3.17 | |
25 // 2007-10-28 - Upgrade to SQLite3 version 3.5.2 | |
26 // 2007-11-17 - Fixed a bug in wxSQLite3Database::Close | |
27 // Eliminated several compile time warnings | |
28 // 2007-12-19 - Upgrade to SQLite3 version 3.5.4 | |
29 // Fixed a bug in wxSQLite3Database::Begin | |
30 // 2008-01-05 - Added support for shared cache mode | |
31 // Added support for access to original SQL statement | |
32 // for prepared statements (requires SQLite 3.5.3 or above) | |
33 // 2008-04-27 - Upgrade to SQLite3 version 3.5.8 | |
34 // Fixed several minor issues in the build files | |
35 // 2008-06-28 - Upgrade to SQLite3 version 3.5.9 | |
36 // 2008-07-19 - Upgrade to SQLite3 version 3.6.0 | |
37 // 2008-09-04 - Upgrade to SQLite3 version 3.6.2 | |
38 // 2008-11-22 - Upgrade to SQLite3 version 3.6.6 | |
39 // 2008-12-18 - Upgrade to SQLite3 version 3.6.7 | |
40 // Fixed a bug in method wxSQLite3Table::GetDouble | |
41 // 2009-01-14 - Upgrade to SQLite3 version 3.6.10 | |
42 // Added savepoint support | |
43 // Added IsOk methods to some classes | |
44 // 2009-02-21 - Upgrade to SQLite3 version 3.6.11 | |
45 // Added user defined function class for REGEXP operator | |
46 // Added support for SQLite backup/restore API | |
47 // 2009-09-12 - Upgrade to SQLite3 version 3.6.18 | |
48 // Fixed a potential memory leak in wxSQLite3Statement class | |
49 // 2009-11-07 - Upgrade to SQLite3 version 3.6.20 | |
50 // 2010-02-05 - Upgrade to SQLite3 version 3.6.22 | |
51 // 2010-03-11 - Upgrade to SQLite3 version 3.6.23 | |
52 // 2010-07-25 - Upgrade to SQLite3 version 3.7.0 | |
53 // 2010-10-10 - Upgrade to SQLite3 version 3.7.3 | |
54 // 2010-12-11 - Upgrade to SQLite3 version 3.7.4 | |
55 // | |
56 // Copyright: (c) Ulrich Telle | |
57 // Licence: wxWindows licence | |
58 /////////////////////////////////////////////////////////////////////////////// | |
59 | |
60 /// \file wxsqlite3def.h Compile time switches for the wxSQLite3 class | |
61 | |
62 /** \mainpage wxSQLite3 | |
63 | |
64 \section intro What is wxSQLite3? | |
65 | |
66 \b wxSQLite3 is a C++ wrapper around the public domain <a href="http://www.sqlite.org">SQLite 3.x</a> database | |
67 and is specifically designed for use in programs based on the \b wxWidgets library. | |
68 | |
69 Several solutions already exist to access SQLite databases. To name just a few: | |
70 | |
71 - <a href="http://sourceforge.net/projects/wxsqlite">wxSQLite</a> : | |
72 This is a wxWidgets wrapper for version 2.8.x of SQLite. | |
73 SQLite version 3.x has a lot more features - which are not supported by this wrapper. | |
74 | |
75 - <a href="http://www.codeproject.com/database/CppSQLite.asp">CppSQLite</a> : | |
76 Not wxWidgets specific, but with (partial) support for the newer version 3.x of SQLite. | |
77 | |
78 - <a href="http://wxcode.sf.net">DatabaseLayer</a> : | |
79 This is a database abstraction providing a JDBC-like interface to database I/O. | |
80 In the current version SQLite3, PostgreSQL, MySQL, Firebird, and ODBC database backends | |
81 are supported. | |
82 | |
83 The component \b wxSQLite3 was inspired by all three mentioned SQLite wrappers. | |
84 \b wxSQLite3 does not try to hide the underlying database, in contrary almost all special features | |
85 of the SQLite3 version 3.x are supported, like for example the creation of user defined | |
86 scalar or aggregate functions. | |
87 | |
88 Since SQLite stores strings in UTF-8 encoding, the wxSQLite3 methods provide automatic conversion | |
89 between wxStrings and UTF-8 strings. The methods ToUTF8 and FromUTF8 of the wxString class (available | |
90 since wxWidgets 2.8.4) are used for the conversion. Special care has to be taken if external administration | |
91 tools are used to modify the database contents, since not all of these tools operate in Unicode or UTF-8 mode. | |
92 | |
93 \section version Version history | |
94 | |
95 <dl> | |
96 | |
97 <dt><b>2.0.2</b> - <i>December 2010</i></dt> | |
98 <dd> | |
99 Upgrade to SQLite version 3.7.4<br> | |
100 Added support for rebinding a BLOB object to a new row<br> | |
101 Added support for determining if an SQL statement writes the database<br> | |
102 | |
103 </dd> | |
104 <dt><b>2.0.1</b> - <i>October 2010</i></dt> | |
105 <dd> | |
106 Upgrade to SQLite version 3.7.3<br> | |
107 Added parameter transferStatementOwnership to method wxSQLite3Statement::ExecuteQuery | |
108 to allow using the returned result set beyond the life time of the wxSQLite3Statement instance<br> | |
109 Eliminated the use of sqlite3_mprintf which caused linker problems when loading SQLite dynamically<br> | |
110 | |
111 </dd> | |
112 <dt><b>2.0.0</b> - <i>July 2010</i></dt> | |
113 <dd> | |
114 Upgrade to SQLite version 3.7.0<br> | |
115 Fixed a bug in class wxSQLite3ResultSet<br> | |
116 Added support for SQLite's write-ahead log journal mode<br> | |
117 Added support for named collections (see class wxSQLite3NamedCollection)<br> | |
118 Changed UTF-8 string handling to use methods To/FromUTF8 of the wxString class (requires wxWidgets 2.8.4 or higher)<br> | |
119 Compatible with wxWidgets 2.9.1<br> | |
120 | |
121 </dd> | |
122 <dt><b>1.9.9</b> - <i>March 2010</i></dt> | |
123 <dd> | |
124 Upgrade to SQLite version 3.6.23<br> | |
125 Fixed a bug when compiling for dynamic loading of SQLite<br> | |
126 Added static methods for accessing the run-time library compilation options diagnostics<br> | |
127 Added mathod FormatV to class wxSQLite3StatementBuffer<br> | |
128 | |
129 </dd> | |
130 <dt><b>1.9.8</b> - <i>February 2010</i></dt> | |
131 <dd> | |
132 Upgrade to SQLite version 3.6.22<br> | |
133 Fixed a bug when compiling without precompiled header support | |
134 (by including wx/arrstr.h)<br> | |
135 | |
136 </dd> | |
137 <dt><b>1.9.7</b> - <i>November 2009</i></dt> | |
138 <dd> | |
139 Upgrade to SQLite version 3.6.20<br> | |
140 Added methods to query, enable or disable foreign key support<br> | |
141 | |
142 </dd> | |
143 <dt><b>1.9.6</b> - <i>September 2009</i></dt> | |
144 <dd> | |
145 Upgrade to SQLite version 3.6.18<br> | |
146 Added method to get the SQLite library source id<br> | |
147 Added flags parameter to wxSQLite3Database::Open to allow additional control over the database | |
148 connection (see http://www.sqlite.org/c3ref/open.html for further information)<br> | |
149 Fixed a potential memory leak in wxSQLite3Statement class<br> | |
150 Converted encryption extension from C++ to pure C to make it | |
151 compatible with the SQLite amalgamation.<br> | |
152 | |
153 </dd> | |
154 <dt><b>1.9.5</b> - <i>February 2009</i></dt> | |
155 <dd> | |
156 Upgrade to SQLite version 3.6.11<br> | |
157 Added user defined function class for REGEXP operator.<br> | |
158 Added support for SQLite backup/restore API, introduced with SQLite 3.6.11<br> | |
159 | |
160 </dd> | |
161 <dt><b>1.9.4</b> - <i>January 2009</i></dt> | |
162 <dd> | |
163 Upgrade to SQLite version 3.6.10<br> | |
164 Added support for savepoints, introduced with SQLite 3.6.8<br> | |
165 Added method IsOk to the classes wxSQLite3Statement, wxSQLite3Table and wxSQLite3ResultSet, | |
166 thus instances of these classes can be checked whether the associated SQLite database or | |
167 statement are valid without throwing an exception.<br> | |
168 | |
169 </dd> | |
170 <dt><b>1.9.3</b> - <i>December 2008</i></dt> | |
171 <dd> | |
172 Upgrade to SQLite version 3.6.7<br> | |
173 Fixed a bug in method wxSQLite3Table::GetDouble | |
174 (conversion from string to double failed in non-US locales)<br> | |
175 Build system upgraded using Bakefile 0.2.5<br> | |
176 | |
177 </dd> | |
178 <dt><b>1.9.2</b> - <i>November 2008</i></dt> | |
179 <dd> | |
180 Upgrade to SQLite version 3.6.6<br> | |
181 Added RAII transaction class (see docs for details)<br> | |
182 | |
183 </dd> | |
184 <dt><b>1.9.1</b> - <i>September 2008</i></dt> | |
185 <dd> | |
186 Upgrade to SQLite version 3.6.2<br> | |
187 Introduced own step counting for aggregate user functions | |
188 since the sqlite3_aggregate_count function is now deprecated<br> | |
189 Enhanced wxSQLite3Database::TableExists method to query an attached database | |
190 for existence of a table or to query the main database and all attached databases<br> | |
191 | |
192 </dd> | |
193 <dt><b>1.9.0</b> - <i>July 2008</i></dt> | |
194 <dd> | |
195 Upgrade to SQLite version 3.6.0<br> | |
196 The optional key based encryption support has been adapted to | |
197 support SQLite version 3.6.0.<br> | |
198 Added static methods to initialize and shutdown the SQLite library.<br> | |
199 Changed build system to support static library build against shared | |
200 wxWidgets build on Linux.<br> | |
201 Changed behaviour of wxSQLite3Database::Close method to finalize | |
202 all unfinalized prepared statements. | |
203 | |
204 </dd> | |
205 <dt><b>1.8.5</b> - <i>June 2008</i></dt> | |
206 <dd> | |
207 Upgrade to SQLite version 3.5.9<br> | |
208 Integration of the optional key based encryption support into SQLite | |
209 has been made easier. Changes to original SQLite source files | |
210 are no longer necessary. | |
211 | |
212 </dd> | |
213 <dt><b>1.8.4</b> - <i>April 2008</i></dt> | |
214 <dd> | |
215 Upgrade to SQLite version 3.5.8<br> | |
216 Added support for accessing database limits<br> | |
217 Changed method TableExists to check a table name case insensitive<br> | |
218 Fixed several minor issues in the build files. | |
219 | |
220 </dd> | |
221 <dt><b>1.8.3</b> - <i>January 2008</i></dt> | |
222 <dd> | |
223 Added support for shared cache mode<br> | |
224 Added support for access to original SQL statement | |
225 for prepared statements (requires SQLite 3.5.3 or above) | |
226 | |
227 </dd> | |
228 <dt><b>1.8.2</b> - <i>December 2007</i></dt> | |
229 <dd> | |
230 Upgrade to SQLite version 3.5.4<br> | |
231 Fixed a bug in wxSQLite3Database::Begin (wrong transaction type) | |
232 | |
233 </dd> | |
234 <dt><b>1.8.1</b> - <i>November 2007</i></dt> | |
235 <dd> | |
236 Fixed a bug in in wxSQLite3Database::Close (resetting flag m_isEncrypted)<br> | |
237 Eliminated several compile time warnings (regarding unused parameters)<br> | |
238 Fixed a compile time bug in wxSQLite3Database::GetBlob (missing explicit type cast) | |
239 | |
240 </dd> | |
241 <dt><b>1.8.0</b> - <i>November 2007</i></dt> | |
242 <dd> | |
243 Upgrade to SQLite version 3.5.2<br> | |
244 Support for SQLite incremental BLOBs<br> | |
245 Changed source code in the SQLite3 encryption extension to eliminate several warnings<br> | |
246 Changed default wxWidgets version to 2.8.x<br> | |
247 Adjusted sources for SQLite encryption support are included for all SQLite version from 3.3.1 up to 3.5.2<br> | |
248 SQLite link libraries for MinGW on Windows are included<br> | |
249 Added <code>WXMAKINGLIB_WXSQLITE3</code> compile time option | |
250 to support building wxSQLite3 as a static library while | |
251 using the shared libraries of wxWidgets. | |
252 | |
253 </dd> | |
254 <dt><b>1.7.3</b> - <i>May 2007</i></dt> | |
255 <dd> | |
256 Upgrade to SQLite version 3.3.17<br> | |
257 | |
258 Fixed a bug in the SQLite3 encryption extension | |
259 (MD5 algorithm was not aware of endianess on | |
260 big-endian platforms, resulting in non-portable | |
261 database files) | |
262 | |
263 </dd> | |
264 <dt><b>1.7.2</b> - <i>February 2007</i></dt> | |
265 <dd> | |
266 Upgrade to SQLite version 3.3.12<br> | |
267 Support for loadable extensions is now optional | |
268 Check for optional wxSQLite3 features at runtime | |
269 wxSQLite3 API independent of optional features | |
270 | |
271 </dd> | |
272 <dt><b>1.7.1</b> - <i>January 2007</i></dt> | |
273 <dd> | |
274 Fixed a bug in the key based database encryption feature | |
275 (The call to <b>sqlite3_rekey</b> in wxSQLite3Database::ReKey | |
276 could cause a program crash, when used to encrypt a previously | |
277 unencrypted database.)<br> | |
278 | |
279 </dd> | |
280 <dt><b>1.7.0</b> - <i>January 2007</i></dt> | |
281 <dd> | |
282 Upgrade to SQLite version 3.3.10 (<b>Attention</b>: at least SQLite version 3.3.9 is required)<br> | |
283 Added support for BLOBs as wxMemoryBuffer objects<br> | |
284 Added support for loadable extensions<br> | |
285 Optional support for key based database encryption | |
286 | |
287 </dd> | |
288 <dt><b>1.6.0</b> - <i>July 2006</i></dt> | |
289 <dd> | |
290 Added support for user defined collation sequences | |
291 | |
292 </dd> | |
293 <dt><b>1.5.3</b> - <i>June 2006</i></dt> | |
294 <dd> | |
295 Upgrade to SQLite version 3.3.6<br> | |
296 Added support for optional SQLite meta data methods | |
297 | |
298 </dd> | |
299 <dt><b>1.5.2</b> - <i>March 2006</i></dt> | |
300 <dd> | |
301 Fixed a bug in wxSQLite3Database::Prepare<br> | |
302 Added wxSQLite3Database::IsOpen for convenience | |
303 | |
304 </dd> | |
305 <dt><b>1.5.1</b> - <i>February 2006</i></dt> | |
306 <dd> | |
307 Upgrade to SQLite version 3.3.4 (wxMSW only) | |
308 | |
309 </dd> | |
310 <dt><b>1.5</b> - <i>February 2006</i></dt> | |
311 <dd> | |
312 Upgrade to SQLite version 3.3.3<br> | |
313 Added support for commit, rollback and update callbacks | |
314 | |
315 </dd> | |
316 <dt><b>1.4.2</b> - <i>November 2005</i></dt> | |
317 <dd> | |
318 Optimized code for wxString arguments | |
319 | |
320 </dd> | |
321 <dt><b>1.4.1</b> - <i>November 2005</i></dt> | |
322 <dd> | |
323 Fixed a bug in wxSQLite3Database::TableExists,<br> | |
324 Changed the handling of Unicode string conversion,<br> | |
325 Added support for different transaction types | |
326 | |
327 </dd> | |
328 <dt><b>1.4</b> - <i>November 2005</i></dt> | |
329 <dd> | |
330 Optionally load the SQLite library dynamically at run time. | |
331 | |
332 </dd> | |
333 <dt><b>1.3.1</b> - <i>November 2005</i></dt> | |
334 <dd> | |
335 Corrected wxSQLite3ResultSet::GetInt64.<br> | |
336 Added wxSQLite3Table::GetInt64 | |
337 | |
338 </dd> | |
339 <dt><b>1.3</b> - <i>October 2005</i></dt> | |
340 <dd> | |
341 Added wxGTK build support<br> | |
342 | |
343 </dd> | |
344 <dt><b>1.2</b> - <i>October 2005</i></dt> | |
345 <dd> | |
346 Corrected error in wxSQLite3Table::FindColumnIndex<br> | |
347 | |
348 </dd> | |
349 <dt><b>1.1</b> - <i>October 2005</i></dt> | |
350 <dd> | |
351 Upgrade to SQLite version 3.2.7 <br> | |
352 | |
353 </dd> | |
354 | |
355 <dt><b>1.0</b> - <i>July 2005</i></dt> | |
356 <dd> | |
357 First public release | |
358 </dd> | |
359 </dl> | |
360 | |
361 \author Ulrich Telle (<a href="mailto:ulrich.telle@gmx.de">ulrich DOT telle AT gmx DOT de</a>) | |
362 | |
363 \section ackn Acknowledgements | |
364 | |
365 The following people have contributed to wxSQLite3: | |
366 | |
367 <ul> | |
368 <li>Francesco Montorsi (enhancement of the build system)</li> | |
369 <li>Neville Dastur (enhancement of the method TableExists)</li> | |
370 <li>Tobias Langner (RAII class for managing transactions)</li> | |
371 </ul> | |
372 | |
373 */ | |
374 | |
375 #ifndef _WX_SQLITE3_DEF_H_ | |
376 #define _WX_SQLITE3_DEF_H_ | |
377 | |
378 #if defined(WXMAKINGLIB_WXSQLITE3) | |
379 #define WXDLLIMPEXP_SQLITE3 | |
380 #elif defined(WXMAKINGDLL_WXSQLITE3) | |
381 #define WXDLLIMPEXP_SQLITE3 WXEXPORT | |
382 #elif defined(WXUSINGDLL_WXSQLITE3) | |
383 #define WXDLLIMPEXP_SQLITE3 WXIMPORT | |
384 #else // not making nor using DLL | |
385 #define WXDLLIMPEXP_SQLITE3 | |
386 #endif | |
387 | |
388 /* | |
389 GCC warns about using __declspec on forward declarations | |
390 while MSVC complains about forward declarations without | |
391 __declspec for the classes later declared with it. To hide this | |
392 difference a separate macro for forward declarations is defined: | |
393 */ | |
394 #if defined(__WINDOWS__) && defined(__GNUC__) | |
395 #define WXDLLIMPEXP_FWD_SQLITE3 | |
396 #else | |
397 #define WXDLLIMPEXP_FWD_SQLITE3 WXDLLIMPEXP_SQLITE3 | |
398 #endif | |
399 | |
400 #endif // _WX_SQLITE3_DEF_H_ |