2013-03-21 3 views

ответ

3

Я не эксперт в Firebird, но я считаю, что это будет что-то вроде этого ...

set term^; 

EXECUTE BLOCK 
AS 
DECLARE VARIABLE x int; 
BEGIN 
    x = 1; 
    --do whatever you want with x, there's no such thing 
    --as to select the variable value to print it 
END 
^ 

set term ;^
4

Чтобы определить пользовательскую переменную сеансовой в Firebird вы можете использовать rdb$set_context.

корреспондент Firbird-код для MySql-примера будет:

select rdb$set_context('USER_SESSION', 'x', 1) from rdb$database 
select rdb$get_context('USER_SESSION', 'x') from rdb$database 

Примечания:

1.) Имейте в виду, что имена переменных чувствительны к регистру.

2.) Внутренне изменяемые значения: stored with datatype VARCHAR(255) и таким образом литые до VARCHAR(255) !!

3.) Максимальное количество переменных 1000.

4.) Вам не нужно обращаться к rdb$database:

select rdb$get_context('USER_SESSION', 'x') from some_table_name 

будет работать.

Смежные вопросы