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

Вниз

Глюк в параметризированном запросе   Найти похожие ветки 

 
Глюкоман   (2005-08-01 00:08) [0]

В программе выполняется кусок кода:
query1.close;
query1.prepere;
query1.params[0].asinteger:=x;
query1.execsql;
query1.active:=true;

текст запроса:
select name from main.db where idst=:set1
запрос выполняется правильно, но после нескольких выполнений кода выдается ошибка "Some internal limit"


 
DrPass ©   (2005-08-01 00:39) [1]

Это парадокс. Но зачем делать много раз query1.prepare? И зачем вообще делать query1.execsql, если это запрос на выборку?


 
Глюкоман   (2005-08-01 00:48) [2]

Да я и сам офигел от єтой ошибки.
Запрос выполняется с разными значениями параметра, определенными пользователем, поэтому и приходится делать prepere. Насчет execsql - по другому не возвращаются верные результаты.


 
Глюкоман   (2005-08-01 00:59) [3]

Ну если есть другие варианты подскажите пожалуйста.


 
sniknik ©   (2005-08-01 02:00) [4]

> другие варианты подскажите пожалуйста.

> "Some internal limit"
было обсуждение там такая ошибка выдавалась, только при заполнении таблицы а не запросе... когда размер ее превышал лимит.

но допустим, ошибка выдается. именно как описано... почему может быть? если например, оригинальная таблица сделана с максимальным "блоксайз"-ом, и значит может иметь до 2гб размера (или около того). а после выставлен другой параметр минимальный, и размер соответственно может быть только 128мб...
когда выполняется запрос он формирует временную таблицу. с какими параметрами? скорее всего с текущими. так? а запрос, возможно, возвращает больше... ибо может! оригинальная таблица в несколько раз больше. вот ограничение на размер и наступило, у временной таблици "internal limit" размера.
или показан (как обычно ;) не оригинальный запрос, а в оригинальном есть обьеденение... тогда исходным таблицам даже не нужно быть "особенными"/большими, обьеденение может быть очень большим.
ну вот. один из варитов. проверь, выставь максимальный BLOCK SIZE  у парадокса.

(хотя Some это не обязательно размер ;о)), может чтото другое кончилось)

p.s. prepere и execsql всетаки лишние.


 
Desdechado ©   (2005-08-01 12:55) [5]

Prepare выполняется неявно для неподготовленных запросов.
А если готовить явно, то Prepare надо вызывать 1 раз в самом начале, а не при каждом запросе, у которого меняется только параметр.


 
Глюкоман   (2005-08-02 00:05) [6]

А возможно ли физически удалять результаты предыдущего запроса перед выполнением нового запроса?


 
Anatoly Podgoretsky ©   (2005-08-02 00:12) [7]

Возсожно, это close или free


 
erika ©   (2005-08-02 08:58) [8]

Попробуй проще

query1.close;
query1.params[0].asinteger:=x;
query1.open();

работает без отказно


 
Глюкоман   (2005-08-03 00:27) [9]

>Anatoly Podgoretsky
Скорей всего что-то в BDE и возможно требуется использовать другие функции BDE для сброса кэша (close & free не помогают) как это сделать я не знаю.


 
Соловьев ©   (2005-08-03 10:08) [10]


> p.s. prepere и execsql всетаки лишние.

execsql лишний



Страницы: 1 вся ветка

Текущий архив: 2005.09.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.054 c
1-1125170037
dDan
2005-08-27 23:13
2005.09.18
Цепи Маркова


1-1124960267
kyn66
2005-08-25 12:57
2005.09.18
Как привязаться к координатам картинки ?


9-1116673417
Кирилл
2005-05-21 15:03
2005.09.18
Direct Sound


9-1116573150
LEGIONER75
2005-05-20 11:12
2005.09.18
организации базиса системы в сцене


4-1122497895
SpyBoy
2005-07-28 00:58
2005.09.18
Шрифт