ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Firebird na Rede - Atualização em Real Time
Ir à página 1, 2, 3  Próximo
 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
TiagoJMilam
Aprendiz
Aprendiz


Registrado: Quinta-Feira, 22 de Mai de 2003
Mensagens: 100
Localização: Rio das Pedras / SP

MensagemEnviada: Sex Dez 21, 2007 9:52 pm    Assunto: Firebird na Rede - Atualização em Real Time Responder com Citação

Olá amigos ! Estou eu aqui novamente !


É o seguinte, estou com um sistema em FireBird, e para acessar a base de dados, estou usando os componentes da palheta Interbase. Está tudo rodando perfeitamente... inclusivem em rede... porém ... há um problema operacional que preciso resolver e não faço nem idéia de como fazer isto. Bom.. como esta funcionando em rede, tenho 3 computadores acessando e alterando informações neste banco.. Porém.. o que um faz o outro só vai ver em sua máquina se fechar o programa e carregá-lo novamente... é tipo um problema de atualização... Como sou iniciante neste ramo de programação Cliente-Servidor... eu gostaria de saber como eu faço para que tudo o que um usuário altere no sistema o outro automaticamente consiga refletir em seu sistema... sem ter que incomodar-se em fechar a aplicação e abri-la novamente....


Obrigado mais uma vez meus amigos !



Abraços !
_________________
Tiago José Milam
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Borland_Linuxer
Moderador
Moderador


Registrado: Terça-Feira, 11 de Outubro de 2005
Mensagens: 4252
Localização: Manaus - Am

MensagemEnviada: Sáb Dez 22, 2007 10:41 am    Assunto: Responder com Citação

Ola amigo e so a cada operacao que vc fizer mandar atualizar a consulta que atualiza os dados e pronto os dados vao esta sempre reias.

abracos
_________________
Abraços

Sérgio Guedes
www.lsisistemas.com.br
www.scvarejo.com.br - Projetos para parceiros e desenvolvedores
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
AnOnImUs.Info
Colaborador
Colaborador


Registrado: Quinta-Feira, 23 de Agosto de 2007
Mensagens: 1119
Localização: Goiânia - GO

MensagemEnviada: Sáb Dez 22, 2007 11:06 am    Assunto: Re: Firebird na Rede - Atualização em Real Time Responder com Citação

o problema que voce esta enfrentando eu tambem tive, quando utilizava os componentes do interbase.

e porque toda vez que voce executa o seu aplicativo os componentes do interbase abre uma secao em seu banco e so atualiza os dados se voce reabrir essa secao, pois assim ele atualiza os dados.

somente migrando para o clientdataset que trabalha com as informacoes em memoria e deixando o banco de dados livre e que eu realmente conseguir resolver todos os meus problemas.
_________________
Reter o conhecimento é promover a ignorância !
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Borland_Linuxer
Moderador
Moderador


Registrado: Terça-Feira, 11 de Outubro de 2005
Mensagens: 4252
Localização: Manaus - Am

MensagemEnviada: Sáb Dez 22, 2007 11:18 am    Assunto: Responder com Citação

ola amigo AnOnImUs.Info desculpa mais nunca usei na pratica os componente da paleta interbase.

mais se vc mandar fechar abrir uma consulta os dados nao atualizam ?

se nao atualizarem essa paleta e um m..., mais creio que atualize sim pelo menos pelos testes que eu fiz funciona tudo normal.

ex: quando inseria um novo registro e na outra maquina e ele tambem tivesse inserindo um novo quando ele sai da tela de novo eu faco algo assim

Citação:
procedure TfrmLstBairro.AlterarCadastro;
begin
//Rotina de Alteração de Cadastros
with dmBairro do
begin
Application.CreateForm(TfrmCadBairro, frmCadBairro);
try
with qryCadBairro do
begin
Close;
Params[0].Value := cdsLstBairroCODBAIRRO.AsInteger;
Open;

Edit;
end;

