SET ROWCOUNT 0

Обсуждение MAV Direct ODBC

Модератор: Andrew™

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

SET ROWCOUNT 0

Сообщение Admin »

Мялину агромное "спасибо" за то что мы убили полдня времени на разбор полетов...
MAV периодически использует команду SET ROWCOUNT 1 для получения одной строки из селекта
и "иногда" забывает об этом ...
Потом мы выполняем SELECT и он возвращает 1 строку хотя долже дать список...
А когда это в большой хранимке ... в ступор попадаешь...

В общем рулится командой SET ROWCOUNT 0

И судя по всему команду SET ROWCOUNT 0 нужно втыкать чуть ли не в каждую дырку т.к. MAV в любой момент может загадить вашу работу, а искать такого плана ошибку непросто...

P.S. Писал сюда в основном для себя что бы не забыть про еще один подводный камень...
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: SET ROWCOUNT 0

Сообщение Andrew™ »

SET ROWCOUNT я сам никогда не взвожу, это параметр курсора

Код: Выделить всё

  SELF.RetCode = SQLSetStmtAttr(SELF.hstmt, SQL_ATTR_MAX_ROWS,SELF.MaxRow,SQL_IS_UINTEGER)
это уже ODBC драйвер рулит какую команду на сервере выполнять, но могу сказать, что эта команда - настройка запроса и должна всегда, на мой взгляд, взводиться перед запросом к БД.
Ответить