Closed qed228 closed 6 years ago
Само выпиленное выглядит очень странным, но тем не менее то, что оно там три года висело, намекает, что все может быть не столь просто. Ну или это как с тем говнокодом в code/world.dm
По идее должно фиксить проблему с БД. Возможно, что это close() относится только к интерфейсу, и не закрывает коннект с БД. Однако всё равно выглядит сомнительно.
Нет, это закрытие именно коннекта. DBConnection/proc/Disconnect() return _dm_db_close(_db_con)
Так погодите, Close закрывает не коннект, а запрос.
return _dm_db_close(_db_query)
По-моему там Close() затем, чтобы подчистить результаты предыдущего запроса, если был.
Вот полное, если вдруг
DBQuery/proc/Close()
item.len = 0
columns = null
conversions = null
return _dm_db_close(_db_query)
Типа сам _dm_db_execute
прописывает результаты запроса в структуру, а Close()
перед его вызовом для зачистки структуры от предыдущих запросов.
Я кинул дисконнект не просто так, а чтоб показать что close - это, мать его, таки отрубание коннекта от базы, хз нахуя и почему.
Но дисконнект(DBConnection/proc/Disconnect) тут не зовется, манипуляции производятся над полями DBQuery, и закрывается через обращение к дллке ровно объект DBQuery
Действительно, не посмотрел на параметр чот. Ну окей, тогда только логами мазать, если не выполнилось - то записать в лог ошибку и сам запрос, в лог чисто сервера, а не в остальные сральные файлы, чтоб через хаб не видно было потом в логах обычных.
Я не помню проблем с БД, разве что тот чекмультиаккаунтс, где хрен знает, на чьей стороне вообще проблема и где (я там не лазил). И предложенное изменение весьма сомнительно в силу сказанного мной выше.
Не думаю, что стоит выпиливать этот Close()
, по крайней мере пока.
Ну да, вернуть и таки вмазать логов в Execute.
А шо оно фиксит?