| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
TiagoJMilam Aprendiz

Registrado: Quinta-Feira, 22 de Mai de 2003 Mensagens: 100 Localização: Rio das Pedras / SP
|
Enviada: Sex Dez 21, 2007 9:52 pm Assunto: Firebird na Rede - Atualização em Real Time |
|
|
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 |
|
 |
Borland_Linuxer Moderador

Registrado: Terça-Feira, 11 de Outubro de 2005 Mensagens: 4252 Localização: Manaus - Am
|
Enviada: Sáb Dez 22, 2007 10:41 am Assunto: |
|
|
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 |
|
 |
AnOnImUs.Info Colaborador


Registrado: Quinta-Feira, 23 de Agosto de 2007 Mensagens: 1119 Localização: Goiânia - GO
|
Enviada: Sáb Dez 22, 2007 11:06 am Assunto: Re: Firebird na Rede - Atualização em Real Time |
|
|
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 |
|
 |
Borland_Linuxer Moderador

Registrado: Terça-Feira, 11 de Outubro de 2005 Mensagens: 4252 Localização: Manaus - Am
|
Enviada: Sáb Dez 22, 2007 11:18 am Assunto: |
|
|
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 |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
| Voltar ao Topo |
|
 |
micheus Aprendiz


Registrado: Quarta-Feira, 22 de Junho de 2005 Mensagens: 225 Localização: Blumenau
|
Enviada: Dom Dez 23, 2007 1:30 am Assunto: Re: Firebird na Rede - Atualização em Real Time |
|
|
| 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 |
|
 |
Tchock Colaborador


Registrado: Domingo, 18 de Julho de 2004 Mensagens: 1242
|
Enviada: Dom Dez 23, 2007 11:01 am Assunto: |
|
|
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 |
|
 |
gilsonnrodrigues Moderador

Registrado: Quinta-Feira, 14 de Abril de 2005 Mensagens: 9009 Localização: Governador Valadares-MG
|
Enviada: Seg Dez 24, 2007 11:44 am Assunto: Re: Firebird na Rede - Atualização em Real Time |
|
|
| 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 |
|
 |
pestana Colaborador

Registrado: Sábado, 25 de Junho de 2005 Mensagens: 3147 Localização: Araras-SP
|
Enviada: Qui Dez 27, 2007 3:49 pm Assunto: Re: Firebird na Rede - Atualização em Real Time |
|
|
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 |
|
 |
DonOctavioDelFlores Colaborador

Registrado: Quarta-Feira, 12 de Setembro de 2007 Mensagens: 2630 Localização: Pra lá de Bagda
|
Enviada: Qui Dez 27, 2007 4:02 pm Assunto: |
|
|
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 |
|
 |
pestana Colaborador

Registrado: Sábado, 25 de Junho de 2005 Mensagens: 3147 Localização: Araras-SP
|
Enviada: Qui Dez 27, 2007 4:37 pm Assunto: |
|
|
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 |
|
 |
pestana Colaborador

Registrado: Sábado, 25 de Junho de 2005 Mensagens: 3147 Localização: Araras-SP
|
Enviada: Qui Dez 27, 2007 4:50 pm Assunto: Re: Firebird na Rede - Atualização em Real Time |
|
|
| 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 |
|
 |
DonOctavioDelFlores Colaborador

Registrado: Quarta-Feira, 12 de Setembro de 2007 Mensagens: 2630 Localização: Pra lá de Bagda
|
Enviada: Qui Dez 27, 2007 4:57 pm Assunto: |
|
|
é 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 |
|
 |
DonOctavioDelFlores Colaborador

Registrado: Quarta-Feira, 12 de Setembro de 2007 Mensagens: 2630 Localização: Pra lá de Bagda
|
Enviada: Qui Dez 27, 2007 5:01 pm Assunto: |
|
|
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 |
|
 |
pestana Colaborador

Registrado: Sábado, 25 de Junho de 2005 Mensagens: 3147 Localização: Araras-SP
|
Enviada: Qui Dez 27, 2007 5:17 pm Assunto: |
|
|
| 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 |
|
 |
|