Исправление ошибок
Список исправлений
1. Обнаружено неадекватное поведение класса std::ostrstream из STL (BCB3) — при работе с буфером фиксированной длины он записывал 0 за последним байтом. Это могло приводить к порче стека и к дальнейшему падению.
2. Полностью переписан компонент управления результирующим множеством — Rowset. Теперь как ADO, так и тестовые средства из MDAC SDK 2.6 — RowsetViewer, могут нормально выполнять 3 вида навигации по набору рядов:
- последовательный однонаправленный
- последовательный двунаправленный
- произвольный доступ с использованием закладок
До этого некорректно производилась последовательная выборка в обратном направлении.
3. Для однонаправленного доступа реализовано повторное выполнение запроса, что позволяет позиционироваться на начало множества. При автокоммите рестарт выполняется в той же транзакции.
4. Реализован интерфейс IRowsetScroll. Это последний интерфейс из OLE DB 1.1 для навигации по набору рядов. Поэтому, надеюсь, в ADO будут доступны все методы, связанные с выборкой и позиционированием.
5. Реализован возврат числа рядов, затронутых SQL запросами insert/update/delete.
6. Исправлена куча маленьких, но неприятных ошибок.