![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с execute statement в FB 1.5.1 [FB 1.5.1]
a3a3ello © (2004-11-25 17:01:00)В ХП FB 1.5.1 глючит следующий фрагмент.
begin
txt_sql = 'select count(*) from table_try';
for execute statement main_sql
into :kolichstvo do
begin
suspend;
end
Выдается ошибка
Eсли сделать то же самое без execute statement то процедура работает. Если в переменной txt_sql заменить count(*) на что нибудь другое(sum(), avg(), просто поле) , то тоже все работает.
Что это можт быть ?
Спасибо
a3a3ello (2004-11-25 18:15:00) [1]Уррррррра.
Сделал int и заработало. Интересно это глюк или фича. И почему все кроме count() с bigint-ом работало.
Всем спасибо.
a3a3ello (2004-11-25 18:05:00) [2]2stud
параметр kolichstvo - bigint
переменная txt_sql varchar(500)
Johnmen (2004-11-25 18:03:00) [3]>a3a3ello (25.11.04 17:50) [5]
Это из-за того, что вых.парам у тебя bigint.
Сделай int и не мучайся...:)
stud (2004-11-25 17:58:00) [4]tn - varchar имя таблицы
cc - integer
stud (2004-11-25 17:55:00) [5]сервер 1,5
for execute statement 'SELECT count(*) FROM ' ||tn
into :cc
do suspend;
специально проверил - эта конструкция работает.
а какой тип параметров?
a3a3ello (2004-11-25 17:50:00) [6]* заменял на все, что мог.
2stud Приятно, что у кого-то это работает, значит шансы есть. А какая у тебя версия сервера?
Вот текст ошибки. Может поможет
Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements.
numeric value between 0 and 32767 inclusive required.
stud (2004-11-25 17:42:00) [7]вот реально работающий пример
for execute statement 'SELECT trandate,count(*) FROM ' ||tn||
' WHERE trantime<'||'''15:00'''||
' group by trandate order by trandate' into :trandate_,:do15
Johnmen (2004-11-25 17:35:00) [8]А замени * на имя поля, которое PK.
a3a3ello (2004-11-25 17:27:00) [9]я извиняюсь main_sql и txt_sql одно и то же. Замучился уже :(
kolichstvo переменная типа bigint.
begin
txt_sql = 'select count(*) from table_try';
for execute statement txt_sql
into :kolichstvo do
begin
suspend;
end
stud (2004-11-25 17:18:00) [10]
> main_sql
это что? имя таблицы или?