[firebase-br] Atualizacao de pdvs

Eliseu Schneider modulo em cpovo.net
Qua Fev 13 22:40:42 -03 2013


Ola... trabalho com bancos paralelos, tabelas identicas, retaguarda e pdvs. 
Necessito atualizar os pdvs com a tabela produtos sempre que for criado um 
registro novo ou alterada alguma informacao
no cadastro da retaguarda. Quando isto acontece, mando o codigo do produto 
para uma tabela paralela para posterior atualizacao nos pdvs. Como poderia 
fazer isto pelo banco...

Seria atraves de update ou insert... se poderem me colocar um exemplo, 
agradeco...

Sds,
Eliseu
Modulo Info
Porto Alegre / RS


-----Mensagem Original----- 
From: Tecnobyte Informática
Sent: Thursday, October 25, 2012 5:52 PM
To: FireBase
Subject: Re: [firebase-br] RES: Log de transações

Não é o caso. Não existe nenhum campo calculado na tabela onde estou
tentando executar INSERT e UPDATE.

Atenciosamente.

Daniel P. Guimarães
Tecnobyte Informática
www.tecnobyte.com.br

-----Mensagem Original----- 
From: Zottis
Sent: Thursday, October 25, 2012 3:30 PM
To: 'FireBase'
Subject: [firebase-br] RES: Log de transações

Vê se você está tentando gravar em campos calculados


-----Mensagem original-----
De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Tecnobyte
Informática
Enviada em: quinta-feira, 25 de outubro de 2012 17:21
Para: lista em firebase.com.br
Assunto: [firebase-br] Log de transações

Boa tarde

Estou precisando fazer um log de todas as transações executadas no banco de
dados (Firebird 2.5.1). O código abaixo executa normalmente, mas em seguida,
quando vou iniciar uma nova transação, ocorre este erro:

attempted update during read-only transaction At trigger
'TG_TRANSACTION_START' line: 3, col: 3

Tentei usar transação autônoma para gravar o log, mas também não deu certo.

Alguém sabe como resolver este problema?
-- 

CREATE TABLE MON_TRANSACTIONS
(
  ID                     INTEGER,
  MON_TRANSACTION_ID       INTEGER,
  MON_ATTACHMENT_ID         INTEGER,
  MON_STATE                 INTEGER,
  MON_START_TIMESTAMP    TIMESTAMP,
  MON_COMMIT_TIMESTAMP   TIMESTAMP,
  MON_TOP_TRANSACTION       INTEGER,
  MON_OLDEST_TRANSACTION INTEGER,
  MON_OLDEST_ACTIVE         INTEGER,
  MON_ISOLATION_MODE       SMALLINT,
  MON_LOCK_TIMEOUT         SMALLINT,
  MON_READ_ONLY             SMALLINT,
  MON_AUTO_COMMIT           SMALLINT,
  MON_AUTO_UNDO             SMALLINT,
  CONSTRAINT PK_MON_TRANSACTIONS PRIMARY KEY(ID) );

CREATE SEQUENCE SQ_MON_TRANSACTIONS_ID;

SET TERM ^ ;

CREATE OR ALTER TRIGGER TG_TRANSACTION_START ON TRANSACTION START AS BEGIN
  INSERT INTO MON_TRANSACTIONS(
    ID,
    MON_TRANSACTION_ID,
    MON_ATTACHMENT_ID,
    MON_STATE,
    MON_START_TIMESTAMP,
    MON_TOP_TRANSACTION,
    MON_OLDEST_TRANSACTION,
    MON_OLDEST_ACTIVE,
    MON_ISOLATION_MODE,
    MON_LOCK_TIMEOUT,
    MON_READ_ONLY,
    MON_AUTO_COMMIT,
    MON_AUTO_UNDO)
  SELECT
    NEXT VALUE FOR SQ_MON_TRANSACTIONS_ID,
    MON$TRANSACTION_ID,
    MON$ATTACHMENT_ID,
    MON$STATE,
    CURRENT_TIMESTAMP,
    MON$TOP_TRANSACTION,
    MON$OLDEST_TRANSACTION,
    MON$OLDEST_ACTIVE,
    MON$ISOLATION_MODE,
    MON$LOCK_TIMEOUT,
    MON$READ_ONLY,
    MON$AUTO_COMMIT,
    MON$AUTO_UNDO
  FROM MON$TRANSACTIONS
  WHERE MON$TRANSACTION_ID = CURRENT_TRANSACTION; END^

CREATE OR ALTER TRIGGER TG_TRANSACTION_COMMIT ON TRANSACTION COMMIT AS BEGIN
  UPDATE MON_TRANSACTIONS SET
    MON_COMMIT_TIMESTAMP = CURRENT_TIMESTAMP
  WHERE MON_TRANSACTION_ID = CURRENT_TRANSACTION; END^


Atenciosamente.

Daniel P. Guimarães
Tecnobyte Informática
www.tecnobyte.com.br


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: 
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista