Подскажите как в Хранимой процедуре Inter Base?
От: tashkinov  
Дата: 26.01.04 08:55
Оценка:
Заранее прошу за возможно простой вопрос , но отсутствие хорошей литературы по данному вопросу
не позволяет мне найти решение.

Ниже я привожу процедуру .
Вопрос как мне в предложении FROM подставить входной строковой параметр In_GDB

alter procedure VXOD_TKG (BSUBSC VARCHAR(8),start_date VARCHAR(8),end_date VARCHAR(8),In_GDB VARCHAR(6) )
returns (out_a VARCHAR(15),CALL_DATE DATE,STRTIME VARCHAR(8),DURATION VARCHAR(8))
as
DECLARE VARIABLE temp VARCHAR(8);

begin
for
select ASUBSCNUM,CALL_DATE,STRTIME,DURATION
from ????????????????????????????!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
where BSUBSCNUM=:BSUBSC
into :out_a, :CALL_DATE, :STRTIME, :DURATION
do
begin

select MNEM
from TKGID
where TKGID=:out_a
into :temp;
if (:temp is null) then temp='';
else
select MNEM
from TKGID
where TKGID=:out_a
into :out_a;

suspend;
end

end
Re: Подскажите как в Хранимой процедуре Inter Base?
От: Alex.Che  
Дата: 26.01.04 09:32
Оценка:
Привет, tashkinov!
Вы пишешь 26 января 2004:

[Sorry, skipped]
t> Вопрос как мне в предложении FROM подставить входной строковой параметр In_GDB

Встречный вопрос: а In_GDB, это у тебя чего такое?

--
With best regards, Alex Cherednichenko.
Posted via RSDN NNTP Server 1.8 beta
Re[2]: Подскажите как в Хранимой процедуре Inter Base?
От: tashkinov  
Дата: 26.01.04 09:43
Оценка:
Здравствуйте, Alex.Che, Вы писали:

AC>Привет, tashkinov!

AC>Вы пишешь 26 января 2004:

AC>[Sorry, skipped]

t>> Вопрос как мне в предложении FROM подставить входной строковой параметр In_GDB

AC>Встречный вопрос: а In_GDB, это у тебя чего такое?


Я хочу имя таблицы в селект процедуры передать с помощью этой входноцй переменной при обращении к процедуре

AC>--

AC>With best regards, Alex Cherednichenko.
Re: Подскажите как в Хранимой процедуре Inter Base?
От: Romkin  
Дата: 26.01.04 09:44
Оценка:
Здравствуйте, tashkinov, Вы писали:

T>Вопрос как мне в предложении FROM подставить входной строковой параметр In_GDB


T>alter procedure VXOD_TKG (BSUBSC VARCHAR(8),start_date VARCHAR(8),end_date VARCHAR(8),In_GDB VARCHAR(6) )

T>returns (out_a VARCHAR(15),CALL_DATE DATE,STRTIME VARCHAR(8),DURATION VARCHAR(8))
T>as
T>DECLARE VARIABLE temp VARCHAR(8);

T>begin

T>for
T>select ASUBSCNUM,CALL_DATE,STRTIME,DURATION
T>from ????????????????????????????!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
T>where BSUBSCNUM=:BSUBSC
T>into :out_a, :CALL_DATE, :STRTIME, :DURATION
T>do
T>begin

А никак Это у тебя имя таблицы, из которой хочешь данные получить? Это просто недопустимо. Кстати, проектировать БД надо так, чтобы такой надобности вообще не возникало...
Пиши через if, если так уж надо
Re: Подскажите как в Хранимой процедуре Inter Base?
От: Igor Trofimov  
Дата: 26.01.04 17:17
Оценка:
Получится это только в самых последних версиях FireBird, где есть EXECUTE VARCHAR (динамический SQL в процедурах)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.