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 

DELPHI + ADO + SQL SERVER (PASSO A PASSO)

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
rm_fortal
Novato
Novato


Registrado: Quarta-Feira, 13 de Outubro de 2010
Mensagens: 10

MensagemEnviada: Seg Fev 07, 2011 10:28 am    Assunto: DELPHI + ADO + SQL SERVER (PASSO A PASSO) Responder com Citação

Saudações amigos do Forum.

Venho a voces com um problema que acredito ser comum na net. Porém, não pode ser tão comum pois, estou a dias tentando encontrar uma solução na internet (foruns) e nada encontrei. Pelo menos não como precisava.

PROBLEMA:

Conectar uma aplicação DELPHI 7 a um banco de dados SQL SERVER (Qualquer) via ADO.

COMENTÁRIO:

A princípio, não tem nada de complicado nisso. Eu fiz assim: Inseri em no Form um componente "ADOConnection >> Build >> Microsoft OLE DB for SQL Server >> Avançar >> e aí minha dúvida".


Tenho o SQL Server 2000 instalado e um banco criado. Vou Utilizar o nome do banco TESTE como exemplo.

1ª DÚVIDA: Na tela PROPRIEDADES DE VINCULAÇÃO DE DADOS, no Item 1 diz: SELECIONE OU INSIRA UM NOME DE SERVIDOR. Por que, não aparece nada na lista? A que se refere este item? Nome do servidor seria aquele nome que aparece no campo Nome do SQL Service Manager? Porque se for, então fiz certo. Eu coloquei este nome ali e segui os próximos passos.

No Item 2 selecionei USAR SEGURANÇA INTEGRADA DO WINDOWS NT.

No Item 3 escolhi a tabela e testei.

2ª DÚVIDA:Até aí, funcionou tudo certo. Porém, tem algo que não encaixa. Por exemplo, vou criar uma situação:

Eu instalo o SQL Server puro. Então no momento que vou distribuir (Instalar) minha aplicação eu distribuo também o Banco (Arquivo.MDF) no local de instalação (Ex. C:\TESTE). Então, como o ADO Vai se conectar a esse banco que acabei de colocar na pasta TESTE e que o SQL Server nem sabe que existe? Se fosse em Access, eu conectaria diretamente ao arquivo. Mas, como no SQL agente conecta ao Server não sei como funcionaria. Eu teria que toda vez que fosse instalar meu aplicativo em uma máquina configurar o SQL Server manualmente para que o ADO localizasse-o? Ou teria que fazer uma rotina para que eu pudesse selecionar o banco? Ou algum teria algum dispositivo que localizasse o banco automaticamente?

Quero que entendam minha dificuldade pois venho do Firebird com BDE. Daí, simplíssimo o metodo de alias e pronto. Com SQL Server complicou mais.


Amigos, Espero que possam me ajudar!

Desde já Obrigado!!!





[/img]
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Seg Fev 07, 2011 9:24 pm    Assunto: Re: DELPHI + ADO + SQL SERVER (PASSO A PASSO) Responder com Citação

rm_fortal escreveu:
Saudações amigos do Forum.

Venho a voces com um problema que acredito ser comum na net. Porém, não pode ser tão comum pois, estou a dias tentando encontrar uma solução na internet (foruns) e nada encontrei. Pelo menos não como precisava.

PROBLEMA:

Conectar uma aplicação DELPHI 7 a um banco de dados SQL SERVER (Qualquer) via ADO.

COMENTÁRIO:

A princípio, não tem nada de complicado nisso. Eu fiz assim: Inseri em no Form um componente "ADOConnection >> Build >> Microsoft OLE DB for SQL Server >> Avançar >> e aí minha dúvida".


Tenho o SQL Server 2000 instalado e um banco criado. Vou Utilizar o nome do banco TESTE como exemplo.

1ª DÚVIDA: Na tela PROPRIEDADES DE VINCULAÇÃO DE DADOS, no Item 1 diz: SELECIONE OU INSIRA UM NOME DE SERVIDOR. Por que, não aparece nada na lista? A que se refere este item? Nome do servidor seria aquele nome que aparece no campo Nome do SQL Service Manager? Porque se for, então fiz certo. Eu coloquei este nome ali e segui os próximos passos.

No Item 2 selecionei USAR SEGURANÇA INTEGRADA DO WINDOWS NT.

No Item 3 escolhi a tabela e testei.

2ª DÚVIDA:Até aí, funcionou tudo certo. Porém, tem algo que não encaixa. Por exemplo, vou criar uma situação:

Eu instalo o SQL Server puro. Então no momento que vou distribuir (Instalar) minha aplicação eu distribuo também o Banco (Arquivo.MDF) no local de instalação (Ex. C:\TESTE). Então, como o ADO Vai se conectar a esse banco que acabei de colocar na pasta TESTE e que o SQL Server nem sabe que existe? Se fosse em Access, eu conectaria diretamente ao arquivo. Mas, como no SQL agente conecta ao Server não sei como funcionaria. Eu teria que toda vez que fosse instalar meu aplicativo em uma máquina configurar o SQL Server manualmente para que o ADO localizasse-o? Ou teria que fazer uma rotina para que eu pudesse selecionar o banco? Ou algum teria algum dispositivo que localizasse o banco automaticamente?

