Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Переменная вместо имени поля в хранимой процедуре, FireBird / 5 сообщений из 5, страница 1 из 1
04.02.2003, 05:16
    #32100678
3D-Dragon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная вместо имени поля в хранимой процедуре, FireBird
Нужно в качестве входного параметра ХП передать имя поля, по которому будет делаться выборка значения из таблицы
Пишу ХП:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
ALTER PROCEDURE GET_COUNTRY (
   NAME_FIELD VARCHAR( 30 ),
RETURNS (
   SOME_VAR VARCHAR( 25 ))
AS
begin
 SELECT :NAME_FIELD
 FROM SOME_TABLE
 INTO :SOME_VAR;
end


Перед выполнением даю на вход ХП значение, например COUNTRY (такое поле есть в таблице)
Запускаю ХП получаю ошибку:

Overflow occurred during data type conversion.
conversion error from string "COUNTRY".


Научите, пож-та, правильно передать название поля внутрь ХП !
...
Рейтинг: 0 / 0
04.02.2003, 05:39
    #32100681
StarWind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная вместо имени поля в хранимой процедуре, FireBird
Насколько я помню в IB не было динамического построения запроса.... а именно это Вы и пытаетесь сделать.... В Oracle насколько я знаю такое удовольствие есть... а тут.... Хотя может я ошибаюсь, но что-то я не нашел ничего подобного...
...
Рейтинг: 0 / 0
02.09.2003, 15:30
    #32253804
oz
oz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная вместо имени поля в хранимой процедуре, FireBird
Насколько я понимаю, тебя устроит такая конструкция (FB 1.5):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
ALTER PROCEDURE GET_COUNTRY (
   NAME_FIELD VARCHAR( 30 ),
RETURNS (
   SOME_VAR VARCHAR( 25 ))
AS
begin
 FOR EXECUTE STATEMENT 'SELECT '||NAME_FIELD||' FROM SL_SOURCE' 
    INTO :NEW_PARAM 
    DO suspend;
end
...
Рейтинг: 0 / 0
02.09.2003, 15:51
    #32253840
KiLLun
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная вместо имени поля в хранимой процедуре, FireBird
А может intо :SOME_VAR?
...
Рейтинг: 0 / 0
02.09.2003, 16:21
    #32253886
oz
oz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная вместо имени поля в хранимой процедуре, FireBird
Ага, да... опИсался я, звыняюсь.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Переменная вместо имени поля в хранимой процедуре, FireBird / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]