Shmuma/sqlite3-mt4-wrapper — Issue #1: UPDATE some row during SELECT
Author: dverbovskiy
Created: 2012-02-06 00:22:36+00:00
State: open

Добрый день, и на том огромное спасибо, за труд!!!
Подскажите сталкивались ли вы с подобной ситуацией, когда в процессе цикла по СЕЛЕКТУ
нужно сделать АПДЕЙТЫ? Сервер возвращает типа код 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_get_col(handle, 0));
int dbTicket = StrToInteger(sqlite_get_col(handle, 2));
double dbOP = StrToDouble (sqlite_get_col(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);