[firebase-br] Refresh em Rede

firebase em dominioinf.com.br firebase em dominioinf.com.br
Sex Jul 31 12:27:01 -03 2015


Bom dia,

Consegui abrir o arquivo de help do ibo no windows xp, e tentei entender 
o que estava escrito no
Global DML Caching

Tentei fazer assim:

Criei a tabela
CREATE TABLE IBO$DMLCACHE (
   DMLID           INTEGER              NOT NULL  /* mapped by ColIDName 
property */
, DMLACTION  CHAR( 1 )            NOT NULL  /* mapped byColActionName 
property - this stores A, U or D according to the DML Action requested 
by an announcing dataset */
, KEYFIELDS     VARCHAR( 128  ) NOT NULL /* mapped by ColKeyFieldsName 
property, a column for storing a  semicolon-separated list of the names 
of up to three key fields, in KeyLinks order,  in the announcing or 
receiving  dataset's KeyLinks.  Another property, ColValuesNames, is a 
comma-separated list of the names of the columns, in KeyLinks order,  
where the values of these columns from the announcing dataset will be 
stored in the DML cache table */
, KEYVALUE1   VARCHAR( 128 )  NOT NULL /* Name of the column to store 
announcing/receiving dataset's first or only KeyLinks value */
, KEYVALUE2   VARCHAR( 128 )  /* ditto, second KeyLinks value, if needed 
*/
, KEYVALUE3   VARCHAR( 128 )  /*ditto, third KeyLinks value, if needed 
*/
, DMLUSER      VARCHAR( 32 )   NOT NULL /* mapped by property 
ColUserName */
);
ALTER TABLE IBO$DMLCACHE
ADD CONSTRAINT PK_IBO$DMLCACHE_1 PRIMARY KEY (DMLID);

Criei uma trigger

CREATE TRIGGER AI_IBO$DMLCACHE FOR IBO$DMLCACHE
ACTIVE AFTER INSERT POSITION 0
AS
BEGIN
   POST_EVENT 'IBO$DMLCACHE';
END;

Aqui uma parte que não entendi muito bem

CREATE TRIGGER AI_QUESTION_IBO$DMLCACHE FOR CAIXASUP  // aqui inseri o 
nome da minha tabela
ACTIVE AFTER INSERT POSITION 0
AS
BEGIN
   INSERT INTO IBO$DMLCACHE( DMLACTION, KEYFIELDS, KEYVALUE1 )
     VALUES ( 'I', 'QUESTIONID', NEW.CODIGO );  // aqui inseri a chave 
primaria da tabela caixasup
END;

CREATE TRIGGER AU_SURVEY_IBO$DMLCACHE FOR CAIXASUP   // inseri o nome da 
tabela
ACTIVE AFTER UPDATE POSITION 0
AS
BEGIN
   INSERT INTO IBO$DMLCACHE( DMLACTION, KEYFIELDS, KEYVALUE1 )
     VALUES ( 'U', 'SURVEYID', OLD.CODIGO );  // inseri a chave primaria 
do caixasup


Inseri um componente IB_SyncCursor1 ligado ao meu IBODatabase1

IBODatabase1.Open;
IB_SyncCursor1.Active:= true;

Ai aparece uma mensagem ao executar a aplicaçaão: Unassigned application 
handler.

Com certeza estou fazendo algo errado.

Se puderem dar uma ajuda.

Grato




Em 2015-07-30 14:08, Carlos H. Cantu escreveu:
> Primeiro vc tem que verificar se o isolamento transacional que vc está
> usando permite enxergar as informações que já foram commitadas (ex:
> ReadCommited), caso contrário, enquanto a transação associada a query
> estiver aberta, ela continuará enxergando as mesmas informações de
> quanto ela foi iniciada.
> 
> Indo mais além, o IBO tem um recurso que faz a auto-atualização dos
> buffers em memória automaticamente nas estações... pesquise sobre
> DMLCaching em http://www.ibobjects.com/TechInfo.html
> 
> []s
> Carlos H. Cantu
> www.FireBase.com.br - www.firebirdnews.org
> www.warmboot.com.br - blog.firebase.com.br
> 
> fdcb> Bom dia Todos,
> 
> fdcb> Estou com um problema e gostaria da opnião dos participantes 
> sobre um
> fdcb> problema que estou tendo aqui.
> 
> fdcb> Uso Delphi 7, IBO, Firebird 2.5
> 
> fdcb> Quando um usuario abre o sistema em varios computadores em rede, 
> um
> fdcb> altera uma informação, na outra estação esse registro não é
> fdcb> alterado. Tenho que fechar a tabela e abri-la novamente, então 
> aparece
> fdcb> atualizado.
> 
> fdcb> As vezes em alguns o clientes, eles baixar um crediario em uma 
> estação,
> fdcb> o sistema baixa normalmente,
> fdcb> derepente vão em outra estação consultar, o crediario ainda esta 
> em
> fdcb> aberto naquele computador, então
> fdcb> eles tentam baixar novamente.
> 
> fdcb> Como vcs estão lidando com essa situação?
> 
> fdcb> Eu pensei em inserir um timer no formulario principal e ir dando 
> refresh
> fdcb> a cada 10 segundos.
> 
> fdcb> Mas surgiu algumas duvidas, isso poderia sobrecarregar os 
> recursos da
> fdcb> maquina? Se um usuario estivesse
> fdcb> digitando um pedido, e em outra maquina executasse um refresh da 
> tabela
> fdcb> pedidos, isso poderia geral algum
> fdcb> erro na outra maquina que esta gerando o pedido?
> 
> fdcb> Uma outra duvida seria se o proprio ibo ja não exista uma 
> propriedade
> fdcb> que faça isso automatico.
> 
> fdcb> Grato pela ajuda
> 
> 
> 
> fdcb> ______________________________________________
> fdcb> FireBase-BR (www.firebase.com.br) - Hospedado em 
> www.locador.com.br
> fdcb> Para saber como gerenciar/excluir seu cadastro na lista, use:
> fdcb> http://www.firebase.com.br/fb/artigo.php?id=1107
> fdcb> Para consultar mensagens antigas:
> fdcb> http://www.firebase.com.br/pesquisa_lista.html
> 
> 
> ______________________________________________
> 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://www.firebase.com.br/pesquisa_lista.html





Mais detalhes sobre a lista de discussão lista