Configurar caminho do banco servidor Datasnap
Bom dia , eu novamente (: kkkkkkkkkkkk
Eu fiz um servidor datasnap no delphi xe8 e queria deixar o meu FDConnection mais " dinamico " podendo o usuario alterar caminho do banco do servidor , o que tenho até então são:
- Unit com 2 edits , um para porta do servidor e outro para usuario digitar caminho do banco para servidor
- Botão para inserir caminho do banco no FDConnection e que também inicia o servidor
- ServerContainer e ServerMethods criado automatico pelo delphi , dentro de ServerMethods tem os componentes do firedac.
Estou usando Delphi xe8 e o banco de dados Firebird (:
Eu fiz um servidor datasnap no delphi xe8 e queria deixar o meu FDConnection mais " dinamico " podendo o usuario alterar caminho do banco do servidor , o que tenho até então são:
- Unit com 2 edits , um para porta do servidor e outro para usuario digitar caminho do banco para servidor
- Botão para inserir caminho do banco no FDConnection e que também inicia o servidor
- ServerContainer e ServerMethods criado automatico pelo delphi , dentro de ServerMethods tem os componentes do firedac.
Estou usando Delphi xe8 e o banco de dados Firebird (:
William Felizardo
Curtidas 0
Respostas
Luiz Menin
24/11/2015
Boa tarde, você pode colocar em dois Edits e um botão para confirmar a alteração
with dmDados.Servidor do begin Params.Values['HostName'] := edtIP.Text; Params.Values['Port'] := edtPorta.txt; end;
GOSTEI 0
William Felizardo
24/11/2015
Eu acho que nao consigui explicar bem o problema :( , tentar mandar mais detalhes pra ajudar ( como tbm o problema seja eu de n ter entendido sua resposta kk )
Nao consigo acessar ServerMethods a qual esta componente de conexao e só consigo ter acesso do ServerContainer em minha unit e uso este comando para mandar a porta:
Nao consigo acessar ServerMethods a qual esta componente de conexao e só consigo ter acesso do ServerContainer em minha unit e uso este comando para mandar a porta:
ServerContainer1.DSTCPServerTransport1.Port := StrToInt(edPort.Text);
GOSTEI 0
Gilslan Powell
24/11/2015
Cara estou com o mesmo problema que você, porem eu consegui o acesso ao ServerMethods declarando uma variavel
Var
ServerMetods: TServerMethods;
Assim deu pra enxergar o meu connection, só que não consigo mexer nele por outros form, tipo colocar um btn pra ativar ou modifica-lo.
Var
ServerMetods: TServerMethods;
Assim deu pra enxergar o meu connection, só que não consigo mexer nele por outros form, tipo colocar um btn pra ativar ou modifica-lo.
GOSTEI 0
Gutierry Pereira
24/11/2015
Boa tarde,
O problema que esta passando é devido a falta de conhecimento de como é instanciado o TServerMethods. O TServerMethods é instanciado a cada requisição, então ao tentar fazer uma requisição sua conexão será criada mais os dados de conexão não existiram por que você fez isso no form principal. E o seu for principal esta "enxergando" uma instancia que não será utilizada.
Se sua conexão for unica para toda a aplicação você pode colocar isso em um datamodule que será intsnaciado uma unica vez no create da aplicação e se referenciar a ele no TServerMethods. Uma outra solução é criar uma classe singleton de conexão.
espero ter ajudado.
Att: Gutierry Antonio
O problema que esta passando é devido a falta de conhecimento de como é instanciado o TServerMethods. O TServerMethods é instanciado a cada requisição, então ao tentar fazer uma requisição sua conexão será criada mais os dados de conexão não existiram por que você fez isso no form principal. E o seu for principal esta "enxergando" uma instancia que não será utilizada.
Se sua conexão for unica para toda a aplicação você pode colocar isso em um datamodule que será intsnaciado uma unica vez no create da aplicação e se referenciar a ele no TServerMethods. Uma outra solução é criar uma classe singleton de conexão.
espero ter ajudado.
Att: Gutierry Antonio
GOSTEI 0
Jayme Vieira
24/11/2015
Alguem consegui resolver o bo ai
GOSTEI 0
Accesys Comercial
24/11/2015
Tentei fazer como o amigo Gutierry Pereira sugeriu colocando um dataModule pois a conexão é única para toda a aplicação, porém recebo a mensagem de erro "only one datamodule per application". Estou utilizando datasnap rest application com ISAP dynamic link library. Alguém tem alguma sugestão? Se eu deixo o connection diretamente no ServerMethods quando a quantidade de requisições é muito grande, recebo falha pois é instanciada uma conexão para cada requisição e se não me engano o limite de conexões simultaneas ao banco é de 1024. Tentei a implementação da classe singleton, mas infelizmente não obtive o sucesso esperado, não sei se eu estou fazendo errado, mas com a classe recebi uns access violation muito estranhos...Agradeço se alguém puder ajudar
GOSTEI 0