У меня была похожая проблема при использовании Adodb с PHP, с драйвером PDO mssql.
- Я выполнил SQL-запрос с
GetOne
или LimitQuery
в блоке try / catch
- запрос привел к ошибке
- Я поймал исключение и продолжил выполнять правильный запрос с
Execute
- результирующие вызовы
RecordCount
будут ошибочно возвращать -1
(но я мог бы перебирать строки).
Я обнаружил, что некоторые функции Adodb устанавливают этот флаг $ADODB_COUNTRECS
на false
перед выполнением запроса. В случае ошибки флаг не был установлен обратно на true
, и поэтому RecordCount
вернул -1
.
Я установил глобальную переменную на true
в своем конструкторе исключений, и это решило проблему.