Приветствую Вас Гость | RSS

Delphi заготовки

Пятница, 10.05.2024, 14:51
Главная » 2012 » Июнь » 4 » Для подключения к Базе данных «FireBird 2.5» необходимо использовать следующий параметры
08:47
Для подключения к Базе данных «FireBird 2.5» необходимо использовать следующий параметры

UTF кодировка при подключении к базе данных FireBird

   В базе данных FireBird при внесении изменений в текст хранимой процедуры возникает сообщение вида


The next statement causes the following error:

—This operation is not defined for system tables.
unsuccessful metadata update.
STORE RDB$RELATIONS failed.
Malformed string.

или

—This operation is not defined for system tables.
unsuccessful metadata update.
MODIFY TRIGGER failed.
Malformed string.

или

—This operation is not defined for system tables.
unsuccessful metadata update.
MODIFY RDB$PROCEDURES failed.
Malformed string.

ответ с сайта
   http://www.mail-archive.com/ru-firebird@googlegroups.com/msg34063.html

 Потому что сервер не делает преобразования для NONE, а метаданные
хранятся в UTF8. Задавай правильно чарсет соединения, или пиши скрипты
в UTF8 сам.

для этого необходимо в свойствах компонента TIBDatabase прописать добавить свойство
DEFAULT CHARACTER SET utf8

пример для подключения (просто скопируйте в Delphi)


object IBDatabase1: TIBDatabase
DatabaseName = '192.168.0.1:MyDatabase'
Params.Strings = (
'user_name=<Ваш логин>'
'password=<Ваш пароль>'
'lc_ctype=UTF8'
LoginPrompt = False
DefaultTransaction = IBTransaction2
IdleTimer = 0
SQLDialect = 1
TraceFlags = []
AllowStreamedConnected = False
Left = 256
Top = 160
end



object IBQuery4: TIBQuery
Database = IBDatabase1
Transaction = IBTransaction2
BufferChunks = 1000
CachedUpdates = True
ParamCheck = False
SQL.Strings = (
'<sql запрос> ')
Left = 224
Top = 160
end
object IBSQL1: TIBSQL
Database = IBDatabase1
ParamCheck = True
Transaction = IBTransaction2
Left = 228
Top = 192
end
object IBQuery1: TIBQuery
Database = IBDatabase1
Transaction = IBTransaction2
BufferChunks = 1000
CachedUpdates = True
ParamCheck = False
SQL.Strings = (
'<sql запрос> ')
UpdateObject = IBUpdateSQL3
Left = 232
Top = 224
end
object IBTransaction2: TIBTransaction
Active = False
AutoStopAction = saNone
Left = 328
Top = 160
end


p.s
по умолчанию логин для FireBird SYSDBA 
по умолчанию пароль для FireBird masterkey
DEFAULT CHARACTER SET utf8 задает кодировку по умолчанию
Просмотров: 4609 | Добавил: NetSoftWare | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: