ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Erro ao conectar com firedac em SQLServer 2008 (Internet)

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
leo_bruno
Profissional
Profissional


Registrado: Sexta-Feira, 16 de Abril de 2010
Mensagens: 666

MensagemEnviada: Seg Jul 23, 2018 9:34 pm    Assunto: Erro ao conectar com firedac em SQLServer 2008 (Internet) Responder com Citação

Olá pessoALL:

Estou precisando de uma maozinha.

Preciso temporariamente habilitar pra um cliente, o acesso direto através da internet a um banco de dados SQLServer2008.

Eu já configurei corretamente o Servidor e o NAT no modem.

Sei que está configurado corretamente, pq consigo estabelecer conexão remota usando telnet na porta 1433 e tb testei usando uma ferramenta de manutenção que usamos.

Tendo eliminado o modem do problema, quando eu tento conectar a aplicação, eu obtenho o erro:

"EMSSQLNativeException" Timeout Expired.


Abaixo vai a configuração da conexão:

Código:


class function TClsBancoDados.ConectarMsSql(aFDConn: TFDConnection; aDadosCon: TCnxMsSQL): Boolean;
const
  cIdMetodo = '"TClsBancoDados.ConectarMsSql" Responsável por conectar ao banco de dados Microsoft SQL Server' + sLineBreak;
var
  _OsAutent: string;
begin
  Result := False;
  try
     _OsAutent := 'Yes';

     if aDadosCon.AuthType = taServidor then
       _OsAutent := 'No';

    aFDConn.Params.clear;
    aFDConn.DriverName := 'MSSQL';
    aFDConn.LoginPrompt := False;
    aFDConn.Params.Add('Server=' + aDadosCon.ServerName);
    aFDConn.Params.Add('Database=' + aDadosCon.DBName);
    aFDConn.Params.Add('OSAuthent=' + _OsAutent);
    aFDConn.Params.Add('Port=1433');
  //  aFDConn.Params.Add('LoginTimeout=10');

    if aDadosCon.AuthType = taServidor then
    begin
      aFDConn.Params.Add('User_Name=' + aDadosCon.UserName);
      aFDConn.Params.Add('Password=' + aDadosCon.UserPass);
    end;

    aFDConn.Params.add('ApplicationName=' + ExtractFileName(aDadosCon.ApplicName));
    aFDConn.Connected := True;
    Result := True;
  except
    on e:Exception do
      raise Exception.Create(cIdMetodo + e.Message);
  end;
end;



Alguem por aqui ja conseguiu estabelecer conexão pela internet com SQLServer2008 usando firedac?

Uso Delphi Tokyo 10.2.3

Obrigado
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Ter Jul 24, 2018 9:52 am    Assunto: Responder com Citação

Bom dia,

Nunca testei, mas você tentou fazer um teste passando false para OSAuthent e preenchendo os parâmestros User_Name e Password?


Editado pela última vez por imex em Sáb Set 30, 2023 5:42 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leo_bruno
Profissional
Profissional


Registrado: Sexta-Feira, 16 de Abril de 2010
Mensagens: 666

MensagemEnviada: Ter Jul 24, 2018 10:12 am    Assunto: Responder com Citação

Olá Imex.

Obrigado pela resposta.


Não está aparecendo ai no codigo, mas estou usando a autenticacao de servidor.

Então, em resposta a sua pergunta, Sim, estou passando usuario e senha e OS Autent = false.

Só funciona dessa maneira pra este caso, visto que o ambiente do cliente não tem servidor de dominio e a maquina que executa a aplicação está fora do ambiente de rede.

Eu já havia eliminado essa possibilidade, pq conforme mencionado, eu consigo conectar pelo gerenciador do banco EMS SQLServer Manager, mas somente usando autenticação do servidor.

Quando tento usando autenticacao do windows, retorna erro que o usuario pertence a um dominio desconhecido.



imex escreveu:
Bom dia,

Nunca testei, mas você tentou fazer um teste passando false para OSAuthent e preenchendo os parâmestros User_Name e Password?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Ter Jul 24, 2018 10:46 am    Assunto: Responder com Citação

Não tenho como testar mas me parece que existe um parâmetro chamado DriverID no Firedac:

Código:
    aFDConn.Params.Add('DriverID=MSSQL');


Confirme também se os parâmetros não estão ficando duplicados; não sei se o preenchimento do DriverName não adiciona alguns parâmetros.

Espero que ajude
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leo_bruno
Profissional
Profissional


Registrado: Sexta-Feira, 16 de Abril de 2010
Mensagens: 666

MensagemEnviada: Ter Jul 24, 2018 10:49 am    Assunto: Responder com Citação

Obrigado novamente IMEX:

Tem mesmo, mas estou populando a property, veja:
Código:

    aFDConn.DriverName := 'MSSQL';
    aFDConn.LoginPrompt := False;


Além disso, eu não mencionei, mas a aplicação conecta normalmente quando na rede local.

imex escreveu:
Não tenho como testar mas me parece que existe um parâmetro chamado DriverID no Firedac:

Código:
    aFDConn.Params.Add('DriverID=MSSQL');


Confirme também se os parâmetros não estão ficando duplicados; não sei se o preenchimento do DriverName não adiciona alguns parâmetros.

