Firebird Сортировка по умолчанию

При создании базы данных Firebird с использованием приведенного ниже SQL-кода он не следует заданному сопоставлению по умолчанию. Но если я изменю параметры сортировки по умолчанию после создания базы данных, это сработает.

Это создает базу данных, которая имеет параметры сортировки по умолчанию UTF8. Я попытался опустить параметр для CharacterSet, но это создаст базу данных без набора символов вместо набора символов, предоставляемого оператором sql.

редактировать: добавление компонента настройки

fConnection.Params.Add(Format('DriverID=%s',          ['IB']));
fConnection.Params.Add(Format('Database=%s',          [vDBFile]));
fConnection.Params.Add(Format('CharacterSet=%s',      ['UTF8']));
fConnection.Params.Add(Format('user_name=%s',         ['sysdba']));
fConnection.Params.Add(Format('password=%s',          ['masterkey']));
fConnection.Params.Add(Format('ExtendedMetadata=%s',  ['True']));
fConnection.Params.Add(Format('CreateDatabase=%s',    ['Yes']));
fConnection.Params.Add(Format('Protocol=%s',          ['TCPIP']));
fConnection.Params.Add(Format('Server=%s',            [pInfo.xServer]));

vScript := TADScript.Create(nil);
vScript.Connection := fConnection;
vScript.Transaction := fTransaction;

vScript.SQLScripts.Add.SQL.Text := 
    {leaving out quotes for readability}
    SET SQL DIALECT 3;
    SET CLIENTLIB 'c:\Firebird\fbclient.dll';
    CREATE DATABASE 'TEST'
      USER 'sysdba' PASSWORD 'masterkey'
      PAGE_SIZE 16384
      DEFAULT CHARACTER SET UTF8 COLLATION UNICODE_CI_AI;

vScript.ValidateAll;
vScript.ExecuteAll;

Выполнение следующего SQL после создания базы данных изменит параметры сортировки по умолчанию на UNICODE_CI_AI

ALTER CHARACTER SET UTF8 SET DEFAULT COLLATION UNICODE_CI_AI

Какой SQL я должен использовать, чтобы параметры сортировки по умолчанию были правильно установлены при создании базы данных?

В настоящее время я использую Firebird 2.5.5 и обращаюсь к нему из Delphi 2006 с помощью компонентов AnyDac.

0 ответов

Другие вопросы по тегам