Hi, Perhaps I’m not doing things correctly, but this code will take about 1 minute to execute (2400 records on a total of around 44000 records):
Basically, I’m getting records that need to be updated. Then, I go through each record and update it. Should be fast IMHO but I don’t see why it’s that slow! Is there another way that would be faster? if( nRet == SQLITE_OK ) { sqlite3_free_table( paszResults ); strQuery.Format( _T( "SELECT something, thatThing, otherthing, stuff FROM table WHERE hello = %d;" ), VARIANT_TRUE ); nRet = sqlite3_get_table( m_pDB, strQuery, &paszResults, &nRows, &nCols, &szError); if( nRet == SQLITE_OK ) { if( nRows > 0 ) { nRet = sqlite3_exec( m_pDB, _T("BEGIN;"), 0, 0, &szError ); //Go through all the records for(INT nCurrRow=1;nCurrRow<=nRows;nCurrRow++) { strQuery.Format( "UPDATE something SET thatThing = 0, otherthing = %f WHERE stuff = %d AND hello = %d AND bye = -1", … ); nRet = sqlite3_exec( m_pDB, strQuery, 0, 0, &szError ); nColBad+=4; nColGood+=4; } nRet = sqlite3_exec( m_pDB, _T("COMMIT;"), 0, 0, &szError ); } sqlite3_free_table( paszResults ); } Thanks! Luc