Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];

Вниз

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

 
Глюкоман   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.01 c
3-1122028275
Carmen
2005-07-22 14:31
2005.09.18
Ограничение записей в базе Firebird


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


4-1122246995
timon84
2005-07-25 03:16
2005.09.18
Отловить нажатие кнопки пуск


2-1123683742
Dudee
2005-08-10 18:22
2005.09.18
TChart


14-1124523261
Катя_В
2005-08-20 11:34
2005.09.18
Ошибка при регистрации на borland.com





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский