Поиском не нашел. Может, не те вопросы задавал поиску.
Суть проблемы в следующем: имеется HTA, который обращается к локальной SQLite базе через ODBC.
Имеем функцию, выдающую данные из Recordset по запросу.
База открыта, соединение установлено. Обращаемся к первой записи. При первом вызове всё прекрасно, при втором ошибка «Произошла ошибка во время выполнения многошаговой операции».
Ради эксперимента сделал alert содержимого, полученного запросом, затем присвоение. В результате уже при первом запросе alert показывает всё, а присвоение уже выдаёт ошибку.
То есть, при повторном обращении к одному и тому же Recordset'у получение значения поля вызывает ошибку.
Подскажите, где можно накопать на эту тему внятных объяснений.
Для проверки можно использовать базу данных Skype. Строка соединения:
Код:
|
DRIVER=SQLite3 ODBC Driver;Database=<путь до базы данных Skype>main.db;LongNames=0;Timeout=1000;NoTXN=0;
SyncPragma=NORMAL;StepAPI=0; |
Открываем таблицу контактов:
Код:
|
select * from Contacts |
Прочитайте два раза подряд содержимое поля «skypename» первой записи.
При этом поля «id», «is_permanent» и «type» читаются. Получается, такая проблема возникает при чтении только текстовых полей.