Diffstat (limited to 'libopie2/opiepim/backend/otodoaccesssql.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | libopie2/opiepim/backend/otodoaccesssql.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libopie2/opiepim/backend/otodoaccesssql.cpp b/libopie2/opiepim/backend/otodoaccesssql.cpp index ea8b3c9..9ef6b7c 100644 --- a/libopie2/opiepim/backend/otodoaccesssql.cpp +++ b/libopie2/opiepim/backend/otodoaccesssql.cpp | |||
@@ -265,68 +265,69 @@ bool OTodoAccessBackendSQL::load(){ | |||
265 | return true; | 265 | return true; |
266 | } | 266 | } |
267 | bool OTodoAccessBackendSQL::reload(){ | 267 | bool OTodoAccessBackendSQL::reload(){ |
268 | return load(); | 268 | return load(); |
269 | } | 269 | } |
270 | 270 | ||
271 | bool OTodoAccessBackendSQL::save(){ | 271 | bool OTodoAccessBackendSQL::save(){ |
272 | return m_driver->close(); | 272 | return m_driver->close(); |
273 | } | 273 | } |
274 | QArray<int> OTodoAccessBackendSQL::allRecords()const { | 274 | QArray<int> OTodoAccessBackendSQL::allRecords()const { |
275 | if (m_dirty ) | 275 | if (m_dirty ) |
276 | update(); | 276 | update(); |
277 | 277 | ||
278 | return m_uids; | 278 | return m_uids; |
279 | } | 279 | } |
280 | QArray<int> OTodoAccessBackendSQL::queryByExample( const OTodo& , int ){ | 280 | QArray<int> OTodoAccessBackendSQL::queryByExample( const OTodo& , int ){ |
281 | QArray<int> ints(0); | 281 | QArray<int> ints(0); |
282 | return ints; | 282 | return ints; |
283 | } | 283 | } |
284 | OTodo OTodoAccessBackendSQL::find(int uid ) const{ | 284 | OTodo OTodoAccessBackendSQL::find(int uid ) const{ |
285 | FindQuery query( uid ); | 285 | FindQuery query( uid ); |
286 | return todo( m_driver->query(&query) ); | 286 | return todo( m_driver->query(&query) ); |
287 | 287 | ||
288 | } | 288 | } |
289 | #define CACHE 32 | ||
289 | OTodo OTodoAccessBackendSQL::find( int uid, const QArray<int>& ints, | 290 | OTodo OTodoAccessBackendSQL::find( int uid, const QArray<int>& ints, |
290 | uint cur, Frontend::CacheDirection dir ) const{ | 291 | uint cur, Frontend::CacheDirection dir ) const{ |
291 | qWarning("searching for %d", uid ); | 292 | qWarning("searching for %d", uid ); |
292 | QArray<int> search( 8 ); | 293 | QArray<int> search( CACHE ); |
293 | uint size =0; | 294 | uint size =0; |
294 | OTodo to; | 295 | OTodo to; |
295 | 296 | ||
296 | // we try to cache 8 items | 297 | // we try to cache CACHE items |
297 | switch( dir ) { | 298 | switch( dir ) { |
298 | /* forward */ | 299 | /* forward */ |
299 | case 0: | 300 | case 0: |
300 | for (uint i = cur; i < ints.count() && size < 8; i++ ) { | 301 | for (uint i = cur; i < ints.count() && size < CACHE; i++ ) { |
301 | qWarning("size %d %d", size, ints[i] ); | 302 | qWarning("size %d %d", size, ints[i] ); |
302 | search[size] = ints[i]; | 303 | search[size] = ints[i]; |
303 | size++; | 304 | size++; |
304 | } | 305 | } |
305 | break; | 306 | break; |
306 | /* reverse */ | 307 | /* reverse */ |
307 | case 1: | 308 | case 1: |
308 | for (uint i = cur; i != 0 && size < 8; i-- ) { | 309 | for (uint i = cur; i != 0 && size < CACHE; i-- ) { |
309 | search[size] = ints[i]; | 310 | search[size] = ints[i]; |
310 | size++; | 311 | size++; |
311 | } | 312 | } |
312 | break; | 313 | break; |
313 | } | 314 | } |
314 | search.resize( size ); | 315 | search.resize( size ); |
315 | FindQuery query( search ); | 316 | FindQuery query( search ); |
316 | OSQLResult res = m_driver->query( &query ); | 317 | OSQLResult res = m_driver->query( &query ); |
317 | if ( res.state() != OSQLResult::Success ) | 318 | if ( res.state() != OSQLResult::Success ) |
318 | return to; | 319 | return to; |
319 | 320 | ||
320 | return todo( res ); | 321 | return todo( res ); |
321 | } | 322 | } |
322 | void OTodoAccessBackendSQL::clear() { | 323 | void OTodoAccessBackendSQL::clear() { |
323 | ClearQuery cle; | 324 | ClearQuery cle; |
324 | OSQLResult res = m_driver->query( &cle ); | 325 | OSQLResult res = m_driver->query( &cle ); |
325 | CreateQuery qu; | 326 | CreateQuery qu; |
326 | res = m_driver->query(&qu); | 327 | res = m_driver->query(&qu); |
327 | } | 328 | } |
328 | bool OTodoAccessBackendSQL::add( const OTodo& t) { | 329 | bool OTodoAccessBackendSQL::add( const OTodo& t) { |
329 | InsertQuery ins( t ); | 330 | InsertQuery ins( t ); |
330 | OSQLResult res = m_driver->query( &ins ); | 331 | OSQLResult res = m_driver->query( &ins ); |
331 | 332 | ||
332 | if ( res.state() == OSQLResult::Failure ) | 333 | if ( res.state() == OSQLResult::Failure ) |