Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переменная вместо имени поля в хранимой процедуре, FireBird 
:(
    Опции темы
3D-Dragon
Дата 4.2.2003, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 7.1.2003
Где: Днепропетровск, U A

Репутация: нет
Всего: нет



Нужно в качестве входного параметра ХП передать имя поля, по которому будет делаться выборка значения из таблицы
Пишу ХП

Код
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".


Научите, пож-та, правильно передать название поля внутрь ХП !

Это сообщение отредактировал(а) 3D-Dragon - 4.2.2003, 12:32
PM MAIL WWW ICQ   Вверх
Vit
Дата 4.2.2003, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: нет
Всего: 207



А какая база данных?


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
AntonSaburov
Дата 4.2.2003, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



FireBird - Interbase вообщем. Но я такие вещи не пробовал.
PM MAIL WWW ICQ   Вверх
Medved
Дата 4.2.2003, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: нет
Всего: 154



Я не совсем уверен, что это вообще возможно.......


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
3D-Dragon
Дата 4.2.2003, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 7.1.2003
Где: Днепропетровск, U A

Репутация: нет
Всего: нет



Pegas
Ты хочешь сказать, что так нельзя делать ?
PM MAIL WWW ICQ   Вверх
Baa
Дата 4.2.2003, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: нет
Всего: 12



есть предположение smile.gif
Overflow occurred during data type conversion.
conversion error from string "COUNTRY".
Исходя из этого, возможно, что
при выборке NAME_FIELD VARCHAR(30)
в SOME_VAR VARCHAR(25)) происходит переполнение из-за того, что конечная переменная меньше исходной.


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Medved
Дата 4.2.2003, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: нет
Всего: 154



3D-Dragon Такие сервера баз данных как Oracle и MSSQL не поддерживают такую возможность. Эта фитча не является официальным стандартом SQL, по крайней мере SQL-92. Насчет последнего стандарта не уверен, но думаю что там тоже она не описана.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
AntonSaburov
Дата 4.2.2003, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



У меня тоже подозрение, что так не получится.
Я помню, что в MS SQL можно было через вызов

exec "строка"

такую штуку провернуть. Но вот в Interbase - не знаю.

PM MAIL WWW ICQ   Вверх
3D-Dragon
Дата 5.2.2003, 03:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 7.1.2003
Где: Днепропетровск, U A

Репутация: нет
Всего: нет



Всем спасибо !
Реализовал без ХП простым запросом.

PM MAIL WWW ICQ   Вверх
AntonSaburov
Дата 6.2.2003, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



И стоило голову ломать, когда можно было на лету создать SELECT и получить результат
smile.gif
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0538 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.