Closed dmytro-verbivskyi closed 12 years ago
Блин, извините, но пришлось хоть так пример исходника выложить.
Добрый день!
Для примеров исходников на гитхабе есть Gist (https://gist.github.com/), очень удобно.
С такой ситуацией не сталкивался, но судя по коду sqlite, выход только один - в цикле сохранять обновляющие запросы в массиве, которые потом выполнять вне цикла select.
Спасибо за совет, реализовал этот workaround. Работает приемлемо. https://gist.github.com/1755439#file_gistfile1.cpp
блин, все равно не выходит вставить исходник прямо сюда в коммент.
Добрый день, и на том огромное спасибо, за труд!!! Подскажите сталкивались ли вы с подобной ситуацией, когда в процессе цикла по СЕЛЕКТУ нужно сделать АПДЕЙТЫ? Сервер возвращает типа код 5: Server is Busy
int cols[3]; string selectPositions = StringConcatenate( "SELECT * FROM trades ", "WHERE status = 1;"); // only ACTIVE
int handle = sqlite_query(db, selectPositions, cols);
while ( sqlite_next_row(handle) == 1 ) { _ int dbID = StrToInteger(sqlite_getcol(handle, 0)); int dbTicket = StrToInteger(sqlite_get_col(handle, 2)); _ double dbOP = StrToDouble (sqlite_getcol(handle, 3)); string updateQuery = "";
___ if ( OrderSelect(dbTicket, SELECT_BY_POS, MODE_TRADES) ) {
} else { // then it might be closed ____ Print("it\'s been closed"); ____ updateQuery = StringConcatenate("UPDATE trades SET status = 2 WHERE id = ", dbID, ";"); } ___ sqlExec(db, updateQuery); } sqlite_free_query(handle);