Страница 1 из 1
Firebird-2.5 MODIFY RDB$PROCEDURES failed
Добавлено: 20 фев 2011, 13:58
Konstantin
Firebird-2.5.0.26074-0_Win32
База charset win1251
В Ibexpert Выполняется скрипт все нормально! Проходит без ошибок.
ALTER PROCEDURE SP_WEEK_NEW(PDATE DATE)
......
exception Ex_Attention 'Пустая дата';
-- есть коменты на русском языке -- есть ли
пытаюсь тотже самый скрипт выполнить через IBEScript.dll
получаю сообщение
------- ERROR --------
This operation is not defined for system tables.
unsuccessful metadata update.
MODIFY RDB$PROCEDURES failed.
Malformed string.
при переходе с 2.1 на 2.5 делал это
- 2. SQL> input 'misc/upgrade/metadata/metadata_charset_create.sql';
- 3. SQL> select * from rdb$fix_metadata('WIN1251');
- 4. SQL> commit;
Сделал бакап базы.
При ресторе указал fix mailformed UNICODE_FSS data using charset WIN1251
Fix mailformed UNICODE_FSS metadata using charset WIN1251
Таже самое.
В Ibexpert Выполняется скрипт а через IBEScript.dll нет
(коннет в IBEScript.dll win1251 )
Проверил версии fbclient.dll Ibexpert и для IBEScript.dll одна и таже (размером 548864)
посмотрел в fileMonitor fbclient.dll берет с этой же директории.
Как избавиться от ошибки?
IBEScript.dll - тут ни причем.
Re: Firebird-2.5 MODIFY RDB$PROCEDURES failed
Добавлено: 20 фев 2011, 14:31
Dimitry Sibiryakov
Konstantin писал(а):(коннет в IBEScript.dll win1251 )
Либо это не так, либо в IBEScript.dll баг.
Re: Firebird-2.5 MODIFY RDB$PROCEDURES failed
Добавлено: 20 фев 2011, 18:43
Konstantin
Разработчикам IbExpert писал.
Ответ: Почему не альтерится - я не знаю, это не ко мне вопрос и не к скриптеру.
Гранты то раздались. Ошибку возвращает Сервер.
Может все таки что с базой? Как проверить?
Вроде все работает нормально. Bacup-ресторе без ошибок.
Re: Firebird-2.5 MODIFY RDB$PROCEDURES failed
Добавлено: 20 фев 2011, 19:37
hvlad
Konstantin писал(а):при переходе с 2.1 на 2.5 делал это
- 2. SQL> input 'misc/upgrade/metadata/metadata_charset_create.sql';
- 3. SQL> select * from rdb$fix_metadata('WIN1251');
- 4. SQL> commit;
Зачем ???
Re: Firebird-2.5 MODIFY RDB$PROCEDURES failed
Добавлено: 21 фев 2011, 15:22
Konstantin
hvlad писал(а):hvlad
Это уже начал делать эксперименты.
Сделал бакап в 2.1 востановил без rdb$fix_metadata.
Тоже самое в Ibexpert выполняются все скрипты
через IBEScript.dll не проходит....
Re: Firebird-2.5 MODIFY RDB$PROCEDURES failed
Добавлено: 21 фев 2011, 15:53
hvlad
Konstantin писал(а):Это уже начал делать эксперименты.
Не надо делать такие эксперименты. Нужно просто использовать -fix_fss_XXX
Для выяснения отличий IBE от IBEScript можно воспользоваться, например, трейсом...
Re: Firebird-2.5 MODIFY RDB$PROCEDURES failed
Добавлено: 22 фев 2011, 15:59
Konstantin
Код: Выделить всё
select cast(12 as integer), cast(rdb$field_length as varchar(64)), cast(' ' as
varchar(64)) from rdb$fields
where (rdb$field_name = 'RDB$MESSAGE')
union
...
длинный запрос
2011-02-22T18:47:17.6870 (708:014FC254) EXECUTE_STATEMENT_FINISH
C:\TMP\test.FDB (ATT_23, SYSDBA:NONE, NONE, TCPv4:127.0.0.1)
E:\Update.exe:2588
(TRA_717, READ_COMMITTED | REC_VERSION | NOWAIT | READ_WRITE)
Statement 589:
2011-02-22T18:47:17.6870 (708:014FC254) COMMIT_TRANSACTION
C:\TMP\test.FDB (ATT_23, SYSDBA:NONE, NONE, TCPv4:127.0.0.1)
E:\Update.exe:2588 (TRA_717, READ_COMMITTED | REC_VERSION | NOWAIT | READ_WRITE)
0 ms, 1 write(s), 1 fetch(es), 1 mark(s)
2011-02-22T18:47:17.6870 (708:014FC254) START_TRANSACTION
C:\TMP\test.FDB (ATT_23, SYSDBA:NONE, NONE, TCPv4:127.0.0.1)
E:\Update.exe:2588 (TRA_718, READ_COMMITTED | REC_VERSION | NOWAIT | READ_WRITE)
2011-02-22T18:47:17.6870 (708:014FC254) EXECUTE_STATEMENT_START
C:\TMP\test.FDB (ATT_23, SYSDBA:NONE, NONE, TCPv4:127.0.0.1)
E:\Update.exe:2588 (TRA_718, READ_COMMITTED | REC_VERSION | NOWAIT | READ_WRITE)
-------------------------------------------------------------------------------
create or alter procedure SP_WEEK_NEW (
Дальше весь текст процедуры
Код: Выделить всё
вконце
2011-02-22T18:47:17.7030 (708:014FC254) [b]FAILED EXECUTE_STATEMENT_FINISH[/b]
C:\TMP\test.FDB (ATT_23, SYSDBA:NONE, NONE, TCPv4:127.0.0.1)
E:\Update.exe:2588 (TRA_718, READ_COMMITTED | REC_VERSION | NOWAIT | READ_WRITE)
-------------------------------------------------------------------------------
create or alter procedure SP_WEEK_NEW (
опять текст процедуры
В конце такое
Код: Выделить всё
0 records fetched
0 ms
2011-02-22T18:47:17.7030 (708:014FC254) ROLLBACK_TRANSACTION
C:\TMP\test.FDB (ATT_23, SYSDBA:NONE, NONE, TCPv4:127.0.0.1)
E:\Update.exe:2588 (TRA_718, READ_COMMITTED | REC_VERSION | NOWAIT | READ_WRITE)
0 ms, 4 write(s), 1 fetch(es), 1 mark(s)
2011-02-22T18:47:17.7030 (708:014FC254) DETACH_DATABASE
C:\TMP\test.FDB (ATT_23, SYSDBA:NONE, NONE, TCPv4:127.0.0.1)
E:\Update.exe:2588
2011-02-22T18:47:17.7030 (708:014FC254) TRACE_FINI SESSION_5 my_trace
Запускаю так
fbtracemgr.exe -USER SYSDBA -PASS masterkey -SE service_mgr -START -NAME my_trace -CONFIG fbtrace_02.conf
fbtrace_02.conf
Код: Выделить всё
<database C:\TMP\test.FDB >
enabled true
log_filename C:\1.log
log_connections true
log_transactions true
log_statement_start true
log_statement_finish true
log_statement_start true
time_threshold 0
max_sql_length 64000
max_arg_length 64000
max_arg_count 90
</database>
C:\1.log почему то не создается.
Re: Firebird-2.5 MODIFY RDB$PROCEDURES failed
Добавлено: 22 фев 2011, 16:10
Konstantin
В IbExperte
начало нет в командной строке, а лог почему то не создается.
Код: Выделить всё
концовка процедуры
suspend;
end
2011-02-22T19:05:01.4530 (708:014FC318) EXECUTE_STATEMENT_FINISH
C:\TMP\test.FDB (ATT_24, SYSDBA:NONE, WIN1251, TCPv4:127.0.0.1)
D:\DB\FB\HK-Software\IBExpert\ibexpert.exe:2308 (TRA_771, READ_COMMITTED | REC_VERSION | NOWAIT | READ_WRITE)
-------------------------------------------------------------------------------
CREATE OR ALTER procedure SP_WEEK_NEW (
дальше опять весь текст процедуры
Код: Выделить всё
0 records fetched
0 ms
2011-02-22T19:05:01.4680 (708:014FC318) EXECUTE_STATEMENT_START
C:\TMP\test.FDB (ATT_24, SYSDBA:NONE, WIN1251, TCPv4:127.0.0.1)
D:\DB\FB\HK-Software\IBExpert\ibexpert.exe:2308 (TRA_771, READ_COMMITTED | REC_VERSION | NOWAIT | READ_WRITE)
-------------------------------------------------------------------------------
GRANT EXECUTE ON PROCEDURE SP_WEEK_GET_DATE TO PROCEDURE SP_WEEK_NEW
2011-02-22T19:05:01.4680 (708:014FC318) EXECUTE_STATEMENT_FINISH
C:\TMP\test.FDB (ATT_24, SYSDBA:NONE, WIN1251, TCPv4:127.0.0.1)
D:\DB\FB\HK-Software\IBExpert\ibexpert.exe:2308 (TRA_771, READ_COMMITTED | REC_VERSION | NOWAIT | READ_WRITE)
Дальше идут раздачи грантов.
Текс процедуры передается одинаковый. разница только в окончание
в первом случае FAILED EXECUTE_STATEMENT_FINISH
(ATT_23, SYSDBA:NONE, NONE, TCPv4:127.0.0.1)
во втором EXECUTE_STATEMENT_FINISH
(ATT_24, SYSDBA: NONE, WIN1251, TCPv4:127.0.0.1)
Похоже не передалось WIN1251.
хотя в начале скрипта стоит
И в с троке коннекта к длл указывается
c_ctype=WIN1251;
Re: Firebird-2.5 MODIFY RDB$PROCEDURES failed
Добавлено: 22 фев 2011, 17:06
hvlad
Konstantin писал(а):
Текс процедуры передается одинаковый. разница только в окончание
в первом случае FAILED EXECUTE_STATEMENT_FINISH
(ATT_23, SYSDBA:NONE, NONE, TCPv4:127.0.0.1)
во втором EXECUTE_STATEMENT_FINISH
(ATT_24, SYSDBA: NONE, WIN1251, TCPv4:127.0.0.1)
Похоже не передалось WIN1251.
Именно
Konstantin писал(а):хотя в начале скрипта стоит
И в с троке коннекта к длл указывается
c_ctype=WIN1251;
Коннект к длл ?
c_ctype ?
Re: Firebird-2.5 MODIFY RDB$PROCEDURES failed
Добавлено: 22 фев 2011, 17:09
hvlad
Konstantin писал(а):Запускаю так
fbtracemgr.exe -USER SYSDBA -PASS masterkey -SE service_mgr -START -NAME my_trace -CONFIG fbtrace_02.conf
Это интерактивная трейс-сессия. Она получает результаты от сервиса и выдаёт тебе на экран.
Konstantin писал(а):fbtrace_02.conf
Код: Выделить всё
<database C:\TMP\test.FDB >
enabled true
log_filename C:\1.log
log_connections true
log_transactions true
log_statement_start true
log_statement_finish true
log_statement_start true
time_threshold 0
max_sql_length 64000
max_arg_length 64000
max_arg_count 90
</database>
C:\1.log почему то не создается.
Потому что см выше.
log_filename используется только аудитом.
Документацию читать когда будем ?
Re: Firebird-2.5 MODIFY RDB$PROCEDURES failed
Добавлено: 23 фев 2011, 08:23
Konstantin
Действительно пропустил букву в
lc_ctype=WIN1251;
В этом все проблема.
log_filename используется только аудитом.
если бы он был назван
log_audit_filename
я посмотрел лог - значит лог....
В командную строку все сыпет и начало пропадает ....
Если ничего не получается - уже тогда читают инстукции и документации..
Вопрос закрыт. Всем спасибо....