Problema com comunicação datasnap delphi

17/09/2018

0

Boa noite,

Estou com um problema na conexão com datasnap, pra ser mais preciso com os parametros do FDConnection.

sou novo com isso então estou criando um app basico com comunicação datasnap.
Primeiramente bem simples só pra colocar os dois para comunicar com um banco SQL server e ver como funciona pra futuras aplicações.

O Problema esta no "SERVIDOR" o executavel q vai segurar o banco para as conexão do mobile ou de algum executavel do windows mesmo.

o executavel do app esta tudo certo funcionando beleza, mas o executavel do servidor esta com o seguinte problema com os parametros e nao sei o que fazer.

criei uma conexão via datasnap server, mas fiz tudo em aberto para que nao so meu computador conecte, e sim qualquer maquina com o banco sql.
Então criei na unit do servidor formas de abrir puxar o ip no edit e só conectar quando clicar no button para eu definir no edit qual ip vai ser conectado.

entao tive que criar as condições passando pelas outras uses e usando as outras units, para conseguir pegar o parametro que esta no fdconnection e define a conexao com o banco sql server de acordo com cada computador e ip etc...

Então criei assim

procedure TForm1.btnCONECTAClick(Sender: TObject);
var
S: TDSServerModule_PRODUTOS;




begin



S := TDSServerModule_PRODUTOS.Create(nil);
try
S.FDConnection1.Close;
S.FDConnection1.Params.Clear;
S.FDConnection1.Params.Add('Params=(TFDConnectionDefParams)');
S.FDConnection1.Params.Add('Database=BASE0001');
S.FDConnection1.Params.Add('DriverID=MSSQL');
S.FDConnection1.Params.Add('Password=123');
S.FDConnection1.Params.Add('User_Name=sa');
S.FDConnection1.Params.Add('Server='+edtIP.Text);

S.FDConnection1.Connected:= True;

if s.FDConnection1.Connected = true then
begin
showmessage('SQL CONECTADO');
end;

servercontainerunit1.ServerContainer1.DSServer1.AutoStart:= True;
servercontainerunit1.ServerContainer1.DSServer1.Start;

if servercontainerunit1.ServerContainer1.DSServer1.AutoStart = true then

begin
showmessage('SERVER CONECTADO');
end;

finally

S.Free;

end;



end;

Assim o que eu digitar no edit e quando clicar no botao ai conecta de acordo com varios ips diferente e nao só no meu.

Ai o problema no componente FDConnection tem os params que faz conexão sendo elas base senha ip....

então eu clicar e editando no proprio componente se eu deixar o meu ip na direto no componente em Server ai executo abro e abro o app e conecta normal

com essas condições acima ai

agora se deixar um outro diferente ali ou eu trocar meu ip ja era mesmo com os IF ele fala que conectou ficou True mas quando abro o app pra conectar da remote erro timeout

ai se vou no componente e mudo o ip pro meu e abro ai volta funcionar pq meu parametro nao ta levando certo o ip mesmo com o clear.

E outra se debug ele passa pelos if e diz q ta conectado TRUE

Obrigado
Caciel

Caciel

Responder

Posts

17/09/2018

Caciel

Fiz varios teste e vi que o fdconnection no params dele tem driverid database username..... tem todos mesmo o Server.
entao só pelo params.add mesmo que consigo tentar setar ele.

ja tirei S.FDConnection1.Params.Add('Params=(TFDConnectionDefParams)');

mudei posições do servercontainerunit1.ServerContainer1.DSServer1.AutoStart:= True;
servercontainerunit1.ServerContainer1.DSServer1.Start;

mas nada deu certo

então eu fui la na propriedade do componente server e deixei como localhost.
até ai tudo bem assim funciona mas uma duvida...

esse localhost vai pegar o nome ou ip da maquina?
pq preciso que seja ip nem sempre o sql aceita o nome
alem de ter q informar depois do ip ,1433 da porta

realmente sera q tem algo para que seja feito para que defina o Server para

ip do edit que estiver informado mais o ,1433 para ser aceito em todos os computador e qualquer ip ou sql server?

obrigado
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar