Использование UNICODE_FSS
Использование UNICODE_FSS
Если у меня, например, определено в таблице поле типа varchar(10) в кодировке UNICODE_FSS и я передаю его в качестве параметра в хранимую процедуру, то в хранимой процедуре я должен описать параметр как varchar(10) или как varchar(30)?
вообще как varchar(30), но ... дело в том, что полноценно с юникодом можно работать только если
1. работа идет с ibx/fibplus/ibapi и все строки вручную переводятся в юникод туда и обратно
2. работа идет через EasySoft ODBC (unicode-вариант) или IBProvider (www.ibprovider.com/rus).
См. http://www.ibase.ru/devinfo/ib_unicode.htm
1. работа идет с ibx/fibplus/ibapi и все строки вручную переводятся в юникод туда и обратно
2. работа идет через EasySoft ODBC (unicode-вариант) или IBProvider (www.ibprovider.com/rus).
См. http://www.ibase.ru/devinfo/ib_unicode.htm
Я работаю на С#(VS2003), CУБД FireBird 1.5 через FirebirdNETProvider 1.7, так что проблем с перекодировкой нет вообще. Странно, что до сего момента я не умножал на три длины строк в параметра SP и все вроде бы работало (сомнения заронил IbExpert когда генерил тект SP c умножением на три). Теперь наверное надо будет умножать на три.
Re: Использование UNICODE_FSS
Если у тебя база в unicode_fss, то надо описывать как varchar(10), иначе как varchar(10) character set unicode_fss. Никаких varchar(30) быть не должно.fsharykin писал(а):Если у меня, например, определено в таблице поле типа varchar(10) в кодировке UNICODE_FSS и я передаю его в качестве параметра в хранимую процедуру, то в хранимой процедуре я должен описать параметр как varchar(10) или как varchar(30)?