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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.005 c
15-1221719019
Slider007
2008-09-18 10:23
2008.11.16
С днем рождения ! 18 сентября 2008 четверг


11-1195526191
Danger
2007-11-20 05:36
2008.11.16
Эмулятор WinCE


4-1200427210
owa
2008-01-15 23:00
2008.11.16
Как по имени exe-файла узнать его процесс?


15-1221719515
Azize
2008-09-18 10:31
2008.11.16
Китайцы создали компьютер мощностью 230 триллионов операций в сек


15-1221765851
Sergio666
2008-09-18 23:24
2008.11.16
Delphi 2007 и символ подчеркивания





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский