|
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
rm_fortal Novato
Registrado: Quarta-Feira, 13 de Outubro de 2010 Mensagens: 10
|
Enviada: Seg Fev 07, 2011 10:28 am Assunto: DELPHI + ADO + SQL SERVER (PASSO A PASSO) |
|
|
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 |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Seg Fev 07, 2011 9:24 pm Assunto: Re: DELPHI + ADO + SQL SERVER (PASSO A PASSO) |
|
|
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 |
|
|
rm_fortal Novato
Registrado: Quarta-Feira, 13 de Outubro de 2010 Mensagens: 10
|
Enviada: Seg Fev 07, 2011 11:06 pm Assunto: Re: DELPHI + ADO + SQL SERVER (PASSO A PASSO) |
|
|
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 |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Seg Fev 07, 2011 11:17 pm Assunto: Re: DELPHI + ADO + SQL SERVER (PASSO A PASSO) |
|
|
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 |
|
|
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|