author | erik <erik> | 2007-01-31 21:57:44 (UTC) |
---|---|---|
committer | erik <erik> | 2007-01-31 21:57:44 (UTC) |
commit | 958e042c5a4d4e38fd1baae50b78a2febfd306ab (patch) (unidiff) | |
tree | 7d86d03549cea01b03ce08926624a50fb086890c | |
parent | 6b321230cf24e50b11783b3511a457f22ae79a58 (diff) | |
download | opie-958e042c5a4d4e38fd1baae50b78a2febfd306ab.zip opie-958e042c5a4d4e38fd1baae50b78a2febfd306ab.tar.gz opie-958e042c5a4d4e38fd1baae50b78a2febfd306ab.tar.bz2 |
The queryByExample member function was not properly overridden by the child
class. This means that the last child in the chain would be called instead.
Seeing as how the function is not really implemented in this class I am sure
that they do want the override so a user is A. not fooled into thinking it
is and B. running into a parent function doing the wrong thing.
-rw-r--r-- | libopie2/opiepim/backend/odatebookaccessbackend_sql.cpp | 2 | ||||
-rw-r--r-- | libopie2/opiepim/backend/odatebookaccessbackend_sql.h | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/libopie2/opiepim/backend/odatebookaccessbackend_sql.cpp b/libopie2/opiepim/backend/odatebookaccessbackend_sql.cpp index 629e4da..78c3bf7 100644 --- a/libopie2/opiepim/backend/odatebookaccessbackend_sql.cpp +++ b/libopie2/opiepim/backend/odatebookaccessbackend_sql.cpp | |||
@@ -162,97 +162,97 @@ bool ODateBookAccessBackend_SQL::load() | |||
162 | QMap<int, QString>::Iterator it; | 162 | QMap<int, QString>::Iterator it; |
163 | for ( it = ++m_fieldMap.begin(); it != m_fieldMap.end(); ++it ){ | 163 | for ( it = ++m_fieldMap.begin(); it != m_fieldMap.end(); ++it ){ |
164 | qu += QString( ",%1 VARCHAR(10)" ).arg( it.data() ); | 164 | qu += QString( ",%1 VARCHAR(10)" ).arg( it.data() ); |
165 | } | 165 | } |
166 | qu += " );"; | 166 | qu += " );"; |
167 | 167 | ||
168 | qu += "create table custom_data( uid INTEGER, id INTEGER, type VARCHAR(10), priority INTEGER, value VARCHAR(10), PRIMARY KEY /* identifier */ (uid, id) );"; | 168 | qu += "create table custom_data( uid INTEGER, id INTEGER, type VARCHAR(10), priority INTEGER, value VARCHAR(10), PRIMARY KEY /* identifier */ (uid, id) );"; |
169 | 169 | ||
170 | OSQLRawQuery raw( qu ); | 170 | OSQLRawQuery raw( qu ); |
171 | OSQLResult res = m_driver->query( &raw ); | 171 | OSQLResult res = m_driver->query( &raw ); |
172 | if ( res.state() != OSQLResult::Success ) | 172 | if ( res.state() != OSQLResult::Success ) |
173 | return false; | 173 | return false; |
174 | 174 | ||
175 | update(); | 175 | update(); |
176 | 176 | ||
177 | return true; | 177 | return true; |
178 | } | 178 | } |
179 | 179 | ||
180 | void ODateBookAccessBackend_SQL::update() | 180 | void ODateBookAccessBackend_SQL::update() |
181 | { | 181 | { |
182 | 182 | ||
183 | QString qu = "select uid from datebook"; | 183 | QString qu = "select uid from datebook"; |
184 | OSQLRawQuery raw( qu ); | 184 | OSQLRawQuery raw( qu ); |
185 | OSQLResult res = m_driver->query( &raw ); | 185 | OSQLResult res = m_driver->query( &raw ); |
186 | if ( res.state() != OSQLResult::Success ){ | 186 | if ( res.state() != OSQLResult::Success ){ |
187 | // m_uids.clear(); | 187 | // m_uids.clear(); |
188 | return; | 188 | return; |
189 | } | 189 | } |
190 | 190 | ||
191 | m_uids = extractUids( res ); | 191 | m_uids = extractUids( res ); |
192 | 192 | ||
193 | } | 193 | } |
194 | 194 | ||
195 | bool ODateBookAccessBackend_SQL::reload() | 195 | bool ODateBookAccessBackend_SQL::reload() |
196 | { | 196 | { |
197 | return load(); | 197 | return load(); |
198 | } | 198 | } |
199 | 199 | ||
200 | bool ODateBookAccessBackend_SQL::save() | 200 | bool ODateBookAccessBackend_SQL::save() |
201 | { | 201 | { |
202 | return m_driver->close(); // Shouldn't m_driver->sync be better than close ? (eilers) | 202 | return m_driver->close(); // Shouldn't m_driver->sync be better than close ? (eilers) |
203 | } | 203 | } |
204 | 204 | ||
205 | QArray<int> ODateBookAccessBackend_SQL::allRecords()const | 205 | QArray<int> ODateBookAccessBackend_SQL::allRecords()const |
206 | { | 206 | { |
207 | return m_uids; | 207 | return m_uids; |
208 | } | 208 | } |
209 | 209 | ||
210 | QArray<int> ODateBookAccessBackend_SQL::queryByExample(const OPimEvent&, int, const QDateTime& ) { | 210 | QArray<int> ODateBookAccessBackend_SQL::queryByExample(const int& unUsed, int settings, const QDateTime& ) { |
211 | qDebug( "Accessing ODateBookAccessBackend_SQL::queryByExample() which is not implemented!" ); | 211 | qDebug( "Accessing ODateBookAccessBackend_SQL::queryByExample() which is not implemented!" ); |
212 | return QArray<int>(); | 212 | return QArray<int>(); |
213 | } | 213 | } |
214 | 214 | ||
215 | void ODateBookAccessBackend_SQL::clear() | 215 | void ODateBookAccessBackend_SQL::clear() |
216 | { | 216 | { |
217 | QString qu = "drop table datebook;"; | 217 | QString qu = "drop table datebook;"; |
218 | qu += "drop table custom_data;"; | 218 | qu += "drop table custom_data;"; |
219 | 219 | ||
220 | OSQLRawQuery raw( qu ); | 220 | OSQLRawQuery raw( qu ); |
221 | OSQLResult res = m_driver->query( &raw ); | 221 | OSQLResult res = m_driver->query( &raw ); |
222 | 222 | ||
223 | reload(); | 223 | reload(); |
224 | } | 224 | } |
225 | 225 | ||
226 | 226 | ||
227 | OPimEvent ODateBookAccessBackend_SQL::find( int uid ) const{ | 227 | OPimEvent ODateBookAccessBackend_SQL::find( int uid ) const{ |
228 | odebug << "ODateBookAccessBackend_SQL::find( " << uid << " )" << oendl; | 228 | odebug << "ODateBookAccessBackend_SQL::find( " << uid << " )" << oendl; |
229 | 229 | ||
230 | QString qu = "select *"; | 230 | QString qu = "select *"; |
231 | qu += "from datebook where uid = " + QString::number(uid); | 231 | qu += "from datebook where uid = " + QString::number(uid); |
232 | 232 | ||
233 | odebug << "Query: " << qu << "" << oendl; | 233 | odebug << "Query: " << qu << "" << oendl; |
234 | 234 | ||
235 | OSQLRawQuery raw( qu ); | 235 | OSQLRawQuery raw( qu ); |
236 | OSQLResult res = m_driver->query( &raw ); | 236 | OSQLResult res = m_driver->query( &raw ); |
237 | 237 | ||
238 | OSQLResultItem resItem = res.first(); | 238 | OSQLResultItem resItem = res.first(); |
239 | 239 | ||
240 | // Create Map for date event and insert UID | 240 | // Create Map for date event and insert UID |
241 | QMap<int,QString> dateEventMap; | 241 | QMap<int,QString> dateEventMap; |
242 | dateEventMap.insert( OPimEvent::FUid, QString::number( uid ) ); | 242 | dateEventMap.insert( OPimEvent::FUid, QString::number( uid ) ); |
243 | 243 | ||
244 | // Now insert the data out of the columns into the map. | 244 | // Now insert the data out of the columns into the map. |
245 | QMapConstIterator<int, QString> it; | 245 | QMapConstIterator<int, QString> it; |
246 | for ( it = ++m_fieldMap.begin(); it != m_fieldMap.end(); ++it ){ | 246 | for ( it = ++m_fieldMap.begin(); it != m_fieldMap.end(); ++it ){ |
247 | dateEventMap.insert( m_reverseFieldMap[*it], resItem.data( *it ) ); | 247 | dateEventMap.insert( m_reverseFieldMap[*it], resItem.data( *it ) ); |
248 | } | 248 | } |
249 | 249 | ||
250 | // Last step: Put map into date event, add custom map and return it | 250 | // Last step: Put map into date event, add custom map and return it |
251 | OPimEvent retDate( dateEventMap ); | 251 | OPimEvent retDate( dateEventMap ); |
252 | retDate.setExtraMap( requestCustom( uid ) ); | 252 | retDate.setExtraMap( requestCustom( uid ) ); |
253 | 253 | ||
254 | odebug << "ODateBookAccessBackend_SQL::find( " << uid << " ) end" << oendl; | 254 | odebug << "ODateBookAccessBackend_SQL::find( " << uid << " ) end" << oendl; |
255 | return retDate; | 255 | return retDate; |
256 | } | 256 | } |
257 | 257 | ||
258 | // FIXME: Speed up update of uid's.. | 258 | // FIXME: Speed up update of uid's.. |
diff --git a/libopie2/opiepim/backend/odatebookaccessbackend_sql.h b/libopie2/opiepim/backend/odatebookaccessbackend_sql.h index a649d25..2de2dca 100644 --- a/libopie2/opiepim/backend/odatebookaccessbackend_sql.h +++ b/libopie2/opiepim/backend/odatebookaccessbackend_sql.h | |||
@@ -14,85 +14,85 @@ | |||
14 | .i_,=:_. -<s. This program is distributed in the hope that | 14 | .i_,=:_. -<s. This program is distributed in the hope that |
15 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 15 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
16 | : .. .:, . . . without even the implied warranty of | 16 | : .. .:, . . . without even the implied warranty of |
17 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 17 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
19 | ..}^=.= = ; Library General Public License for more | 19 | ..}^=.= = ; Library General Public License for more |
20 | ++= -. .` .: details. | 20 | ++= -. .` .: details. |
21 | : = ...= . :.=- | 21 | : = ...= . :.=- |
22 | -. .:....=;==+<; You should have received a copy of the GNU | 22 | -. .:....=;==+<; You should have received a copy of the GNU |
23 | -_. . . )=. = Library General Public License along with | 23 | -_. . . )=. = Library General Public License along with |
24 | -- :-=` this library; see the file COPYING.LIB. | 24 | -- :-=` this library; see the file COPYING.LIB. |
25 | If not, write to the Free Software Foundation, | 25 | If not, write to the Free Software Foundation, |
26 | Inc., 59 Temple Place - Suite 330, | 26 | Inc., 59 Temple Place - Suite 330, |
27 | Boston, MA 02111-1307, USA. | 27 | Boston, MA 02111-1307, USA. |
28 | */ | 28 | */ |
29 | #ifndef OPIE_DATE_BOOK_ACCESS_BACKEND_SQL__H | 29 | #ifndef OPIE_DATE_BOOK_ACCESS_BACKEND_SQL__H |
30 | #define OPIE_DATE_BOOK_ACCESS_BACKEND_SQL__H | 30 | #define OPIE_DATE_BOOK_ACCESS_BACKEND_SQL__H |
31 | 31 | ||
32 | #include <qmap.h> | 32 | #include <qmap.h> |
33 | #include <opie2/osqlresult.h> | 33 | #include <opie2/osqlresult.h> |
34 | 34 | ||
35 | #include <opie2/odatebookaccessbackend.h> | 35 | #include <opie2/odatebookaccessbackend.h> |
36 | 36 | ||
37 | namespace Opie { | 37 | namespace Opie { |
38 | namespace DB { | 38 | namespace DB { |
39 | class OSQLDriver; | 39 | class OSQLDriver; |
40 | } | 40 | } |
41 | } | 41 | } |
42 | 42 | ||
43 | namespace Opie { | 43 | namespace Opie { |
44 | /** | 44 | /** |
45 | * This is the default SQL implementation for DateBoook SQL storage | 45 | * This is the default SQL implementation for DateBoook SQL storage |
46 | * It fully implements the interface | 46 | * It fully implements the interface |
47 | * @see ODateBookAccessBackend | 47 | * @see ODateBookAccessBackend |
48 | * @see OPimAccessBackend | 48 | * @see OPimAccessBackend |
49 | */ | 49 | */ |
50 | class ODateBookAccessBackend_SQL : public ODateBookAccessBackend { | 50 | class ODateBookAccessBackend_SQL : public ODateBookAccessBackend { |
51 | public: | 51 | public: |
52 | ODateBookAccessBackend_SQL( const QString& appName, | 52 | ODateBookAccessBackend_SQL( const QString& appName, |
53 | const QString& fileName = QString::null); | 53 | const QString& fileName = QString::null); |
54 | ~ODateBookAccessBackend_SQL(); | 54 | ~ODateBookAccessBackend_SQL(); |
55 | 55 | ||
56 | bool load(); | 56 | bool load(); |
57 | bool reload(); | 57 | bool reload(); |
58 | bool save(); | 58 | bool save(); |
59 | 59 | ||
60 | QArray<int> allRecords()const; | 60 | QArray<int> allRecords()const; |
61 | QArray<int> matchRegexp(const QRegExp &r) const; | 61 | QArray<int> matchRegexp(const QRegExp &r) const; |
62 | QArray<int> queryByExample( const OPimEvent&, int, const QDateTime& d = QDateTime() ); | 62 | QArray<int> queryByExample( const int& unUsed, int settings, const QDateTime& d = QDateTime() ); |
63 | OPimEvent find( int uid )const; | 63 | OPimEvent find( int uid )const; |
64 | void clear(); | 64 | void clear(); |
65 | bool add( const OPimEvent& ev ); | 65 | bool add( const OPimEvent& ev ); |
66 | bool remove( int uid ); | 66 | bool remove( int uid ); |
67 | bool replace( const OPimEvent& ev ); | 67 | bool replace( const OPimEvent& ev ); |
68 | 68 | ||
69 | QArray<UID> rawRepeats()const; | 69 | QArray<UID> rawRepeats()const; |
70 | QArray<UID> nonRepeats()const; | 70 | QArray<UID> nonRepeats()const; |
71 | 71 | ||
72 | OPimEvent::ValueList directNonRepeats()const; | 72 | OPimEvent::ValueList directNonRepeats()const; |
73 | OPimEvent::ValueList directRawRepeats()const; | 73 | OPimEvent::ValueList directRawRepeats()const; |
74 | 74 | ||
75 | private: | 75 | private: |
76 | bool loadFile(); | 76 | bool loadFile(); |
77 | QString m_fileName; | 77 | QString m_fileName; |
78 | QArray<int> m_uids; | 78 | QArray<int> m_uids; |
79 | 79 | ||
80 | QMap<int, QString> m_fieldMap; | 80 | QMap<int, QString> m_fieldMap; |
81 | QMap<QString, int> m_reverseFieldMap; | 81 | QMap<QString, int> m_reverseFieldMap; |
82 | 82 | ||
83 | Opie::DB::OSQLDriver* m_driver; | 83 | Opie::DB::OSQLDriver* m_driver; |
84 | 84 | ||
85 | class Private; | 85 | class Private; |
86 | Private *d; | 86 | Private *d; |
87 | 87 | ||
88 | void initFields(); | 88 | void initFields(); |
89 | void update(); | 89 | void update(); |
90 | 90 | ||
91 | QArray<int> extractUids( Opie::DB::OSQLResult& res ) const; | 91 | QArray<int> extractUids( Opie::DB::OSQLResult& res ) const; |
92 | QMap<QString, QString> requestCustom( int uid ) const; | 92 | QMap<QString, QString> requestCustom( int uid ) const; |
93 | 93 | ||
94 | }; | 94 | }; |
95 | 95 | ||
96 | } | 96 | } |
97 | 97 | ||
98 | #endif | 98 | #endif |