Работа с файламы штатными средствами Firebird

Abdusaid Razokov
Дата: 05.06.2012 08:34:24
Добрый день коллеги. Появилась задача формировать xml файл при определенных событиях. Например после insert/update таблицы. Ясно что в триггерах посадим эту задачу. Вот создание текстового файла и запись туда информации как организовать не сталкивался. Подскажите пути решения штатными средствами как создается текстовый файл и записывается туда информация.

Заранее всем спасибо.
Abdusaid Razokov
Дата: 05.06.2012 08:47:15
Вот нашел это
ibec_SaveToFile('c:\test\test.txt','Тест записи',__stfOverwrite)
Abdusaid Razokov
Дата: 05.06.2012 08:50:48
Не сработало к сожалению.
miwaonline
Дата: 05.06.2012 08:52:34
Abdusaid Razokov,

Firebird с файлами не работает. Разве что с внешними таблицами, но, судя по контексту вопроса, это не то.
Abdusaid Razokov
Дата: 05.06.2012 08:58:56
А UDF готовый есть для работы с файлом?
Таблоид
Дата: 05.06.2012 08:59:15
Abdusaid Razokov,

1) firebird.conf: установите ExternalFileAccess = Full, затем рестарт ФБ
2) test:
C:\1INSTALL\FIREBIRD\Data>isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> create database 'tmp120605.fdb'; commit;
SQL> create table my_table EXTERNAL FILE 'C:\TEMP\my_table.txt'(xml char(2048), crlf char(2));
SQL> commit;
SQL> insert into my_table values('<title>Hello World!</title>', ascii_char(13)||ascii_char(10));
SQL> insert into my_table values('<body>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor inci
didunt ut labore et dolore magna aliqua.</body>', ascii_char(13)||ascii_char(10));
SQL> commit;
SQL> quit;

4) result:
C:\TEMP>echo --- the end --- >> C:\TEMP\MY_TABLE.TXT


C:\TEMP>type C:\TEMP\MY_TABLE.TXT
<title>Hello World!</title>
















<body>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna al
iqua.</body>















--- the end ---
rstrelba
Дата: 05.06.2012 09:39:20
Abdusaid Razokov,

сомневаюсь что xml файл нужно формировать в риалтайме.
Если я прав, то можно запланировать запуск внешнего
скрипта для его формирования.
kdv
Дата: 05.06.2012 09:59:04
Abdusaid Razokov
А UDF готовый есть для работы с файлом?

полно всяких. только они "готовы" не к тому, что тебе надо. если "хочу записать xml в файл", то берешь подходящую udf в качестве болванки, и пишешь сам.
Abdusaid Razokov
Дата: 05.06.2012 10:56:41
kdv
Abdusaid Razokov
А UDF готовый есть для работы с файлом?

полно всяких. только они "готовы" не к тому, что тебе надо. если "хочу записать xml в файл", то берешь подходящую udf в качестве болванки, и пишешь сам.


Где искать. Мне нужно простой запись в файл. Сообщение xml я формирую в текстовом варианте и он записывается в базу данных в таблицу экпорта, т.е. готовый содержание файла у меня есть. Только надо записать в текстовый файл.
Граур Станислав
Дата: 05.06.2012 11:11:52
Abdusaid Razokov
Появилась задача формировать xml файл при определенных событиях. Например после insert/update таблицы. Ясно что в триггерах посадим эту задачу.


Abdusaid Razokov
Сообщение xml я формирую в текстовом варианте и он записывается в базу данных в таблицу экпорта, т.е. готовый содержание файла у меня есть. Только надо записать в текстовый файл.


Т.е. на момент сработки триггера содержимое файла сформировано и находится в одном из полей таблицы?
А триггер просто делает xmlField->file ?

Почему бы не формировать этот файл с клиента?
Что будет с файлом при rollback транзакции?