My code is:
Statement mstatement = null;
URI uri = URI.create(DBPath);
sqliteDb = DatabaseFactory.openOrCreate(uri);
mStatement = sqliteDb.createStatement(strQuery);
mStatement.prepare();
My problem is, I am getting error as "Sqlite pendingOperation" at mstatement.prepare();. I am using synchronized blocks at each and every database handling methods. This is happening while multiple threads are running.
I got my answer by myself.
I modified all method as(in bold):
Cursor c = null;
DBHelper.mStatement = null;
Vector followups = new Vector();
**boolean runFlag = true;**
synchronized (GlobalVariables.lockObject) {
try {
**while(runFlag)**
SELECT EventId,OldTitle,OrderNumber,Status,Title,Type,UpdateDateTime,Id FROM Questions WHERE EventId=5 AND Type=1 AND (Status=0 OR Status=1 OR Status=2) ORDER BY OrderNumber
DBHelper.CreateAndOpenSqliteDBConnection();
DBHelper.mStatement = DBHelper.sqliteDb.createStatement(strQuery);
DBHelper.mStatement.prepare();
**if(DBHelper.mStatement == null)
{
DBHelper.CloseSqliteDBConnection();
runFlag = true;
continue;
}
else
{
runFlag = false;
}**
c = DBHelper.mStatement.getCursor();
while (c.next()) {
followups.addElement(Followup.getFromCursor(c));
}
}
**}**
catch (Exception ex) {
System.out.print(ERRORSTRING + "getUploadFollowupsFromDB: "
+ ex);
} finally {
DBHelper.CloseSqliteDBConnection();
}
GlobalVariables.lockObject.notifyAll();
}
return followups;
Great Ankit Rox..
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With