Fórum Passar parametro para ClientDataSet de outra aplicação #286427

29/06/2005

0

Salve pessoal,

Estou com uma duvida e gostaria de saber se é possivel fazer o que eu estou precisando. Eu tenho dois sistemas ultilizando o mesmo banco de dados Firebird 1.5 e estou usando o Delphi 7

Um dos sistemas é bem simples que eu chamo de monitor é um form com um dbgrid que fica monitorando uma tabela e a cada 3 segundos eu dou um refresh para atualizar o dbgrid.
O outro é um sistema onde eu tenho uma tela de cadastro de clientes bem completa com muitas informações do mesmo.
O que eu quero fazer é que ao selecionar uma linha do dbgrid do meu sistema monitor automaticamente no sistema de cadastro de cliente o cadastro seja deslocado para o cadastro do cliente que esta aparecendo no monitor.
Ou seja no meu ClientDataSet do monitor vou ter ID_CLIENTE ai eu quero fechar o ClientDataSet do outro sistema passar o ID_CLIENTE do monitor como parametro e abrir novamente o ClientDataSet do sistema de cadastro.

Ai vem a pergunta: Mas porque você nao coloca este monitor no seu sistema de cadastro? Ficaria bem mais simples de fazer.
Eu nao fasso assim porque eu ja fiz desta maneira e acontece que toda vez que o monitor é atualizado de 3 em 3 segundos o sistema da uma congelada e isso esta deixando o meu cliente furioso.

Desenvolvi meu sistema em 3 camadas trafegando XML.

Se alguem souber de algo que possa me ajudar.

valewss


Mmoreira

Mmoreira

Responder

Posts

29/06/2005

Cabelo

Uma maneira bem simples de resolver este problema, seria você usar um Socket, e passar via socket o ID_CLIENTE, e dar um locate no cadastro de clientes..


Responder

Gostei + 0

29/06/2005

Mmoreira

fala cabelo,

vc disse que eu poderia usar Socket para resolver meu problema blz. Estes sockets que vc mensionou seria os componentes da paleta Internet do delphi ?? TcpCliente e TcpServer??


Responder

Gostei + 0

29/06/2005

Cabelo

Na verdade não..

se voc~e estiver usando delphi 7, você deve fazer a nstalação dos componentes na paleta Internet..

Tente pesquisar no fórum, que já foi respondido como fazer a instalação, pois não me lembro como faz..


Responder

Gostei + 0

29/06/2005

Mmoreira

cabelo agora fiquei confuso, eu estou usando o delphi 7 e ja tenho a paleta Internet instalada ... o que vc quiz dizer é que estes sockets nao vem instalados por padrao na paleta internet do delphi 7???


Responder

Gostei + 0

29/06/2005

Cabelo

Exatamente, esses componentes :

SocketCliet
SocketServer

não fazem parte da instalação padrão do delphi 7, mas existem . Portanto é necessário instalar a partir do seu disco rígido.


Responder

Gostei + 0

29/06/2005

Mmoreira

fala ai cabelo

blz, instalei os sockets.
uma duvida qual porta para conexao vc me recomenda usar outra coisa meu sistema vai rodar em maquinas logadas em rede com dominio e tal sera que vou ter problemas com isto

estou no aguardo


Responder

Gostei + 0

29/06/2005

Jairroberto

Olá, Moreira!

Desculpe-me pela intromissão, mas pelo que entendi os dois softwares estão rodando na mesma máquina. Neste caso uma alternativa simplificada seria utilizar um arquivo texto para trocar informações entre os dois aplicativos utilizando um Timer no aplicativo de cadastro para identificar quando um novo registro é selecionado no Monitor.


Um abraço,
Jair


Responder

Gostei + 0

30/06/2005

Cabelo

fala ai cabelo blz, instalei os sockets. uma duvida qual porta para conexao vc me recomenda usar outra coisa meu sistema vai rodar em maquinas logadas em rede com dominio e tal sera que vou ter problemas com isto estou no aguardo


Colega..

Use portas baixas.. assim não terá problemas nenhum com a verificação do domínio.. tente na porta 80, é a que eu uso aqui..

Boa sorte..


Olá, Moreira! Desculpe-me pela intromissão, mas pelo que entendi os dois softwares estão rodando na mesma máquina. Neste caso uma alternativa simplificada seria utilizar um arquivo texto para trocar informações entre os dois aplicativos utilizando um Timer no aplicativo de cadastro para identificar quando um novo registro é selecionado no Monitor. Um abraço, Jair


Jair, o problema em usar arquivos txt, é que se o usuário deletar ste arquivo, o sistema fica paralizado ou dá erro.. já tive problemas em criar uma aplicação assim, aí eu resolví o problema usando sockets...

A aplicação já roda a 5 meses, e não deu nenhum erro...


Responder

Gostei + 0

30/06/2005

Jairroberto

Olá, Cabelo!

O mesmo pode ocorre no caso dele se o Server não estiver no ar, tudo depende de como a rotina de leitura e gravação for escrita, prevendo ou não a ausência do SocketServer, prevendo ou não a ausência do arquivo de troca de informações.


Um abraço,
Jair


Responder

Gostei + 0

30/06/2005

Cabelo

Olá, Cabelo! O mesmo pode ocorre no caso dele se o Server não estiver no ar, tudo depende de como a rotina de leitura e gravação for escrita, prevendo ou não a ausência do SocketServer, prevendo ou não a ausência do arquivo de troca de informações. Um abraço, Jair


Não.. é bem diferente..

Se a aplicação monitor não estiver rodando (server), não será necessário fazer atualização nenhuma (client). se você tiver esse arquivo, irá utilizar processamento a toa, pois iria ficar verificando o arquivo sem nenhuma finalidade.. é muito melhor utilizar sockets nessa situação, pois independe do programado colocar ou não o (server) no ar, poderia ainda criar um bat, aí sim com um timer, e ficar verificando se o minitor(server) está no ar, se não estiver ele ativa a aplicação e tudo volta ao normal, bem diferente do arquivo de troca de informações.


Responder

Gostei + 0

30/06/2005

Jairroberto

Olá, Júnior!

Minha resposta se referia especificamente à sua colocação anterior:

Jair, o problema em usar arquivos txt, é que se o usuário deletar ste arquivo, o sistema fica paralizado ou dá erro.. já tive problemas em criar uma aplicação assim, aí eu resolví o problema usando sockets...


Qualquer técnica utiliza tem seus prós e contras, dependendo exclusivamente de como é implementada. Continuo afirmando que as duas técnicas são viáveis sem apresentar risco de travamento ou performance, tudo isso em função de como a rotina for escrita.


Um abraço,
Jair


Responder

Gostei + 0

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

Aceitar