Espero que ajude
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
anderbelluno
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011
Mensagens: 1030
Localização: Cianorte-PR

MensagemEnviada: Ter Jul 24, 2018 11:24 am    Assunto: Responder com Citação

Vai de REST Dataware amigo.

http://www.restdw.com.br/

https://www.youtube.com/watch?v=I2hyC3rUTr4&list=PLYkQWB6GifDWE9hxzc4XTVaeygVwgm736

https://www.youtube.com/channel/UCwi6wMaP6Z6nIzP57IMcr8Q

https://www.youtube.com/channel/UC9_npZl3Lh49oX7lkRRu7OQ

https://www.youtube.com/channel/UCIxZJV2fGH2l0m4_uADYHuQ

https://sourceforge.net/projects/rest-dataware-componentes/

Usa o Checkout com o SVN (Tortoise), assim vai ter sempre a última vesão.

Dúvidas entra no grupo do Skype>
https://join.skype.com/sfqjQvfrLIeF

Vlw.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Ter Jul 24, 2018 11:26 am    Assunto: Responder com Citação

Sobre o parâmetro, postei porque em "Connection Definition Parameters" na página abaixo consta que o DriverID é um dos parâmetros requeridos na maioria das aplicações:
Citação:
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Connect_to_Microsoft_SQL_Server_(FireDAC)


Espero que alguém mais possa ajudar
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leo_bruno
Profissional
Profissional


Registrado: Sexta-Feira, 16 de Abril de 2010
Mensagens: 666

MensagemEnviada: Ter Jul 24, 2018 11:30 am    Assunto: Responder com Citação

Olá amigo:

Obrigado.

Esta aplicação está sendo migrada para 3 camadas com Restful com DataSnap.

Esta solução é apenas temporária e o mais crítico aqui é o tempo.
Como eu consigo estabelecer comunicação com telnet e com o gerenciador do banco, o problema está na conexão da aplicação.

anderbelluno escreveu:
Vai de REST Dataware amigo.

http://www.restdw.com.br/

https://www.youtube.com/watch?v=I2hyC3rUTr4&list=PLYkQWB6GifDWE9hxzc4XTVaeygVwgm736

https://www.youtube.com/channel/UCwi6wMaP6Z6nIzP57IMcr8Q

https://www.youtube.com/channel/UC9_npZl3Lh49oX7lkRRu7OQ

https://www.youtube.com/channel/UCIxZJV2fGH2l0m4_uADYHuQ

https://sourceforge.net/projects/rest-dataware-componentes/

Usa o Checkout com o SVN (Tortoise), assim vai ter sempre a última vesão.

Dúvidas entra no grupo do Skype>
https://join.skype.com/sfqjQvfrLIeF

Vlw.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leo_bruno
Profissional
Profissional


Registrado: Sexta-Feira, 16 de Abril de 2010
Mensagens: 666

MensagemEnviada: Ter Jul 24, 2018 11:31 am    Assunto: Responder com Citação

Você tem razão, vale a pena testar.
Farei o teste e respondo aqui com o resultado mais tarde.
Obrigado mais uma vez.

imex escreveu:
Sobre o parâmetro, postei porque em "Connection Definition Parameters" na página abaixo consta que o DriverID é um dos parâmetros requeridos na maioria das aplicações:
Citação:
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Connect_to_Microsoft_SQL_Server_(FireDAC)


Espero que alguém mais possa ajudar
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
anderbelluno
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011
Mensagens: 1030
Localização: Cianorte-PR

MensagemEnviada: Ter Jul 24, 2018 11:36 am    Assunto: Responder com Citação

leo_bruno escreveu:
Olá amigo:

Obrigado.

Esta aplicação está sendo migrada para 3 camadas com Restful com DataSnap.

Esta solução é apenas temporária e o mais crítico aqui é o tempo.
Como eu consigo estabelecer comunicação com telnet e com o gerenciador do banco, o problema está na conexão da aplicação.

anderbelluno escreveu:
Vai de REST Dataware amigo.

http://www.restdw.com.br/

https://www.youtube.com/watch?v=I2hyC3rUTr4&list=PLYkQWB6GifDWE9hxzc4XTVaeygVwgm736

https://www.youtube.com/channel/UCwi6wMaP6Z6nIzP57IMcr8Q

https://www.youtube.com/channel/UC9_npZl3Lh49oX7lkRRu7OQ

https://www.youtube.com/channel/UCIxZJV2fGH2l0m4_uADYHuQ

https://sourceforge.net/projects/rest-dataware-componentes/

Usa o Checkout com o SVN (Tortoise), assim vai ter sempre a última vesão.

Dúvidas entra no grupo do Skype>
https://join.skype.com/sfqjQvfrLIeF

Vlw.




Cara, 3 minutos vc transforma sua aplicação em 3 camadas com o REST Dataware.

Te garanto, vale a pena gastar 5 minutinhos e olhar alguns vídeos.


Se seu problema é tempo, então essa seria a melhor solução, vc praticamente trabalha como se estivesse em 2 camadas ainda.


E além do mais, o componente é FREE.

Testa ai, assiste alguns vídeos e vai ver sobre o que estou falando.

Vlw.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB