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

Вниз

Параметризированный запрос   Найти похожие ветки 

 
Beer_Hunter   (2008-05-02 21:55) [0]

Подскажите пожалуйста, очень нужна помощь!!!
Есть хранимая процедура на 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 символов? Если такой вариант возможен, то как этого добиться?


 
sniknik ©   (2008-05-02 22:12) [1]

> чтобы значение параметра было больше 64 символов?
вообщето ошибка говорит не про значение, а про идентификатор (имя). что там имеется в виду хз. (может моя ошибся в переводе?)

> Если такой вариант возможен, то как этого добиться?
можно проверить процедуру, проследить чтобы параметр был подходящего типа и подходящего размера (char(150) или varchar или что там в пострессе)


 
Beer_Hunter   (2008-05-03 00:00) [2]

Пробовал устанавливать у парметра всевозможные типы и размер, результат тот же.
Интересно то. что когда пишу:
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.


 
sniknik ©   (2008-05-03 00:13) [3]

да не в нем, а в том как написана процедура. (имхо. не знаток посгреса)


 
Виталий Панасенко(дом)   (2008-05-03 16:25) [4]

ДЛЯ охотник за пивом(или пивной охотник) - ясно ж написано: идентификатор слишком длинный, ПОДРОБНОСТИ: идентификатор должен быть короче 64...
символов.:-)


 
Beer_Hunter   (2008-05-03 17:40) [5]

В процедуре нет проблемы, для входных параметров определен тип text- ну если и не безграничный, так уж точно больше 150 символов.


 
MsGuns ©   (2008-05-03 18:48) [6]

>Beer_Hunter   (03.05.08 17:40) [5]
>В процедуре нет проблемы, для входных параметров определен тип text- ну если и не безграничный, так уж точно больше 150 символов.

Точно больше ?
Во-многих серверах есть длина чарактера по умолчанию. И она точно не больше 150


 
sniknik ©   (2008-05-03 19:08) [7]

> В процедуре нет проблемы
верится с трудом... че-то ты там мудришь.  например с динамически составляемым запросом в котором значение параметра подставляется как имя поля/таблици.

хотя... чего уговаривать? сдесь (показанное) все нормально, и в процедуре (говоришь) тоже все хорошо... значит глюк от гремлина поселившегося в сервере постгресса... вызывай священника беса изгонять, а сюда ты не по адресу зашел. сдесь пустым заверениям не верят.



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

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

Наверх




Память: 0.48 MB
Время: 0.012 c
15-1221909590
Kostafey
2008-09-20 15:19
2008.11.16
С днем рождения ! 20 сентября


15-1221712150
KilkennyCat
2008-09-18 08:29
2008.11.16
О японцах и русском языке.


2-1223026415
Развёртка
2008-10-03 13:33
2008.11.16
Развернуть досовское окноий экран программы на весь экран


2-1223449935
JustI
2008-10-08 11:12
2008.11.16
TLargeIntField


2-1223549315
TStas
2008-10-09 14:48
2008.11.16
Зачем у сишных структур есть поле Size?