![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка в запросе [D7, XP]
rnts © (2010-09-06 15:15:00)При выполнении кода ниже возникает ошибка:Project raised exception class EDBEngineError with message 'Invalid use of keyword. Token: when Line number:1' , хотя в любом SQL-клиенте все работает.
select_sql:=' Select id,npr,(case when npr like ''%/%'' then substr (npr,1,pos(npr,''/'')-1)::integer ';
select_sql:=select_sql+ ' else npr::integer end ) from asu_nizd ';
orderby_sql:=' order by 3,1 ';
query1.close;
query1.sql.Text:= select_sql + orderby_sql;
query1.open;
Так тоже не получается:
select_sql:= ' Select npr,id,cast (case when npr like ''%/%'' then substr(npr,1,pos(npr,''/'')-1) ';
select_sql:= select_sql+' else npr end as integer) from asu_nizd ';
подскажите, в чем м.б. проблема. СУБД - Informix
Anatoly Podgoretsky (2010-09-07 11:09:00) [1]А он что ТАКОЙ запрос пытается редактировать в гриде?
Это он погорячился.
Но меня смущает, что он утверждает, что это работает?
sniknik (2010-09-07 11:01:00) [2]> Попробовал внести текст запроса прямо в компонент - тоже не помогает.
это говорилось не потому, что поможет, а чтобы понять что происходит, и что я имел ввиду...
тупой перебор не пойми чего естественно не помогает...
> Но мне надо, чтобы query был редактируемым.
как редактировать вычисленное поле? что должно записаться, куда, и как это должен понять BDE/ODBC/... и т.д. по цепочке, что ты там используешь.
убери вычисления из запроса, сделай их на клиенте, и сам "рули" тем что записывается.
Anatoly Podgoretsky (2010-09-07 10:34:00) [3]Ну и пусть редактирует, раз работает.
rnts (2010-09-07 10:29:00) [4]Набор данных будет редактироваться пользователем
Anatoly Podgoretsky (2010-09-07 10:26:00) [5]Раз с RequestLive=false работает, то зачем тебе еще что то?
rnts (2010-09-07 10:06:00) [6]Обнаружил, что с RequestLive=false работает. Но мне надо, чтобы query был редактируемым. Попробовал внести текст запроса прямо в компонент - тоже не помогает. Можно ли сделать так, чтобы с requestLive=true запрос работал?
Спасибо!
sniknik (2010-09-07 02:57:00) [7]> pos, я сам добавил
со своим pos 2 вариант становится рабочим.
> имели ввиду tquery.params ?
внеси первый вариант в режиме разработки, прямо в компонент, да посмотри что получилось.
Loginov Dmitry (2010-09-06 23:12:00) [8]query1.ParamCheck := False;
?
rnts (2010-09-06 21:23:00) [9]
> sniknik © (06.09.10 16:30) [3]
> > СУБД - Informix
> Routine (pos) can not be resolved
да, хранимку, вычисляющую позицию символа в строке - pos, я сам добавил, в информиксе такой функции нет.
sniknik, под параметрами вы имели ввиду tquery.params ?
sniknik (2010-09-06 16:30:00) [10]> СУБД - Informix
Routine (pos) can not be resolved
sniknik (2010-09-06 16:26:00) [11]> в чем м.б. проблема.
в параметрах, ты их не видишь но они есть. как суслики. @ солдаты.
rnts (2010-09-06 15:26:00) [12]юзаю BDE