Quero que entendam minha dificuldade pois venho do Firebird com BDE. Daí, simplíssimo o metodo de alias e pronto. Com SQL Server complicou mais.


Amigos, Espero que possam me ajudar!

Desde já Obrigado!!!





[/img]
Se eu entendi, vc pode configurar um arquivo INI para isso.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
rm_fortal
Novato
Novato


Registrado: Quarta-Feira, 13 de Outubro de 2010
Mensagens: 10

MensagemEnviada: Seg Fev 07, 2011 11:06 pm    Assunto: Re: DELPHI + ADO + SQL SERVER (PASSO A PASSO) Responder com Citação

Caro amigo. Acho que entendeu. Era exatamente o que eu pensava que teria que fazer. Porém, estranhei muito pois, depois de estar acostumado com aplicações menores com Firebird onde o próprio instalador configurava o Alias e quando terminava a instalação estava tudo pronto me deparar com esse trabalho todo me desanimou um pouco. Mas vamos em frente se for o único jeito vai ter que ser.


Obrigado pela atenção!!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Seg Fev 07, 2011 11:17 pm    Assunto: Re: DELPHI + ADO + SQL SERVER (PASSO A PASSO) Responder com Citação

rm_fortal escreveu:
Caro amigo. Acho que entendeu. Era exatamente o que eu pensava que teria que fazer. Porém, estranhei muito pois, depois de estar acostumado com aplicações menores com Firebird onde o próprio instalador configurava o Alias e quando terminava a instalação estava tudo pronto me deparar com esse trabalho todo me desanimou um pouco. Mas vamos em frente se for o único jeito vai ter que ser.


Obrigado pela atenção!!
É a forma que usamos na empresa aonde trabalho, la utilizamos mssql 2008

Mais no fb eu também costumo criar um ini
Código:

procedure TDM.GravarINITableMotoboy(Ip, CaminhoDB, Porta, Pass, Userx,
  Protoc: String);
var
  Arq: TIniFile;
  NovoNome: string;
begin
  NovoNome := dm.DataDirectory + 'ConexaoBanco.ini';
  if not FileExists(NovoNome) then
  begin
    (* Cria arquivo ini *)
    Arq := TIniFile.Create(NovoNome);
    try
      Arq.WriteString('ConexaoBanco', 'HostName', IP);
      Arq.WriteString('ConexaoBanco', 'Database', IP+CaminhoDB);
      Arq.WriteString('ConexaoBanco', 'Port', Porta);
      Arq.WriteString('ConexaoBanco', 'Password', Pass);
      Arq.WriteString('ConexaoBanco', 'User', Userx);
      Arq.WriteString('ConexaoBanco', 'Protocol', Protoc);
    finally
      FreeAndNil(Arq);
    end;
  end;
end;

procedure TDM.CarregaArquivoIni;
var
  Porta, CaminhoDB: String;
  Arq: TIniFile;
  ListaAtributos: TStrings;
  i: Integer;
begin
  Porta := '3050';
  MeuIP := IdIPWatch1.LocalIP;  //busca o IP da maquina
  CaminhoDB := ':'+DM.DataDirectory+'MOTOBOY.fdb';
  //Se não tiver gravado o INI no diretorio então cria o INI
  if bChecked = True then
    GravarINITableMotoboy(MeuIP,CaminhoDB,Porta,'masterkey','SYSDBA','firebird-2.0')
  else
    GravarINITableMotoboy(NomeComputador,CaminhoDB,Porta,'masterkey','SYSDBA','firebird-2.0');

  //Lista e carrega o INI no sistema
  ListaAtributos := TStringList.Create;
  //NovoNome := Copy(Application.ExeName, 1, Pos('.EXE', UpperCase(Application.ExeName)) - 1) + '.ini';
  CaminhoINI := dm.DataDirectory + 'ConexaoBanco.ini';
  //Se existe o INI então conecta
  if not FileExists(CaminhoINI) then
    raise Exception.Create('Atenção! Não foi criado o arquivo CONEXAOBANCO.INI')
  else
  begin
    Arq := TIniFile.Create(CaminhoINI);
    Arq.ReadSectionValues('ConexaoBanco', ListaAtributos);
    sHostName  := Arq.ReadString('ConexaoBanco','HostName','');
    sDatabase  := Arq.ReadString('ConexaoBanco','Database','');
    sPort      := Arq.ReadString('ConexaoBanco','Port','');
    sPassword  := Arq.ReadString('ConexaoBanco','Password','');
    sUser      := Arq.ReadString('ConexaoBanco','User','');
    sProtocol  := Arq.ReadString('ConexaoBanco','Protocol','');
  end;
  Arq.Free;
  ListaAtributos.Free;
end;



o arquivo INI
Código:
[ConexaoBanco]
HostName=HOME-D393E99529
Database=HOME-D393E99529:c:\Aldac\Motoboy\MOTOBOY.fdb
Port=3050
Password=masterkey
User=SYSDBA
Protocol=firebird-2.0


No final acaba tudo sendo meio parecido.

No MSSQL configuramos o caminho do banco no INI também, um pouco diferente é claro, mais não foge muito um do outro, apenas cada um com sua particularidade.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
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 -> Banco de Dados 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