• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Кодировка в СУБД Interbase

  • Автор темы antosha_Z
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

antosha_Z

Проблема состоит в следующем:

Необхдимо создавать БД динамически в Delphi во время выполнения программы.
При создании БД стандартными методами компанента TDatabase возникает проблема в кодировке. Сама кодировка при создании БД передаеться (наша WIN1251), проверено на примере при извлечении метаданных из уже созданной БД. Но сама база данных в регистрейшен инфо пишет что кодировки нет никакой по умолчанию. Я не понимаю почему так происходит. Скрипт созданной базы из Delphi и скрипт созданной базы в IbExpert полностью совпадают. Можно ли как-то решить эту проблему.

2 вариант создания - исполнение самого SQL кода в Delphi в IBQuery. Ну здесь получаеться проблема еще с неначавщейся транзакцией для данной БД. может кто знает как решить и эту проблему?

Спасибо за внимание!
 
X

x77

смотрим синтаксис оператора CREATE DATABASE:

CREATE {DATABASE | SCHEMA} ’filespec’
[USER ’username’ [PASSWORD ’password’]]
[PAGE_SIZE [=] int]
[LENGTH [=] int [PAGE]]
[DEFAULT CHARACTER SET charset]
[<secondary_file>];

<secondary_file> = FILE ’filespec’ [<fileinfo>] [<secondary_file>]

<fileinfo> = LENGTH [=] int [PAGE] | STARTING [AT [PAGE]]
int [<fileinfo>]


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

Код:
 with IbDatabase1 do begin
DatabaseName := 'd:\test.gdb';
Params.Add('user ''SYSDBA''');
Params.Add('password ''masterkey''');
Params.Add('DEFAULT CHARACTER SET win1251');
CreateDatabase;
end;
end;
 
A

antosha_Z

не работает этот механизм, я уже пробовал раньше. Создаеться база с кирилической кодировкой (проверял созданную базу в эксперте), но при исполнении sql запроса, связаного с использованием строк в кирилице вылазит ошибка.
 
X

x77

механизм работает. проверено Электроником :blink: а ошибка вылазит, потому что при подключении к базе в TIbDatabase.Params должно стоять "lc_ctype=win1251".
 
A

antosha_Z

Спасибо за помощь. Все получилось, тема закрыта :))
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!