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 задает кодировку по умолчанию
|