Passar parametro para ClientDataSet de outra aplicação
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
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
Curtidas 0
Respostas
Cabelo
29/06/2005
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..
GOSTEI 0
Mmoreira
29/06/2005
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??
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??
GOSTEI 0
Cabelo
29/06/2005
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..
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..
GOSTEI 0
Mmoreira
29/06/2005
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???
GOSTEI 0
Cabelo
29/06/2005
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.
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.
GOSTEI 0
Mmoreira
29/06/2005
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
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
GOSTEI 0
Jairroberto
29/06/2005
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
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
GOSTEI 0
Cabelo
29/06/2005
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...
GOSTEI 0
Jairroberto
29/06/2005
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
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
GOSTEI 0
Cabelo
29/06/2005
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.
GOSTEI 0
Jairroberto
29/06/2005
Olá, Júnior!
Minha resposta se referia especificamente à sua colocação anterior:
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
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
GOSTEI 0