среда, 23 апреля 2008 г.

OpenOffice Macro security button bug #81230

В OpenOffice не работает кнопка Macro Security.

1) находим ~/.openoffice.org2/user/registry/data/org/openoffice/Office/Common.xcu
2) в секцию
<node oor:name="Security">
<node oor:name="Scripting">
...
</node>
</node>

вставляем свойство:
<prop oor:name="MacroSecurityLevel" oor:type="xs:int">
<value>1</value>
</prop>

Дислог по-прежнему не будет показываться, зато можно будет использовать макросы.

Говорят, это зависит от билда мозиллы при сборке ОО.
Источник.

понедельник, 21 апреля 2008 г.

Потрошим Interbase .gdb файлы

Interbase поразил очевидностью своей эксплуатации.

Была задача извлечь из .gdb файла содержимое и перелить в другую БД. Сразу скажу, что с Interbase я вообще никогда не сталкивался, поэтому рассуждения, что называется, с нуля.

Может быь я действительно такой криворукий, но мне не удалось ни запустить JDBC драйвер, ни воспользоваться родным клиентом.

Не буду упоминать все исхоженные пути, просто изложу самый короткий и работающий:

# emerge firebird -v
# cp /path/to/your/database-file.gdb /usr/lib/firebird/

На любителя, можно еще для гарантии добавить:
# chmod 666 /usr/lib/firebird/database-file.gdb

$ fbsql -u SYSDBA -p masterkey /usr/lib/firebird/database-file.gdb -ch WIN1251
Database: /usr/lib/firebird/database-file.gdb, User: SYSDBA
SQL>

Ура! В этот момент мы имеем работающую БД и консольку, откликающуюся на запросы.

Почему базу скопировали в /usr/lib/firebird ?
Потому что иначе не будет работать нестандартная кодировка. Можно настроить т.н. embeded вариант, но он предполагает наличие ./intl/fbintl.so в папке с программой, т.е. fbsql.
Я пробовал добавить это в папку с файлом базы, т.к. в Windows это кажись работало (как это делают в программах от Борланда, прости, Господи):
$ mkdir ./intl
$ cp /usr/lib/firebird/fbintl.so ./intl/
однако нифига счастливого не произошло. Будет дешевле скопировать саму базу куда положено.

Проверим, все ли так, как нам надо:
SQL> show tables;
SQL> select * from any_table;

Ну, а дальше все банально:
$ echo "select * from any_table;" > query.sql
$ fbsql -u SYSDBA -p masterkey /usr/lib/firebird/database-file.gdb -ch WIN1251 -i query.sql -o result-1251.txt -pag 99999
$ iconv -f cp1251 -t utf8 result-1251.txt > result-utf.txt

Теперь в result-utf.txt имеем выковыренные запросом данные. Изменение их вида и перегон в другую БД оставлю читателю.

P.S. все вышенаписанное проделано на Gentoo.