Interbase 'SET NAMES'
6 отговора
153 прегледа
Interbase 'SET NAMES'
Здравейте имам следния проблем:
Динамично създавам IBDatabase и IBTransaction .
До тук добре, но как мога да задам SET NAMES = WIN1251 преди Connection към базата данни?
Динамично създавам IBDatabase и IBTransaction .
with IBdb do begin
DatabaseName := dbPath;
DefaultTransaction := IBtr;
LoginPrompt := False;
SQLDialect := 3;
with Params do begin
Add('user_name=sysdba');
Add('password=masterkey');
Add('lc_ctype=WIN1251');
end;
Connected := True;
end;
with IBtr do begin
DefaultDatabase := IBdb;
Active := True;
end;
До тук добре, но как мога да задам SET NAMES = WIN1251 преди Connection към базата данни?
Re: Interbase 'SET NAMES'
Ти си го задал
Add('lc_ctype=WIN1251');
Set Names e аналогичната инструкция в скриптовете на ISQL
Add('lc_ctype=WIN1251');
Set Names e аналогичната инструкция в скриптовете на ISQL
Re: Interbase 'SET NAMES'
Да но в този случай UPPER не работи с кирилица.
Ако задам SET NAMES = WIN1251 при CREATE DATABASE или при CONNECT DATABASE в IBExpert - UPPER си работи с кирилица.
Друг въпрос. Как мога в Делфи от Run-time при създаване на база данни за Interbase server да задам DEFAULT CHARACTER SET = WIN1251?
Цялата работа е заради LIKE UPPER('%SomeCyrlStr%').
Ако задам SET NAMES = WIN1251 при CREATE DATABASE или при CONNECT DATABASE в IBExpert - UPPER си работи с кирилица.
Друг въпрос. Как мога в Делфи от Run-time при създаване на база данни за Interbase server да задам DEFAULT CHARACTER SET = WIN1251?
Цялата работа е заради LIKE UPPER('%SomeCyrlStr%').
Re: Interbase 'SET NAMES'
В отговор на:Цялата работа е заради LIKE UPPER('%SomeCyrlStr%')
1. Чети за Collate
2. Не ползвай IB6.0. Аз предпочитам FB1.5
3. Провери за наличието на %InstallDir%\intl\??intl.dll
DEFAULT CHARACTER SET се задава в CREATE DATABASE, но то ти спестява само писането на CHARACTER SET за всяко символно поле/променлива/параметър.
Re: Interbase 'SET NAMES'
3. Провери за наличието на %InstallDir%\intl\??intl.dll
Това не ми е ясно защо?
Re: Interbase 'SET NAMES'
INTernational Language
Необходим за да работи Collate за неанглийски
Необходим за да работи Collate за неанглийски
Re: Interbase 'SET NAMES'
Във Interbase и Firebird 1.0 collate WIN1251 не работи. Трябва да използваш PXWL_CYR. Във Firebird 1.5 го оправиха.