author | mickeyl <mickeyl> | 2003-12-20 17:24:21 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2003-12-20 17:24:21 (UTC) |
commit | dd5c40a4fa4d73ca1f5234502c7ba67675c5b7f9 (patch) (unidiff) | |
tree | 9711dbc6de8605887fd1a0062c5fbf17c6207398 | |
parent | 33dfe08454a70d3f9dd6dd154385c40adf6df918 (diff) | |
download | opie-dd5c40a4fa4d73ca1f5234502c7ba67675c5b7f9.zip opie-dd5c40a4fa4d73ca1f5234502c7ba67675c5b7f9.tar.gz opie-dd5c40a4fa4d73ca1f5234502c7ba67675c5b7f9.tar.bz2 |
use odebug classes
-rw-r--r-- | libopie2/opiedb/opiedb.pro | 51 | ||||
-rw-r--r-- | libopie2/opiedb/osqlitedriver.cpp | 69 |
2 files changed, 84 insertions, 36 deletions
diff --git a/libopie2/opiedb/opiedb.pro b/libopie2/opiedb/opiedb.pro index d869e6f..249d8b5 100644 --- a/libopie2/opiedb/opiedb.pro +++ b/libopie2/opiedb/opiedb.pro | |||
@@ -1,41 +1,36 @@ | |||
1 | TEMPLATE = lib | 1 | TEMPLATE = lib |
2 | #CONFIG += qt warn_on debug | 2 | CONFIG += qt warn_on debug |
3 | CONFIG += qt warn_on release | ||
4 | DESTDIR = $(OPIEDIR)/lib | 3 | DESTDIR = $(OPIEDIR)/lib |
5 | HEADERS = osqlbackend.h \ | 4 | HEADERS = osqlbackend.h \ |
6 | osqldriver.h \ | 5 | osqldriver.h \ |
7 | osqlerror.h \ | 6 | osqlerror.h \ |
8 | osqlmanager.h \ | 7 | osqlmanager.h \ |
9 | osqlquery.h \ | 8 | osqlquery.h \ |
10 | osqlresult.h \ | 9 | osqlresult.h \ |
11 | osqltable.h \ | 10 | osqltable.h \ |
12 | osqlbackendmanager.h \ | 11 | osqlbackendmanager.h \ |
13 | osqlitedriver.h | 12 | osqlitedriver.h |
14 | SOURCES = osqlbackend.cpp \ | 13 | SOURCES = osqlbackend.cpp \ |
15 | osqldriver.cpp \ | 14 | osqldriver.cpp \ |
16 | osqlerror.cpp \ | 15 | osqlerror.cpp \ |
17 | osqlmanager.cpp \ | 16 | osqlmanager.cpp \ |
18 | osqlquery.cpp \ | 17 | osqlquery.cpp \ |
19 | osqlresult.cpp \ | 18 | osqlresult.cpp \ |
20 | osqltable.cpp \ | 19 | osqltable.cpp \ |
21 | osqlbackendmanager.cpp \ | 20 | osqlbackendmanager.cpp \ |
22 | osqlitedriver.cpp | 21 | osqlitedriver.cpp |
23 | INTERFACES = | 22 | INTERFACES = |
24 | TARGET = opiedb2 | 23 | TARGET = opiedb2 |
25 | VERSION = 1.8.2 | 24 | VERSION = 1.8.2 |
26 | INCLUDEPATH += $(OPIEDIR)/include | 25 | INCLUDEPATH = $(OPIEDIR)/include |
27 | DEPENDPATH += $(OPIEDIR)/include | 26 | DEPENDPATH = $(OPIEDIR)/include |
28 | 27 | LIBS += -lsqlite -lqpe | |
29 | MOC_DIR = moc | ||
30 | OBJECTS_DIR = obj | ||
31 | |||
32 | LIBS += -lsqlite -lqpe | ||
33 | 28 | ||
34 | !contains( platform, x11 ) { | 29 | !contains( platform, x11 ) { |
35 | include ( $(OPIEDIR)/include.pro ) | 30 | include ( $(OPIEDIR)/include.pro ) |
36 | } | 31 | } |
37 | 32 | ||
38 | contains( platform, x11 ) { | 33 | contains( platform, x11 ) { |
39 | LIBS += -L$(OPIEDIR)/lib -Wl,-rpath,$(OPIEDIR)/lib | 34 | LIBS += -L$(OPIEDIR)/lib -Wl,-rpath,$(OPIEDIR)/lib |
40 | } | 35 | } |
41 | 36 | ||
diff --git a/libopie2/opiedb/osqlitedriver.cpp b/libopie2/opiedb/osqlitedriver.cpp index 99fd218..b857534 100644 --- a/libopie2/opiedb/osqlitedriver.cpp +++ b/libopie2/opiedb/osqlitedriver.cpp | |||
@@ -1,132 +1,185 @@ | |||
1 | #include <stdlib.h> | 1 | /* |
2 | This file is part of the Opie Project | ||
3 | |||
4 | =. | ||
5 | .=l. | ||
6 | .>+-= | ||
7 | _;:, .> :=|. This program is free software; you can | ||
8 | .> <`_, > . <= redistribute it and/or modify it under | ||
9 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | ||
10 | .="- .-=="i, .._ License as published by the Free Software | ||
11 | - . .-<_> .<> Foundation; either version 2 of the License, | ||
12 | ._= =} : or (at your option) any later version. | ||
13 | .%`+i> _;_. | ||
14 | .i_,=:_. -<s. This program is distributed in the hope that | ||
15 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | ||
16 | : .. .:, . . . without even the implied warranty of | ||
17 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | ||
18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | ||
19 | ..}^=.= = ; Library General Public License for more | ||
20 | ++= -. .` .: details. | ||
21 | : = ...= . :.=- | ||
22 | -. .:....=;==+<; You should have received a copy of the GNU | ||
23 | -_. . . )=. = Library General Public License along with | ||
24 | -- :-=` this library; see the file COPYING.LIB. | ||
25 | If not, write to the Free Software Foundation, | ||
26 | Inc., 59 Temple Place - Suite 330, | ||
27 | Boston, MA 02111-1307, USA. | ||
28 | |||
29 | */ | ||
2 | 30 | ||
3 | #include "osqlresult.h" | 31 | #include "osqlresult.h" |
4 | #include "osqlquery.h" | 32 | #include "osqlquery.h" |
5 | #include "osqlitedriver.h" | 33 | #include "osqlitedriver.h" |
6 | 34 | ||
7 | // fromLocal8Bit() does not work as expected. Thus it | 35 | #include <opie2/odebug.h> |
36 | |||
37 | #include <stdlib.h> | ||
38 | |||
39 | // fromLocal8Bit() does not work as expected. Thus it | ||
8 | // is replaced by fromLatin1() (eilers) | 40 | // is replaced by fromLatin1() (eilers) |
9 | #define __BUGGY_LOCAL8BIT_ | 41 | #define __BUGGY_LOCAL8BIT_ |
10 | 42 | ||
11 | 43 | ||
12 | namespace { | 44 | namespace { |
13 | struct Query { | 45 | struct Query { |
14 | OSQLError::ValueList errors; | 46 | OSQLError::ValueList errors; |
15 | OSQLResultItem::ValueList items; | 47 | OSQLResultItem::ValueList items; |
16 | OSQLiteDriver *driver; | 48 | OSQLiteDriver *driver; |
17 | }; | 49 | }; |
18 | } | 50 | } |
19 | 51 | ||
52 | |||
20 | OSQLiteDriver::OSQLiteDriver( QLibrary *lib ) | 53 | OSQLiteDriver::OSQLiteDriver( QLibrary *lib ) |
21 | : OSQLDriver( lib ) | 54 | : OSQLDriver( lib ) |
22 | { | 55 | { |
23 | m_sqlite = 0l; | 56 | m_sqlite = 0l; |
24 | } | 57 | } |
58 | |||
59 | |||
25 | OSQLiteDriver::~OSQLiteDriver() { | 60 | OSQLiteDriver::~OSQLiteDriver() { |
26 | close(); | 61 | close(); |
27 | } | 62 | } |
28 | 63 | ||
64 | |||
29 | QString OSQLiteDriver::id()const { | 65 | QString OSQLiteDriver::id()const { |
30 | return QString::fromLatin1("SQLite"); | 66 | return QString::fromLatin1("SQLite"); |
31 | } | 67 | } |
32 | 68 | ||
33 | void OSQLiteDriver::setUserName( const QString& ) {} | 69 | void OSQLiteDriver::setUserName( const QString& ) {} |
70 | |||
71 | |||
34 | void OSQLiteDriver::setPassword( const QString& ) {} | 72 | void OSQLiteDriver::setPassword( const QString& ) {} |
35 | 73 | ||
74 | |||
36 | void OSQLiteDriver::setUrl( const QString& url ) { | 75 | void OSQLiteDriver::setUrl( const QString& url ) { |
37 | m_url = url; | 76 | m_url = url; |
38 | } | 77 | } |
78 | |||
79 | |||
39 | void OSQLiteDriver::setOptions( const QStringList& ) { | 80 | void OSQLiteDriver::setOptions( const QStringList& ) { |
40 | } | 81 | } |
82 | |||
83 | |||
41 | /* | 84 | /* |
42 | * try to open a db specified via setUrl | 85 | * try to open a db specified via setUrl |
43 | * and options | 86 | * and options |
44 | */ | 87 | */ |
45 | bool OSQLiteDriver::open() { | 88 | bool OSQLiteDriver::open() { |
46 | char *error; | 89 | char *error; |
47 | qWarning("about to open"); | 90 | odebug << "OSQLiteDriver::open: about to open" << oendl; |
48 | m_sqlite = sqlite_open(m_url.local8Bit(), | 91 | m_sqlite = sqlite_open(m_url.local8Bit(), |
49 | 0, | 92 | 0, |
50 | &error ); | 93 | &error ); |
51 | 94 | ||
52 | /* failed to open */ | 95 | /* failed to open */ |
53 | if (m_sqlite == 0l ) { | 96 | if (m_sqlite == 0l ) { |
54 | // FIXME set the last error | 97 | // FIXME set the last error |
55 | qWarning("error:%s", error ); | 98 | owarn << "OSQLiteDriver::open: " << error << oendl; |
56 | free( error ); | 99 | free( error ); |
57 | return false; | 100 | return false; |
58 | } | 101 | } |
59 | return true; | 102 | return true; |
60 | } | 103 | } |
104 | |||
105 | |||
61 | /* close the db | 106 | /* close the db |
62 | * sqlite closes them without | 107 | * sqlite closes them without |
63 | * telling failure or success | 108 | * telling failure or success |
64 | */ | 109 | */ |
65 | bool OSQLiteDriver::close() { | 110 | bool OSQLiteDriver::close() { |
66 | if (m_sqlite ) | 111 | if (m_sqlite ) |
67 | sqlite_close( m_sqlite ), m_sqlite=0l; | 112 | sqlite_close( m_sqlite ), m_sqlite=0l; |
68 | 113 | ||
69 | return true; | 114 | return true; |
70 | } | 115 | } |
116 | |||
117 | |||
71 | /* Query */ | 118 | /* Query */ |
72 | OSQLResult OSQLiteDriver::query( OSQLQuery* qu) { | 119 | OSQLResult OSQLiteDriver::query( OSQLQuery* qu) { |
73 | if ( !m_sqlite ) { | 120 | if ( !m_sqlite ) { |
74 | // FIXME set error code | 121 | // FIXME set error code |
75 | OSQLResult result( OSQLResult::Failure ); | 122 | OSQLResult result( OSQLResult::Failure ); |
76 | return result; | 123 | return result; |
77 | } | 124 | } |
78 | Query query; | 125 | Query query; |
79 | query.driver = this; | 126 | query.driver = this; |
80 | char *err; | 127 | char *err; |
81 | /* SQLITE_OK 0 if return code > 0 == failure */ | 128 | /* SQLITE_OK 0 if return code > 0 == failure */ |
82 | if ( sqlite_exec(m_sqlite, qu->query(),&call_back, &query, &err) > 0 ) { | 129 | if ( sqlite_exec(m_sqlite, qu->query(),&call_back, &query, &err) > 0 ) { |
83 | qWarning("Error while executing"); | 130 | owarn << "OSQLiteDriver::query: Error while executing" << oendl; |
84 | free(err ); | 131 | free(err ); |
85 | // FixMe Errors | 132 | // FixMe Errors |
86 | } | 133 | } |
87 | // qWarning("Item count is %d", query.items.count() ); | 134 | |
88 | OSQLResult result(OSQLResult::Success, | 135 | OSQLResult result(OSQLResult::Success, |
89 | query.items, | 136 | query.items, |
90 | query.errors ); | 137 | query.errors ); |
91 | return result; | 138 | return result; |
92 | } | 139 | } |
140 | |||
141 | |||
93 | OSQLTable::ValueList OSQLiteDriver::tables() const { | 142 | OSQLTable::ValueList OSQLiteDriver::tables() const { |
94 | 143 | ||
95 | } | 144 | } |
145 | |||
146 | |||
96 | OSQLError OSQLiteDriver::lastError() { | 147 | OSQLError OSQLiteDriver::lastError() { |
97 | OSQLError error; | 148 | OSQLError error; |
98 | return error; | 149 | return error; |
99 | }; | 150 | }; |
151 | |||
152 | |||
100 | /* handle a callback add the row to the global | 153 | /* handle a callback add the row to the global |
101 | * OSQLResultItem | 154 | * OSQLResultItem |
102 | */ | 155 | */ |
103 | int OSQLiteDriver::handleCallBack( int, char**, char** ) { | 156 | int OSQLiteDriver::handleCallBack( int, char**, char** ) { |
104 | return 0; | 157 | return 0; |
105 | } | 158 | } |
159 | |||
160 | |||
106 | /* callback_handler add the values to the list*/ | 161 | /* callback_handler add the values to the list*/ |
107 | int OSQLiteDriver::call_back( void* voi, int argc, | 162 | int OSQLiteDriver::call_back( void* voi, int argc, |
108 | char** argv, char** columns) { | 163 | char** argv, char** columns) { |
109 | // qWarning("Callback with %d items", argc ); | ||
110 | Query* qu = (Query*)voi; | 164 | Query* qu = (Query*)voi; |
111 | 165 | ||
112 | //copy them over to a OSQLResultItem | 166 | //copy them over to a OSQLResultItem |
113 | QMap<QString, QString> tableString; | 167 | QMap<QString, QString> tableString; |
114 | QMap<int, QString> tableInt; | 168 | QMap<int, QString> tableInt; |
115 | for (int i = 0; i < argc; i++ ) { | 169 | for (int i = 0; i < argc; i++ ) { |
116 | //qWarning("%s|%s", columns[i], argv[i] ); | ||
117 | 170 | ||
118 | #ifdef __BUGGY_LOCAL8BIT_ | 171 | #ifdef __BUGGY_LOCAL8BIT_ |
119 | tableInt.insert( i, QString::fromLatin1( argv[i] ) ); | 172 | tableInt.insert( i, QString::fromLatin1( argv[i] ) ); |
120 | tableString.insert( QString::fromLatin1( columns[i] ), | 173 | tableString.insert( QString::fromLatin1( columns[i] ), |
121 | QString::fromLatin1( argv[i] ) ); | 174 | QString::fromLatin1( argv[i] ) ); |
122 | #else | 175 | #else |
123 | tableInt.insert( i, QString::fromLocal8Bit( argv[i] ) ); | 176 | tableInt.insert( i, QString::fromLocal8Bit( argv[i] ) ); |
124 | tableString.insert( QString::fromLocal8Bit( columns[i] ), | 177 | tableString.insert( QString::fromLocal8Bit( columns[i] ), |
125 | QString::fromLocal8Bit( argv[i] ) ); | 178 | QString::fromLocal8Bit( argv[i] ) ); |
126 | #endif | 179 | #endif |
127 | } | 180 | } |
128 | OSQLResultItem item( tableString, tableInt ); | 181 | OSQLResultItem item( tableString, tableInt ); |
129 | qu->items.append( item ); | 182 | qu->items.append( item ); |
130 | 183 | ||
131 | return ((Query*)voi)->driver->handleCallBack( argc, | 184 | return ((Query*)voi)->driver->handleCallBack( argc, |
132 | argv, | 185 | argv, |