Конференция "Базы" » Ошибка в ntdll.dll при закрытии рекордсета [D5, MSSQL]
 
  • AndriyB © (16.10.08 19:39) [0]
    Здраствуйте,

    Работаю над проектом на Delphi 5. База даных - Sql Server 2005.
    На Vista SP1 + Updates при закрытии ADO DataSet крэш - ошибка в ntdll.dll: "Access violation at address 77A159C3 in module 'ntdll.dll'. Read of address 612C3B11 ..."
    Call Stack показал следующее:
    ...
    RtlRaiseStatus
    KiUserExceptionDispatcher
    @IntfClear
    TCustomADODataSet.InternalClose - здесь ошыбка при закрытии рекордсета: "FRecordsetObject := nil;"
    TDataSet.CloseCursor
    TDataSet.SetActive
    TdcADODataSet.SetActive
    TDataSet.Close
    ...
    На других ОС работает без ошыбок. Более того работает без ошыбок на Vista если не ставить SP1 и апдейты.
    Есть подозрение что проблема в версии MDAC компонентов: на Vista без SP1 версия 6.0.6000.1638, с SP1 и апдейтами - 6.0.6001.16000.
    Но вот как изменить версию этих компонентов я не нешел.
    Возможно кто нибудь сталкивался с такой ошибкой.
    Буду благодарен за любые коментарии.

    Спасибо,
    Андрей.
  • stas © (16.10.08 19:46) [1]
    Скачай последнюю версию MDAC с сайта Microsoft.
  • sniknik © (16.10.08 20:03) [2]
    > Работаю над проектом на Delphi 5
    апдейты все стоят? в d5 для ADO были исправления.
  • AndriyB © (16.10.08 20:06) [3]
    С Вистой поставляется версия MDAC (только теперь ето WDAC - Windows DAC) версии 6.0 - и ета версия не доступна как отдельный пакет  - последняя версия которую можно скачать и установить ето 2.8 - вот только 2.8 не устанавливается на Висте.
  • AndriyB © (16.10.08 20:07) [4]
    Да, два апдейта для ADO установлены.
  • stas © (16.10.08 20:49) [5]
    А подключаешься через Native client?
  • AndriyB © (16.10.08 23:39) [6]
    Нет. Но только что попробывал и через Native Client - та же самая ошибка.
  • stas © (17.10.08 10:55) [7]
    Я такое встречал на 98-й, после вирусов, как вылечить не разобрались сделали format C:\ и переустановили винду. Поверх установка тоже не помогла.
  • AndriyB © (17.10.08 11:22) [8]
    Такая ошибка в нескольких клиентов на совершенно разных компютерах. Оказалось что та же самая ошибка вискакивает но только очень редко и на XP если на него накатить SP3 - с SP2 все работало без ошибок.
    Вчера мне все таки удалось найти WorkAround - датасет работал в режиме LockType := ltBatchOptimistic и пост в базу через вызов FDataSet.UpdateBatch(); Сменил LockType на ltOptimistic и забрал FDataSet.UpdateBatch(); - бизнес логика позволяла такое изменение - все заработало. Пока что оставлю так. Клиенти довольны.
    Спасибо всем за помощь.
 
Конференция "Базы" » Ошибка в ntdll.dll при закрытии рекордсета [D5, MSSQL]
Есть новые Нет новых   [134477   +39][b:0][p:0]