Форум: "Базы";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];
ВнизСтранное поведение Query Найти похожие ветки
← →
Shirson (2003-11-19 11:14) [0]Есть некий запрос, в TADOQuery. При его выполнении возвращается, скажем, 236 записей.
Тот же самый запрос, отработанный в iQueryAnaliser выдаёт 237 записей.
Другие запросы отрабатываются аналогично - TADOQuery возвращает меньше записей, чем нужно.
Проверял записи, не вошедшие в результат работы TADOQuery - ничего особенного, обычные записи.
В чём грабли, просветите, а то работа встала.
Использую связки из TADOConnection-TADOQuery. MDAC 2.7 поставил - результат тот же.
← →
Silver Alex (2003-11-19 11:18) [1]может разные параметры подставляешь, посмотреть бы на запрос да и вообще подробнее бы все узнать
← →
Shirson (2003-11-19 11:25) [2]Беру запрос из TADOQuery и копирую в аналайзер. Копи-пастом.
Сам запрос значения не имеет - результаты для разных запросов такие, что TADOQuery даёт меньше записей, чем аналайзер.
← →
sniknik (2003-11-19 11:29) [3]> При его выполнении возвращается, скажем, 236 записей.
> Тот же самый запрос, отработанный в iQueryAnaliser выдаёт 237 записей.
а если скажем 5 записей, Analiser выдаст 6? (проверить на маленьких значениях)
единственное правдоподобное обьяснение что в голову пришло (не учитывая что чтото с кодом не так), это если используется серверный курсор и количество читается до того как сделано FetchAll, у Query Analiser-а подобных глюков естественно нет.
с маленьким количеством тогда должно сойтись, можно визуально пересчитать да и выкачает все наверняка если в грид влезет без скролинга.
← →
Shirson (2003-11-19 11:47) [4]Спасибо всем, вопрос, похоже снят.
Проблема оказалась самая что и нинаесть дебильная.
Запрос формируется из формы визуального моделирования, и формируется в TRichEdit. Потом TRichEdit.lines напрямую записываются в TADOQuery.SQL.
Если брать запрос из самого TRichEdit и вставлять в аналайзер - вылазит 237 записей.
Квери даёт 236...
Если, после копирования, записать содержимое TADOQuery.SQL в файл (.savetofile) и потом загрузить в аналайзер... ну вы догадались? Аналайзер выдаст 236 записей.
Всё это .....ство происходило, похоже, из-за того, что у TRichEdit пропертина WordWrap стояла в True.
Поставил False и результаты стали верными.
Поубивал бы....
← →
NAlexey (2003-11-19 11:54) [5]Рациональнее надо время использовать:
select count(*) from Table
Чудес не бывает.
← →
Shirson (2003-11-19 13:05) [6]И в чём сакральный смысл данного запроса?
← →
NAlexey (2003-11-19 13:23) [7]Сакральный смысл этого запроса в том, что можно определить сколько строк возвращает тот или иной запрос.
← →
Shirson (2003-11-19 16:32) [8]select count(*) from Table
Возвращает одинаковое количество строк в обоих случаях.
Это нетрудно понять, если прочитать мой ответ, _почему_ запрос давал разные результаты.
← →
Reflex (2003-11-19 19:10) [9]Вообще разницы из за того что есть wordwrap или нет никакой не должно быть, какая разница в каком виде запрос передается на сервер. Что так
select * from TableName
а
что
select * from
<BR>TableName.
Абсолютно никакой!
← →
Shirson (2003-11-21 08:39) [10]Я тоже так думал :)
Однако факт на лице.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c