persistentstorage/sql/SRC/Server/SqlSrvStatementUtil.cpp
changeset 51 7d4490026038
parent 31 ba1c4f4a893f
child 55 44f437012c90
equal deleted inserted replaced
40:b8bdbc8f59c7 51:7d4490026038
   268 	(void)sqlite3SymbianLastOsError();//clear last OS error
   268 	(void)sqlite3SymbianLastOsError();//clear last OS error
   269 	
   269 	
   270 	TInt err = sqlite3_exec(aDbHandle, reinterpret_cast <const char*> (aSqlStmt.Ptr()), NULL, NULL, NULL);
   270 	TInt err = sqlite3_exec(aDbHandle, reinterpret_cast <const char*> (aSqlStmt.Ptr()), NULL, NULL, NULL);
   271 
   271 
   272 	err = ::Sql2OsErrCode(err, sqlite3SymbianLastOsError());
   272 	err = ::Sql2OsErrCode(err, sqlite3SymbianLastOsError());
   273 	if(err == KSqlAtEnd)
   273 	__ASSERT_DEBUG(err != KSqlAtEnd, __SQLPANIC2(ESqlPanicInternalError));
   274 		{
       
   275 		err = KErrNone;	
       
   276 		}
       
   277 	SQL_TRACE_INTERNALS(OstTraceExt2(TRACE_INTERNALS, DBEXECSTMT8_EXIT, "Exit;0x%X;DbExecStmt8;err=%d", (TUint)aDbHandle, err));
   274 	SQL_TRACE_INTERNALS(OstTraceExt2(TRACE_INTERNALS, DBEXECSTMT8_EXIT, "Exit;0x%X;DbExecStmt8;err=%d", (TUint)aDbHandle, err));
   278 	return err;
   275 	return err;
   279 	}
   276 	}
   280 
   277 
   281 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
   278 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
   874 			TUint32 startTicks = 0;
   871 			TUint32 startTicks = 0;
   875 			if(aMaxTime > 0)
   872 			if(aMaxTime > 0)
   876 				{
   873 				{
   877 				startTicks = User::FastCounter();
   874 				startTicks = User::FastCounter();
   878 				}
   875 				}
       
   876 			
   879 			while((err = sqlite3_step(stmtHandle)) == SQLITE_ROW)
   877 			while((err = sqlite3_step(stmtHandle)) == SQLITE_ROW)
   880 				{
   878                 {
   881 				++aProcessedPageCount;
   879                 ++aProcessedPageCount;
   882 				if(aMaxTime > 0 && IsCompactTimeLimitReached(startTicks, User::FastCounter(), aMaxTime))
   880                 if(aMaxTime > 0 && IsCompactTimeLimitReached(startTicks, User::FastCounter(), aMaxTime))
   883 					{
   881                     {
   884 					err = SQLITE_DONE;//The statement execution did not complete because of the time limit
   882                     err = SQLITE_DONE;//The statement execution did not complete because of the time limit
   885 					break;	
   883                     break;  
   886 					}
   884                     }
   887 				}
   885                 }
   888 			if(err == SQLITE_ERROR)	//It may be "out of memory" problem
   886 			
   889 				{
   887 			if(err == SQLITE_ERROR)  //It may be "out of memory" problem
   890 				err = sqlite3_reset(stmtHandle);
   888                 {
   891 				__ASSERT_DEBUG(err != SQLITE_OK, __SQLPANIC2(ESqlPanicInternalError));
   889                 err = sqlite3_reset(stmtHandle);
   892 				}
   890                 __ASSERT_DEBUG(err != SQLITE_OK, __SQLPANIC2(ESqlPanicInternalError));
       
   891                 }
   893 			}
   892 			}
   894 		(void)sqlite3_finalize(stmtHandle);//sqlite3_finalize() fails only if an invalid statement handle is passed.
   893 		(void)sqlite3_finalize(stmtHandle);//sqlite3_finalize() fails only if an invalid statement handle is passed.
   895 		}
   894 		}
   896 	err = ::Sql2OsErrCode(err, sqlite3SymbianLastOsError());
   895 	err = ::Sql2OsErrCode(err, sqlite3SymbianLastOsError());
   897 	if(err == KSqlAtEnd)
   896 	if(err == KSqlAtEnd)