animusdev / whiTGreen

Oh fuck.
3 stars 21 forks source link

fix for retarded DB bug #242

Closed qed228 closed 6 years ago

jammer312 commented 6 years ago

А шо оно фиксит?

jammer312 commented 6 years ago

Само выпиленное выглядит очень странным, но тем не менее то, что оно там три года висело, намекает, что все может быть не столь просто. Ну или это как с тем говнокодом в code/world.dm

qed228 commented 6 years ago

По идее должно фиксить проблему с БД. Возможно, что это close() относится только к интерфейсу, и не закрывает коннект с БД. Однако всё равно выглядит сомнительно.

ZLOFENIX commented 6 years ago

Нет, это закрытие именно коннекта. DBConnection/proc/Disconnect() return _dm_db_close(_db_con)

jammer312 commented 6 years ago

Так погодите, Close закрывает не коннект, а запрос. return _dm_db_close(_db_query) По-моему там Close() затем, чтобы подчистить результаты предыдущего запроса, если был.

jammer312 commented 6 years ago

Вот полное, если вдруг

DBQuery/proc/Close()
    item.len = 0
    columns = null
    conversions = null
    return _dm_db_close(_db_query)

Типа сам _dm_db_execute прописывает результаты запроса в структуру, а Close() перед его вызовом для зачистки структуры от предыдущих запросов.

ZLOFENIX commented 6 years ago

Я кинул дисконнект не просто так, а чтоб показать что close - это, мать его, таки отрубание коннекта от базы, хз нахуя и почему.

jammer312 commented 6 years ago

Но дисконнект(DBConnection/proc/Disconnect) тут не зовется, манипуляции производятся над полями DBQuery, и закрывается через обращение к дллке ровно объект DBQuery

ZLOFENIX commented 6 years ago

Действительно, не посмотрел на параметр чот. Ну окей, тогда только логами мазать, если не выполнилось - то записать в лог ошибку и сам запрос, в лог чисто сервера, а не в остальные сральные файлы, чтоб через хаб не видно было потом в логах обычных.

jammer312 commented 6 years ago

Я не помню проблем с БД, разве что тот чекмультиаккаунтс, где хрен знает, на чьей стороне вообще проблема и где (я там не лазил). И предложенное изменение весьма сомнительно в силу сказанного мной выше. Не думаю, что стоит выпиливать этот Close(), по крайней мере пока.

ZLOFENIX commented 6 years ago

Ну да, вернуть и таки вмазать логов в Execute.