Como Fazer uma Conexão Remota com o delphi xe6 + dataSnap
Tou tentado fazer conexão com um banco de dados em Nuvem mais sempre dar erro de Socket
Veja a conexão no Servidor e e no Cliente
Sabendo que no Componente de acesso a dados que é o SqlConnection eu ja coloquei o Caminho e o IP da maquina onde tá o Banco
veja
Database= Aqui vai o IP do servidor :C:\Program Files\SysBanco\SYSCOMER.FDB
e no Componente Transporte eu coloquei a porta padrão 211
ai vai as outras configuração do servidor
no Botão Conecta Foi Colocado o seguinte Código
procedure TF_Servidor.SpeedConectaClick(Sender: TObject);
begin
SC.Transporte.Port := StrToInt(Edit_Porta.Text);
SC.Transporte.Start;
SC.DSServer1.Start;
end;
e no Botão Desconecta foi Colocado o seguinte código
procedure TF_Servidor.SpeedDesconectaClick(Sender: TObject);
begin
SC.Transporte.Stop;
SC.DSServer1.Stop;
end;
no Activate do Form coloquei o seguinte Código para visualizar a porta atual no Edit
procedure TF_Servidor.FormActivate(Sender: TObject);
begin
Edit_Porta.Text := IntToStr(SC.Transporte.Port);
end;
Já no Cliente é assim :
no Botão Conectar coloquei o seguinte Código
procedure TF_Configuracao.SpeedConectarClick(Sender: TObject);
begin
uDM.Conectede.Close;
uDM.Conectede.Params.Clear;
uDM.Conectede.Connected := False;
uDM.Conectede.Params.Values['Port'] := Edit_Porta.Text; // Opção Para mudar a Porta
uDM.Conectede.Connected := True;
uDM.CDS_Unidades.Open;
end;
e ainda coloquei no onCreate do DataModule o Seguinte Código
procedure TuDM.DataModule(Sender: TObject);
begin
//Conectede.Connected:= False;
Conectede.Params.Clear;
Conectede.Params.Add('Port=211');
Conectede.Params.Add('HostName=aqui é o IP do Servidor');
Conectede.Params.Add('CommunicationProtocol=tcp/ip');
Conectede.Params.Add('DatasnapContext=datasnap/');
try
Conectede.Connected:=TRUE;
ShowMessage('Conectado com sucesso a base de dados '+Conectede.Params.Values['Database']);
CDS_Unidades.Open;
except
//on E: Exception do
begin
ShowMessage('Erro ao tentar conexão com o Banco..');
//Application.Terminate;
end;
end;
end;
se alguém poder me ajudar
Veja a conexão no Servidor e e no Cliente
Sabendo que no Componente de acesso a dados que é o SqlConnection eu ja coloquei o Caminho e o IP da maquina onde tá o Banco
veja
Database= Aqui vai o IP do servidor :C:\Program Files\SysBanco\SYSCOMER.FDB
e no Componente Transporte eu coloquei a porta padrão 211
ai vai as outras configuração do servidor
no Botão Conecta Foi Colocado o seguinte Código
procedure TF_Servidor.SpeedConectaClick(Sender: TObject);
begin
SC.Transporte.Port := StrToInt(Edit_Porta.Text);
SC.Transporte.Start;
SC.DSServer1.Start;
end;
e no Botão Desconecta foi Colocado o seguinte código
procedure TF_Servidor.SpeedDesconectaClick(Sender: TObject);
begin
SC.Transporte.Stop;
SC.DSServer1.Stop;
end;
no Activate do Form coloquei o seguinte Código para visualizar a porta atual no Edit
procedure TF_Servidor.FormActivate(Sender: TObject);
begin
Edit_Porta.Text := IntToStr(SC.Transporte.Port);
end;
Já no Cliente é assim :
no Botão Conectar coloquei o seguinte Código
procedure TF_Configuracao.SpeedConectarClick(Sender: TObject);
begin
uDM.Conectede.Close;
uDM.Conectede.Params.Clear;
uDM.Conectede.Connected := False;
uDM.Conectede.Params.Values['Port'] := Edit_Porta.Text; // Opção Para mudar a Porta
uDM.Conectede.Connected := True;
uDM.CDS_Unidades.Open;
end;
e ainda coloquei no onCreate do DataModule o Seguinte Código
procedure TuDM.DataModule(Sender: TObject);
begin
//Conectede.Connected:= False;
Conectede.Params.Clear;
Conectede.Params.Add('Port=211');
Conectede.Params.Add('HostName=aqui é o IP do Servidor');
Conectede.Params.Add('CommunicationProtocol=tcp/ip');
Conectede.Params.Add('DatasnapContext=datasnap/');
try
Conectede.Connected:=TRUE;
ShowMessage('Conectado com sucesso a base de dados '+Conectede.Params.Values['Database']);
CDS_Unidades.Open;
except
//on E: Exception do
begin
ShowMessage('Erro ao tentar conexão com o Banco..');
//Application.Terminate;
end;
end;
end;
se alguém poder me ajudar
Aislan Sousa
Curtidas 0
Respostas
Mario França
04/05/2016
acredito que o erro seja ao executar SpeedConectarClick(...
uDM.Conectede.Params.Clear;
Pois no onCreate do DataModule é criado os parâmetros e ao executar OnClick é feito uma limpa dos mesmos.
uDM.Conectede.Params.Clear;
Pois no onCreate do DataModule é criado os parâmetros e ao executar OnClick é feito uma limpa dos mesmos.
GOSTEI 0
Aislan Sousa
04/05/2016
Ola meu amigo Fico feliz em vc ter Procurado me ajudar Obrigado
Mais mesmo sem eu executar o Código do SpeedConectar era para ele conectar certo pois o parametros de configuração estão dentro do Código do Sistema certo então são carregados quando executo o sistema.
O Código do SpeedConectar só era executado Antes de eu ter colocado o Código no onCreate do DataModule por que
Veja :
procedure TF_Configuracao.SpeedConectarClick(Sender: TObject);
begin
uDM.Conectede.Close; // Fecha a Conexão
uDM.Conectede.Params.Clear; // Limpa os Parametros que estiverem
uDM.Conectede.Connected := False; // Desativo a conexão
uDM.Conectede.Params.Values['Port'] := Edit_Porta.Text; // Opção Para mudar a Porta
uDM.Conectede.Connected := True; // Ativo a Conexão
uDM.CDS_Unidades.Open; // Ativo o Cds_Unidades
end;
mais eu Não Tou Usando Esse Código Não mais
Fico esperando Resposta sua
meu Email é metareciclagemdepicos@gmail.com
espero muita ajuda pois tou sem trabalho e preciso do sistema para ganhar o pão de cada-dia.
Mais mesmo sem eu executar o Código do SpeedConectar era para ele conectar certo pois o parametros de configuração estão dentro do Código do Sistema certo então são carregados quando executo o sistema.
O Código do SpeedConectar só era executado Antes de eu ter colocado o Código no onCreate do DataModule por que
Veja :
procedure TF_Configuracao.SpeedConectarClick(Sender: TObject);
begin
uDM.Conectede.Close; // Fecha a Conexão
uDM.Conectede.Params.Clear; // Limpa os Parametros que estiverem
uDM.Conectede.Connected := False; // Desativo a conexão
uDM.Conectede.Params.Values['Port'] := Edit_Porta.Text; // Opção Para mudar a Porta
uDM.Conectede.Connected := True; // Ativo a Conexão
uDM.CDS_Unidades.Open; // Ativo o Cds_Unidades
end;
mais eu Não Tou Usando Esse Código Não mais
Fico esperando Resposta sua
meu Email é metareciclagemdepicos@gmail.com
espero muita ajuda pois tou sem trabalho e preciso do sistema para ganhar o pão de cada-dia.
GOSTEI 0
Mario França
04/05/2016
Tente retirar a seguinte linha [ uDM.Conectede.Params.Clear ]
GOSTEI 0