Ads 468x60px

##EasyReadMore##

14 6月, 2016

sqlite database is locked

會出現這個看起來有兩個原因
一個是前一個線程在寫資料時佔住了資源

  1. int callback_db(void *ptr,int count)  
  2. {  
  3.     usleep(500000);   //如果获取不到锁,等待0.5秒  
  4.     printf("database is locak now,can not write/read.\n");  //每次执行一次回调函数打印一次该信息  
  5.     return 1;    //回调函数返回值为1,则将不断尝试操作数据库。  
  6. }  

  1. sqlite3_busy_handler(db,callback_db,(void *)db);   //一直等待,直到获得锁  

另一個是在使用 sqlite3_prepare_v2 沒有 finalize 它

  1. /* destroy and release the statement */  
  2. sqlite3_finalize( stmt );  
  3. stmt = NULL;  


http://blog.csdn.net/northcan/article/details/7232941
sqlite3之sqlite3_busy_handler使用详解 - 认真、专注、坚持 - 博客频道 - CSDN.NET - http://goo.gl/xemclg

0 意見:

張貼留言

 
Blogger Templates