Fórum Dá pra fazer uma trigger gravar num txt? #42791

04/03/2004

0

Minnha intensão eh fazer um log de operações....
Aceito sugestões...

ABS


Logado

Logado

Responder

Posts

05/03/2004

Gandalf.nho

Use tabela externa ou crie uma UDF que crie esse arquivo para você.


Responder

Gostei + 0

07/03/2004

Logado

Não saco absolutamente nada de UDF´s... poderia me dar alguma dicas?

Valeu


Responder

Gostei + 0

07/03/2004

Afarias

Este é um exemplo de UDF para lidar com arquivos::

http://www.ibphoenix.com/downloads/extfileudf.zip


Mas, tenha em mente o seguinte::

Tanto com EXTERNAL TABLES quanto com UDFs seu LOG estará fora do contexto das transações -- sendo assim, mesmo q um ROLLBACK seja dado em determinada operação, o LOG constará q a operação foi realizada.


T+


Responder

Gostei + 0

07/03/2004

Logado

hummm...

Interessante! tem alguma forma disso naum acontecer? a propósito, oq saum EXTERNAL TABLES?


Responder

Gostei + 0

07/03/2004

Afarias

|Interessante! tem alguma forma disso naum acontecer?

Não... mas uma dica é guardar seu log em tabelas internas (normais)


|a propósito, oq saum EXTERNAL TABLES?

Tabelas q escrevem para arquivos externos ao GDB, ex::

create table tabela_externa external file ´c:\ext\arquivo-tal.txt´ (
...campos...
);



T+


Responder

Gostei + 0

07/03/2004

Logado

Po naum sabia disso q interessante .

Parai! eu posso ter um arq txt como uma tabela??? e acessa-la e manipula-la como se fosse uma tabela comum??? eh isso???

Se for q SHOW!!!!


Responder

Gostei + 0

08/03/2004

Afarias

|Parai! eu posso ter um arq txt como uma tabela??? e acessa-la e
|manipula-la como se fosse uma tabela comum??? eh isso???

É... mais ou menos... tabelas externas tem algumas limitações... e, como disse, estão fora do contexto de transações.


T+


Responder

Gostei + 0

28/04/2005

Osocram

|Interessante! tem alguma forma disso naum acontecer? Não... mas uma dica é guardar seu log em tabelas internas (normais) |a propósito, oq saum EXTERNAL TABLES? Tabelas q escrevem para arquivos externos ao GDB, ex:: create table tabela_externa external file ´c:\ext\arquivo-tal.txt´ ( ...campos... ); T+
Cannot commit transaction:
Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
Access to external file ´/opt/firebird/db/sigcv3/ex.txt´ is denied by server administrator.


ola.. estou tendo erros p tentar criar a tabela externa

CREATE TABLE TABEXportar
external file ´/opt/firebird/db/sigcv3/ex.txt´(
  CODIGO char(12),  NOME char(20),QUEBRA char(2)
)

tentei isso... o banco como pod ver esta no linux... se non me engano eh o RED HAT acho q eh umas ultimas versoes...
eu uso o IBExpert

e qdo vou comitar dah o seguinte erro
[quote:324bf72d0e][/quote:324bf72d0e]

eu criei o arquivo ex.txt no diretorio especificado.. dei permissoes ´chmod 777´, fiz ateh ´chown firebird ex.txt´
non adiantou....


Responder

Gostei + 0

28/04/2005

Osocram

jah descobri...

arquivo firebird.conf

Procure a seção que diz:
# External File Paths/Directories

ExternalFileAccess may be None, Full or Restrict. If you choose
Restrict, provide ´;´-separated trees list, where external files
are stored. Relative paths are treated relative to RootDirectory entry
(see above). Default value ´None´ disables any use of external files
on your site. To specify access to specific trees, enum all required
paths (for Win32 this may be something like ´C:\ExternalTables´,
for unix - ´/db/extern;/mnt/extern´).

NOTE: THE EXTERNAL TABLE ENGINE FEATURE COULD BE USED TO COMPROMISE
THE SERVER/HOST AS WELL AS DATABASE SECURITY!!

IT IS STRONGLY RECOMMENDED THAT THIS SETTING BE USED TO LIMIT
EXTERNAL TABLE LOCATIONS!

Type: string (special format)

ExternalFileAccess = Full

Retire o simbolo # que esta a frente da palavra ExternalFileAccess = Full
para descomentar a linha.
agora deu certo...


Responder

Gostei + 0

29/04/2005

Osocram

eu consegui fazer essa exportacao...

como eu disse o banco esta no linux... teria como fazer ele exportando em um arquivo no windows?

pois eu vou usar um banco base (linux) esse aqui vai ter td, e vou ficar replicando outros bancos q vaum vir no windows....


Responder

Gostei + 0

29/04/2005

Osocram

eu consegui fazer essa exportacao... como eu disse o banco esta no linux... teria como fazer ele exportando em um arquivo no windows? pois eu vou usar um banco base (linux) esse aqui vai ter td, e vou ficar replicando outros bancos q vaum vir no windows....


Bom descobri q posso deixar os dois bancos no linux....
mas como eu faco p zerar essas tabelas externas?

pois eu tentei deletar ele, ele fala q non pode zerar tabela externa.
ou se tiver como eu deletar ele via comando usando o delphi... pois isso vai ser feito por um prog.


Responder

Gostei + 0

29/04/2005

Osocram

bump....


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar