После попытки решения проблемы @jiang, которая вызвала ту же ошибку, я наконец нашел виновника.
Оказывается, это была ошибка из-за моей стороны (обычно это так, просто нужно ее найти).
Оказывается, я установил транзакцию чтения на False когда-то во время обработки / чтения полей исходного запроса.
- Я выполняю поиск в другой таблице, чтобы получить описание целочисленного значения в запросе.
- Этот запрос поиска использует такую же транзакцию чтения и устанавливает эту транзакцию в
False
после просмотра описания.
- После возврата к исходному запросу чтение целочисленных и строковых полей не представляет проблемы (, хотя для транзакции чтения установлено значение False ), но чтение поля BLOB в строку с ... AsString Метод выдает ошибку или возвращает BLOB.
Очевидно, мне нужно установить транзакцию чтения на True в начале действий чтения и установить значение False после ВСЕХ транзакций чтения. Это основное изменение при преобразовании приложения Paradox BDE в приложение Firebird of Sqlserver.
В любом случае, я рад, что нашел решение. Надеюсь, это поможет и другим.