frmCadBairro.ShowModal;
finally
if frmCadBairro.ModalResult = mrok then
begin
ListaBairro;
cdsLstBairro.Locate('CODBAIRRO', qryCadBairroCODBAIRRO.AsInteger, []);
end
else
TiraOrdenacao(cdsLstBairro);


FreeAndNil(frmCadBairro);
end;
end;
end;


abro e fecho a query e com isso os dados do outro pc aparecem numa boa.

abracos
_________________
Abraços

Sérgio Guedes
www.lsisistemas.com.br
www.scvarejo.com.br - Projetos para parceiros e desenvolvedores
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Sáb Dez 22, 2007 12:44 pm    Assunto: Responder com Citação

Isso é simples de resolver, basta depois de gravar vc fechar e abrir novamente a tabela e depois fazer as transações pelo commit/rollback, usando um try/except, vc pode fazer diretamente no aplicativo mesmo.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
micheus
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 22 de Junho de 2005
Mensagens: 225
Localização: Blumenau

MensagemEnviada: Dom Dez 23, 2007 1:30 am    Assunto: Re: Firebird na Rede - Atualização em Real Time Responder com Citação

TiagoJMilam escreveu:
É o seguinte, estou com um sistema em FireBird, e para acessar a base de dados, estou usando os componentes da palheta Interbase. Está tudo rodando perfeitamente... inclusivem em rede... porém ... há um problema operacional que preciso resolver e não faço nem idéia de como fazer isto. Bom.. como esta funcionando em rede, tenho 3 computadores acessando e alterando informações neste banco.. Porém.. o que um faz o outro só vai ver em sua máquina se fechar o programa e carregá-lo novamente... é tipo um problema de atualização... Como sou iniciante neste ramo de programação Cliente-Servidor... eu gostaria de saber como eu faço para que tudo o que um usuário altere no sistema o outro automaticamente consiga refletir em seu sistema... sem ter que incomodar-se em fechar a aplicação e abri-la novamente....

Pode crer que o caminho é por aqui (resposta a sua questão no outro forum)
Pelo menos tem resposta afirmativa - post
_________________
"Há sempre, pelo menos, dois modos de fazer uma mesma coisa.
Mesmo que sejam: certo e errado."
(Micheus)

micheus.4Shared.com Exemplos
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
Tchock
Colaborador
Colaborador


Registrado: Domingo, 18 de Julho de 2004
Mensagens: 1242

MensagemEnviada: Dom Dez 23, 2007 11:01 am    Assunto: Responder com Citação

Eu estou com o mesmo problema q o TiagoJMilam

tem meu sistema em firebird com componentes Zeos e ele so atualiza quando fecho e abro os form...

eu abro as tabelas quando abro o form... e quando fecho o mesmo q fecho as tabelas talvez esse pode ser o meu problema....

so uma observação q naum tentei ainda...

tipo se eu abrir as tabelas quando mandar inserir os dados e na hora q for salvar fechar as tabelas logo apos o post.

sera q resolveria o problema...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gilsonnrodrigues
Moderador
Moderador


Registrado: Quinta-Feira, 14 de Abril de 2005
Mensagens: 9009
Localização: Governador Valadares-MG

MensagemEnviada: Seg Dez 24, 2007 11:44 am    Assunto: Re: Firebird na Rede - Atualização em Real Time Responder com Citação

AnOnImUs.Info escreveu:
o problema que voce esta enfrentando eu tambem tive, quando utilizava os componentes do interbase.

e porque toda vez que voce executa o seu aplicativo os componentes do interbase abre uma secao em seu banco e so atualiza os dados se voce reabrir essa secao, pois assim ele atualiza os dados.

somente migrando para o clientdataset que trabalha com as informacoes em memoria e deixando o banco de dados livre e que eu realmente conseguir resolver todos os meus problemas.


ainda bem q resolveu!

mas o "problema" não tem nada a ver com o componente.
na realidade nem é problema!

dê mais uma verificada sobre controles e isolamentos transacionais.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
pestana
Colaborador
Colaborador


Registrado: Sábado, 25 de Junho de 2005
Mensagens: 3147
Localização: Araras-SP

