11.12.2010 17:10, Vlad Nepomnjashy пишет:
Firebird Server Version: WI-V2.5.0.26074 Firebird 2.5
CREATE DATABASE 'bdname' DEFAULT CHARACTER SET WIN1251;
Чарсет коннекта какой?
create procedure test (p_in varchar(256))
returns (p_out varchar(256))
as
begin
rdb$set_context('USER_SESSION', 'UNAME', :p_in);
p_out = coalesce(rdb$get_context('USER_SESSION', 'UNAME'), current_user);
suspend;
end
isql -u sysdba
execute procedure test('test')
--test
execute procedure test('тест') --не латиница
Invalid token
Mailformed string
At procedure TEST1 line 7 col 2
Бага или какие-то заморочки с кодировками?
Кстати, если заменить на
p_out = coalesce(rdb$get_context('USER_SESSION', 'UNAME'),
rdb$get_context('SYSTEM', 'CURRENT_USER'));
то все нормально.
CURRENT_USER возвращает строку в UTF8, контекстные переменные работают с
чарсетом коннекта.
--
Дмитрий Еманов