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

Вниз

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

 
sunwheel ©   (2002-11-01 14:16) [0]

Возможно ли использовать переменную вместо имени поля в запросе, в хранимой процедуре? Делаю примерно так:


CREATE PROCEDURE GETNEXTNUMBER (
FIELDNAME VARCHAR(254))
RETURNS (
RESULT INTEGER)
AS
DECLARE VARIABLE FFIELDNAME INTEGER;
begin
FIELDNAME = "F_IDNkl1"; /* Это для примера */
SELECT :FIELDNAME FROM IDNUMS
WHERE F_FIRST=1
INTO :FFIELDNAME;
...


На SELECT"е вылетает ошибка "Invalid variant type conversion"
Хотелось бы знать возможно ли вообще, как-либо, использовать переменные в качестве имени поля в запросах. Буду признателен за любой совет или ссылку.


 
Johnmen ©   (2002-11-01 14:24) [1]

Нельзя. Т.к. фактически это не параметр, а макроподстановка.


 
Alexandr ©   (2002-11-01 14:24) [2]

нет.
Выбери все поля которые нужны, а потом, в зависимости от признака, нужное поле на выход и подай


 
sunwheel ©   (2002-11-01 14:35) [3]

>Johnmen © (01.11.02 14:24)
Хреново, что нельзя, а так было бы все просто. :(

>Alexandr © (01.11.02 14:24)
Не совсем тебя понял, не мог бы ты на каком-нибудь примере пояснить?


 
Alexandr ©   (2002-11-01 14:41) [4]

CREATE PROCEDURE GETNEXTNUMBER (
FIELDNAME VARCHAR(254))
RETURNS (
RESULT INTEGER)
AS
DECLARE VARIABLE FFIELDNAME1 INTEGER;
DECLARE VARIABLE FFIELDNAME2 INTEGER;
DECLARE VARIABLE FFIELDNAME3 INTEGER;
DECLARE VARIABLE FFIELDNAME4 INTEGER;
DECLARE VARIABLE FFIELDNAME INTEGER;
begin
FIELDNAME = "F_IDNkl1"; /* Это для примера */
SELECT F_IDNkl1,F_IDNkl2,F_IDNkl3,F_IDNkl4 FROM IDNUMS
WHERE F_FIRST=1
INTO :FFIELDNAME1,:FFIELDNAME2,:FFIELDNAME3,:FFIELDNAME4;
if FIELDNAME="F_IDNkl1" then ffieldname=ffieldname1;
if FIELDNAME="F_IDNkl2" then ffieldname=ffieldname2;
if FIELDNAME="F_IDNkl3" then ffieldname=ffieldname3;
if FIELDNAME="F_IDNkl4" then ffieldname=ffieldname4;
....

теперь-то понял?



 
sunwheel ©   (2002-11-01 14:47) [5]

Спасибо, теперь понятно. Но это не то, что мне нужно, забыл сказать, что в таблице количество полей не постоянно. Ну что ж, придется через UDF все это реализовывать. :(
Всем спасибо.


 
Alexandr ©   (2002-11-01 14:50) [6]

не понял, как это "количество полей в таблице непостоянно".
и не понял, как эту задачу решить с помощью udf.

А впрочем, и фиг с ней.



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

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

Наверх




Память: 0.48 MB
Время: 0.015 c
1-69277
neXt
2002-11-11 14:50
2002.11.21
Справка html -> chm


6-69459
oleg_er
2002-09-26 07:05
2002.11.21
трудный вопрос - использование сетевой карты по выбору


7-69609
Донской
2002-09-20 18:19
2002.11.21
Нестандартная скорость обмена с портом


3-69162
Шурик Ш
2002-10-31 13:51
2002.11.21
Календарь под кнопочкой


1-69417
Cheester[X3]
2002-11-10 17:45
2002.11.21
Buttonы