MensagemEnviada: Qui Dez 27, 2007 3:49 pm    Assunto: Re: Firebird na Rede - Atualização em Real Time Responder com Citação

colegas eu estou com o mesmo problema do TiagoJMilam tem alguma coisa haver com Transação? eu nunca mexi nas configurações do IBTransaction.

ainda estou confuso, não sei muito bem se eu teria que utilizar estas configurações do IBTransaction:

read_committed,
rec_version,
nowait


estou tentando montar uma configuração de transação que seja mais adequada para meu sistema.
no sistema, tenho dbgrid e edits:
1- os dados são apresentados no dbgrid como somente leitura.
2- utilizo edits para incluir, alterar e excluir registros (não utilizo componentes dataware exceto o dbgrid).

Andei verificando em alguns artigos que tem gente que utiliza mais de uma transação (p. ex.: uma transação para escrita (inserir, atualizar e deletar registros) e outra somente leitura (select)), mas não entendi qual seria o objetivo? deve haver um propósito para isso, alguem saberia me responder.

Agradeceria muito pela ajuda,
Pestana.
_________________
Ao invés de ficar desanimado no que deu de errado, olhe para frente, aprenda com os erros e veja o que ainda pode ser feito. A determinação e a persistência é uma das etapas para o sucesso.


Editado pela última vez por pestana em Qui Dez 27, 2007 4:48 pm, num total de 3 vezes
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
DonOctavioDelFlores
Colaborador
Colaborador


Registrado: Quarta-Feira, 12 de Setembro de 2007
Mensagens: 2630
Localização: Pra lá de Bagda

MensagemEnviada: Qui Dez 27, 2007 4:02 pm    Assunto: Responder com Citação

o unico problema ai é configuracao da transacao!

Citação:

read_committed,
rec_version,
nowait


isso já era pra funcionar, é só dar o commit.

---

nao adianta abrir e fechar table...

o que vai atualizar o bd é o commit...

e estando a transacao em read_commited os clientes vao enxergar qq alteracao feita por outros...
_________________
“The problem with the world is that everyone is a few drinks behind.” Humphrey Bogart
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
pestana
Colaborador
Colaborador


Registrado: Sábado, 25 de Junho de 2005
Mensagens: 3147
Localização: Araras-SP

MensagemEnviada: Qui Dez 27, 2007 4:37 pm    Assunto: Responder com Citação

DonOctavioDelFlores, brigadão mesmo por me ajudar!

andei fazendo o que você falou, mas ainda tem um problema, estou fazendo o commit, mas os cliente não estão enxergando atualização.

ex.:
Vamos supor que tenho duas máquinas (A,B) tanto na máquina A quanto na máquina B contem registros de uma mesma tabela no dbgrid.

Na máquina A o usuário alterou o registro e na máquina B não está sendo atualizado o registro 'que já está no dbgrid'.

Com está configuração read_commited eu preciso fazer um refresh no DataSet, então só assim a máquina B atualizaria o DataSet, mas como o sistema vai saber que tenho que fazer refresh, me falaram que é possivel fazer isso utilizando Eventos (Post_Events) do FB, o que você me diria sobre isso?

Obrigado,
Pestana.
_________________
Ao invés de ficar desanimado no que deu de errado, olhe para frente, aprenda com os erros e veja o que ainda pode ser feito. A determinação e a persistência é uma das etapas para o sucesso.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
pestana
Colaborador
Colaborador


Registrado: Sábado, 25 de Junho de 2005
Mensagens: 3147
Localização: Araras-SP

MensagemEnviada: Qui Dez 27, 2007 4:50 pm    Assunto: Re: Firebird na Rede - Atualização em Real Time Responder com Citação

pestana escreveu:
Andei verificando em alguns artigos que tem gente que utiliza mais de uma transação (p. ex.: uma transação para escrita (inserir, atualizar e deletar registros) e outra somente leitura (select)), mas não entendi qual seria o objetivo? deve haver um propósito para isso, alguem saberia me responder.


