Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.12;
Скачать: CL | DM;

Вниз

Странное поведение 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
4-36909
idr
2003-10-20 11:29
2003.12.12
Пуст ли буфер обмена?


1-36651
g-l-u-k
2003-11-23 18:36
2003.12.12
DsgnIntf - не найден


3-36583
Grrey
2003-11-18 16:30
2003.12.12
Возможно ли выбрать из ассоциативного массива (table) в Cursor


4-36882
Talla2k
2003-10-22 01:28
2003.12.12
тормоз Thread


1-36687
_юзер_
2003-12-02 17:58
2003.12.12
MDI