Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Компонент TIBQuery


Автор: Oberon83 18.4.2006, 10:16
База данных FireBird 1.5, приложение пишу на С++ Builder с использованием стандартных компонентов доступа к БД - InterBase. Столкнулся со следующей проблемой: при выборке записи (использую компонент TIBQuery) выбирается только одна первая запись из таблицы, остальные в результат запроса не попадают(TIBQuery->RecordCount всегда равен 1, даже если запрос такого вида: SELECT * FROM TABLE, в TABLE лежит 100 записей). Причем, если тот же самый запрос прогнать в IB Expert, то результат правильный, то есть загвоздка не в запросе. Так же использую TIBTransaction, параметры которого стандартные и установлены в ReadCommited (read_committed;rec_version;nowait). В чем может быть проблема? Почему в результате ПРАВИЛЬНОГО запроса выбирается только одна первая запись?
С компонентом IBDataSet, то же самое.
Заранее благодарен.   

Автор: _hunter 18.4.2006, 11:00
это нормальное поведение -- чтобы лишние записи по сети не гонять.
тут все зависит от того, что тебе нужно.
-- если записи посчитать -- лучше COUNT() использовать
-- если с записями работать -- смело работай -- никуда они не пропадут -- можеш для проверки цикл со счетчиком прокрутить или FetchAll вызвать.
 

Автор: Oberon83 18.4.2006, 11:50
_hunter, Спасибо. У меня есть поисковый запрос по которому необходимо выбать все записи и отобразить в таблице (для дальнейшей работы), просто когда я работал с MS SQL Server, там по запросу он мне все записи выгружал (только в поробности подключений я не вдавался - прога не моя была, я просто добавил кое-что). 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)