alguem já se deparou com está situação?

Agradeço antecipadamente,
Pestana.
_________________
Ao invés de ficar desanimado no que deu de errado, olhe para frente, aprenda com os erros e veja o que ainda pode ser feito. A determinação e a persistência é uma das etapas para o sucesso.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
DonOctavioDelFlores
Colaborador
Colaborador


Registrado: Quarta-Feira, 12 de Setembro de 2007
Mensagens: 2630
Localização: Pra lá de Bagda

MensagemEnviada: Qui Dez 27, 2007 4:57 pm    Assunto: Responder com Citação

é por isso que eu nao sou muito chegado em dbware, eu tento mostrar o minimo de informacao possivel na tela que possa
ser desatualizada, afinal, pra que manter um grid com 50 registros? quem vai ler aquilo?

é a diferenca entre fazer uma pesquisa no dos e uma no google...

quando alguns clientes me perguntavam "mas e aquela lista que mostrava a relacao de alguma coisa pra onde foi?"

eu falo, "pense no google"...

O jeito é mudar o metodo de pesquisa...

1 - Palavra chave

2 - Resultado com poucos registros

3 - Selecao do registro especifico

4 - Edicao e gravacao do registro selecionado...

isso seria algo parecido com o tal do Just In Time do pessoal da administracao, pq nao vale a pena manter registros em cache
por muito tempo se vc tiver concorrencia...

e quanto aos Post_Events do Fb, não sei.. nunca usei... mas pelo que entendi seria algo como o servidor avisar o cliente de modificacoes? acho q nao daria muito certo...
_________________
“The problem with the world is that everyone is a few drinks behind.” Humphrey Bogart
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
DonOctavioDelFlores
Colaborador
Colaborador


Registrado: Quarta-Feira, 12 de Setembro de 2007
Mensagens: 2630
Localização: Pra lá de Bagda

MensagemEnviada: Qui Dez 27, 2007 5:01 pm    Assunto: Responder com Citação

e quanto as transacoes... eu nao vejo motivo para ter 2 ou mais abertas se vc nao está trabalhando com threads...

pq o processo trabalha uma coisa de cada vez, e a transacao isola exatamente isso...

talvez valha a pena se a configuracao da transacao for diferente uma da outra...

mas nada impede de fazer na mao tb...
_________________
“The problem with the world is that everyone is a few drinks behind.” Humphrey Bogart
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
pestana
Colaborador
Colaborador


Registrado: Sábado, 25 de Junho de 2005
Mensagens: 3147
Localização: Araras-SP

MensagemEnviada: Qui Dez 27, 2007 5:17 pm    Assunto: Responder com Citação

DonOctavioDelFlores escreveu:
é por isso que eu nao sou muito chegado em dbware, eu tento mostrar o minimo de informacao possivel na tela que possa
ser desatualizada, afinal, pra que manter um grid com 50 registros? quem vai ler aquilo?

é a diferenca entre fazer uma pesquisa no dos e uma no google...

quando alguns clientes me perguntavam "mas e aquela lista que mostrava a relacao de alguma coisa pra onde foi?"

eu falo, "pense no google"...

O jeito é mudar o metodo de pesquisa...

1 - Palavra chave

2 - Resultado com poucos registros

3 - Selecao do registro especifico

4 - Edicao e gravacao do registro selecionado...

isso seria algo parecido com o tal do Just In Time do pessoal da administracao, pq nao vale a pena manter registros em cache
por muito tempo se vc tiver concorrencia...


tudo bem eu concordo com você, mas se o usuário que está em uma outra máquina (seguindo o ex.: na máquina B) trazer somente um registro para o dbgrid e justamente este registro é que está sendo alterado (na máquina A) por um outro usuário. O que você faria para atualizar os registro?

agradeço!
_________________
Ao invés de ficar desanimado no que deu de errado, olhe para frente, aprenda com os erros e veja o que ainda pode ser feito. A determinação e a persistência é uma das etapas para o sucesso.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Ir à página 1, 2, 3  Próximo
Página 1 de 3

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB