-
Подскажите пожалуйста, очень нужна помощь!!! Есть хранимая процедура на Pl/pgSQL(СУБД PostGreSQL) (fill_proba), я вызываю её следующим образом:
DataModule2.ADOQuery1.SQL.Text:='select * from "public".fill_proba(:p2)'; DataModule2.ADOQuery1.Parameters.ParamByName('p2').Value := DataModule2.FoxProQuery.Fields[1].Value; DataModule2.ADOQuery1.Active := true;
Проблема в том, что значение DataModule2.FoxProQuery.Fields[1].Value достигает 150 символов и Delphi выдает мне ошибку: ERROR: identifier too long DETAIL: Identifier must be less than 64 characters
Неужели нельзя, чтобы значение параметра было больше 64 символов? Если такой вариант возможен, то как этого добиться?
-
> чтобы значение параметра было больше 64 символов? вообщето ошибка говорит не про значение, а про идентификатор (имя). что там имеется в виду хз. (может моя ошибся в переводе?)
> Если такой вариант возможен, то как этого добиться? можно проверить процедуру, проследить чтобы параметр был подходящего типа и подходящего размера (char(150) или varchar или что там в пострессе)
-
Пробовал устанавливать у парметра всевозможные типы и размер, результат тот же. Интересно то. что когда пишу: DataModule2.ADOQuery1.SQL.Text:='select * from "public".fill_proba(:p2)'; DataModule2.ADOQuery1.Parameters.ParamByName('p2').Value := 'Привет'; Все работает отлично, но как только всместо 'Привет', значению параметра присваиваю что-то больше 63 символов, выдает ошибку ERROR: identifier too long DETAIL: Identifier must be less than 64 characters
Проблема точно не в PostgreSQl.
-
да не в нем, а в том как написана процедура. (имхо. не знаток посгреса)
-
ДЛЯ охотник за пивом(или пивной охотник) - ясно ж написано: идентификатор слишком длинный, ПОДРОБНОСТИ: идентификатор должен быть короче 64... символов.:-)
-
В процедуре нет проблемы, для входных параметров определен тип text- ну если и не безграничный, так уж точно больше 150 символов.
-
>Beer_Hunter (03.05.08 17:40) [5] >В процедуре нет проблемы, для входных параметров определен тип text- ну если и не безграничный, так уж точно больше 150 символов.
Точно больше ? Во-многих серверах есть длина чарактера по умолчанию. И она точно не больше 150
-
> В процедуре нет проблемы верится с трудом... че-то ты там мудришь. например с динамически составляемым запросом в котором значение параметра подставляется как имя поля/таблици.
хотя... чего уговаривать? сдесь (показанное) все нормально, и в процедуре (говоришь) тоже все хорошо... значит глюк от гремлина поселившегося в сервере постгресса... вызывай священника беса изгонять, а сюда ты не по адресу зашел. сдесь пустым заверениям не верят.
|