Clique para saber mais...
  Home     Download     Produtos / Cursos     Revista     Vídeo Aulas     Fórum     Contato   Clique aqui para logar | 06 de Outubro de 2026
  Login

Codinome
Senha
Salvar informações

 Esqueci minha senha
 Novo Cadastro

  Usuários
116 Usuários Online

  Revista ActiveDelphi
 Assine Já!
 Edições
 Sobre a Revista

  Conteúdo
 Apostilas
 Artigos
 Componentes
 Dicas
 News
 Programas / Exemplos
 Vídeo Aulas

  Serviços
 Active News
 Fórum
 Produtos / Cursos

  Outros
 Colunistas
 Contato
 Top 10

  Publicidade

  [Artigos]  Trabalhando com SQL Server em Rede – Parte I
Publicado por ActiveDelphi : Segunda, Julho 10, 2006 - 10:53 GMT-3 (14089 leituras)
Comentários 3 Comentários   Enviar esta notícia a um amigo Enviar para um amigo   Versão para Impressão Versão para impressão
Sérgio Guedes Olá, amigos da Active Delphi! Nesse meu segundo artigo como colunista do site, abordarei um assunto muito procurado pela maioria dos leitores que trabalha com SQL Server, como eu. Vou explicar como criar uma aplicação simples usando a engine ADO para conexão com o SQL Server, usando os conceitos de arquivos ini para salvar alguns parâmetros e usá-los na nossa aplicação.

Estudando as necessidades da nossa aplicação

Nossa aplicação conterá um arquivo ini chamado Config, onde conterá dois parâmetros: DATABASE e SERVIDOR. O parâmetro servidor vai guardar o nome do servidor SQL ou endereço IP, e o parâmetro database vai guarda o nome do banco de dados.

Conhecendo sobre arquivo ini no Windows

Arquivos .INI são uma boa maneira de salvarmos as configurações de uma aplicação para que, quando tal aplicação for executada novamente, estas configurações sejam restauradas.

Os arquivos .INI são arquivos de texto comuns, que podem ser visualizados e editados no Bloco de Notas do Windows ou em qualquer outro editor de texto. Contudo, essa extensão de arquivo tem algumas exigências quanto ao seu layout e uma restrita quantidade de tipos de dados disponíveis. Seu layout é dividido em blocos ou seções cujos nomes são colocados entre colchetes ([ ]) e cada seção pode conter vários atributos que podem ser apenas dos tipos string, integer ou boolean.

O Delphi dispõe para os desenvolvedores uma classe pronta para trabalhar com estes arquivos: TIniFile. Ao criarmos um objeto para esta classe, a ligamos a um arquivo que este estará disponível para leitura e escrita de dados. A classe possui três métodos de leitura e três para a escrita, que são: ReadString, ReadInteger, ReadBool e WriteString, WriteInteger, WriteBool, respectivamente. Existem ainda outros métodos que definem valores padrão de leitura para os arquivos .INI e que permitem que uma seção inteira seja lida ou apagada de uma única vez.

Nota: No exemplo, tenho um banco de dados chamado Omega e uma tabela chamada TbGrupo. Não entrarei em detalhes sobre a criação dos mesmos, mais segue abaixo o script que pode ser usado para a criação do banco.

CREATE DATABASE OMEGA -- criando o banco de dados
ON
   PRIMARY (NAME=OMEGA_data,
   FILENAME = 'c:\MSSQL7\DATA\OMEGA.mdf',  -- diretório onde vais ser salvo o mdf
   SIZE = 10MB,
   MAXSIZE = 15MB,
   FILEGROWTH = 25%)
LOG ON
   (NAME = OMEGA_log,
    FILENAME = 'c:\MSSQL7\DATA\ OMEGA.ldf',  -- diretório onde vais ser salvo o ldf
    SIZE = 4MB,        -- tamanho do Banco
    MAXSIZE = 6MB,
    FILEGROWTH = 2MB)

CREATE TABLE TBGRUPO
	(
 	COD_GRP int not NULL,
	NOMGRP varchar(15) NULL
)

insert into TBGRUPO (COD_GRP, NOMGRP) values (1,'Active');
insert into TBGRUPO (COD_GRP, NOMGRP) values (2,'Delphi');
insert into TBGRUPO (COD_GRP, NOMGRP) values (3,'Sergio');

Criando a aplicação Delphi

Crie uma nova aplicação no Menu File / New / Application. Adicione os seguintes componentes:

2 Panel;
4 Label;
1 DataSource
1 DBGrid

Deixe o form com o mostrado na figura abaixo:


Figura 1 - Janela principal da aplicação.

Ainda trabalhando com este form, altere as seguintes propriedades:

  Name = FrmMenu
  Position = poDesktopCenter

Fazendo a conexão com o SQL Server

Vamos usar para realizar a conexão com o banco SQL Server, os componentes da paleta ADO:


Figura 2 - palheta de componentes ADO

Adicione no form mais dois componentes: um ADOConnection e um ADOQuery. O primeiro é o responsável por se conectar com o Banco de Dados. Para configura-lo, clique na propriedade ConnectionString e na tela seguinte, escolha a opção Build.


Figura 3 - Criando a String de Conexão

Na lista de Drivers, escolha Microsoft ole DB Provider for SQL Server, e clique em avançar. Preencha os campos como segue abaixo:


Figura 4 - Propriedades da Conexão

Opção 1 - Servidor - Como nosso servidor não é remoto, colocaremos (Local), indicando que esse e um servidor local.
Opção 2 - Logon - Informamos que vamos usar contas de usuário do próprio SQL Server, como no exemplo: sa.
Opção 3 - Usuários - Na lista de banco de Dados, escolheremos um banco qualquer somente para ilustrar o exemplo.
Obs: Você pode usar o banco activedelphi criado no meu primeiro artigo aqui no site, sobre controle de usuários e tentativa. Importante lembrar que as opções Senha em Branco e Permitir Salvamento de Senhas devem ficar marcadas.

Clique no botão Testar Conexão para verificar se está tudo configurado corretamente. Se estiver, vamos receber a seguinte mensagem: "Teste de Conexão Realizado com Sucesso".

Clique em OK até voltar ao form.

Volte para as propriedades do ADOConnection e coloque:

  LoginPrompt = false
  Name = ADOConn.

Altere também no ADOQuery, as propriedades:

  Name = qryLstGrupo
  SQL = select * from tbgrupo:

Nota: Não podemos esquecer de ligar o dsGrupo ao qryLstGrupo e o DBGrid ao dsGrupo.

Se ativarmos a query (propriedade active = true), já estaremos conectados ao SQL Server.

Declarando as Procedures:

Vamos declarar duas procedures na seção private do nosso Form.

private
   Procedure AdoConecta; // Conecta o AdoConnection e o ADOQuery.
   Procedure AdoDesconecta; // Desconectar o AdoConnection e o ADOQuery.

Para criar o corpo das procedures use CTRL+ SHIFT+C, e as implemente:

procedure TFrmMenu.AdoConecta;
begin
  ADOConn.Connected:= true;
  qryLstGrupo.Open;
end;
 
procedure TFrmMenu.AdoDesconecta;
begin
  qryLstGrupo.close;
  ADOConn.Connected:= False;
end;

No evento onCreate do Form, declare uma variável chamada arqini do tipo TiniFile. Não se esqueça de declarar na seção uses do form a unit iniFiles.

O que vamos usar para fazer a conexão via arquivo ini?

Clique no ADOConn e recorte o que estiver na propriedade ConnectionString deixando ela em branc. Usaremos ela mais tarde.

Conteúdo do ConnectionString

Provider=SQLOLEDB.1;Password="";Persist Security Info=True;User ID=sa; Initial Catalog=Omega; Data Source=(Local);Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=SERGIO;Use Encryption for Data=False;Tag with column collation when possible=False

Explicando as propriedades mais importantes do ConnectionString:

ID=sa; - Usuario padrão do sql server (sa).
Password=""; - Senha do Usuário.
Initial Catalog=Omega; - Nome do banco de Dados.
Data Source=(Local); - Nome do Servidor Sql.

Vamos usar dinamicamente duas dessas propriedades, que são Initial Catalog e Data Source. Ambas serão lidas do arquivo Config.ini.

Lendo o conteúdo das chaves do arquivo ini.

Para o parâmetro Initial Catalog=Omega, façamos:

  ...Initial Catalog='+ArqInI.ReadString('conexao','DATABASE','')+'...

Para Data Source=(Local), façamos:

  ...Data Source= '+ ArqInI.ReadString('conexao','SERVIDOR','')+'…

‘conexao’ é o nome da seção que possui as duas chaves:

DATABASE, que é onde se encontra o nome do banco no ini e
SERVIDOR, que é o nome do Servidor SQL.

Nota: Observe que depois do nome da chave encontra-se um par de apóstrofes (‘’). Este é o valor padrão, que será usado caso a chave não possa ler lida por algum motivo. No exemplo, o valor padrão é nulo, mas poderíamos utilizar ‘(Local)’ como valor padrão.

Configurando a aplicação no Evento OnCreate

procedure TFrmMenu.FormCreate(Sender: TObject);
var
arqini : TIniFile;
begin
// Verifica se o Config está na pasta do Executável.
arqini := TIniFile.Create(ExtractFilePath(Application.ExeName )+'Config.ini');

// A propriedade ConnectionString do ADoConn recebe os dados da Conexão.
// Clique no ADoConn e apage o que estiver na sua propriedade ConnectionString

AdoConn.ConnectionString := 'Provider=SQLOLEDB.1;Password="";'+
  'Persist Security Info=True; User ID=sa; Initial Catalog='+
  ArqInI.ReadString('conexao','DATABASE','')+';Data Source= '+
  ArqInI.ReadString('conexao','Data Source','')+'; Use Procedure for Prepare=1;'+
  'Auto Translate=True;Packet Size=4096;Workstation ID=SERGIO;'+
  'Use Encryption for Data=False;Tag with column collation when possible=False';

// Chama a procure Conecta.
AdoConecta;

// Tira a variável do arquivo ini da memória.
arqini.Free;
End;

Veja também, o conteúdo do nosso arquivo Config.ini:

[conexao]
***************************************************************************
*                                                                         *
*  Nessa seção detalha-se o nome do servidor e do banco de dados          *
*  Servidor: Nome ou IP do Servidor SQL.                                  *
*  Database: Nome do Banco de Dados SQL.                                  *
*                                                                         *
***************************************************************************
SERVIDOR=(Local)
DATABASE=OMEGA;

Você pode compilar a aplicação e verificar se está tudo funcionando corretamente. Se não estiver, revise os passos acima e se precisar, poderá baixar o exemplo na seção de downloads ou no link disponível ao final do artigo.

Resumo

Apresentei nesse artigo como trabalhar com sua aplicação em rede, com MSQL. No próximo artigo, vamos aprender como criar um instalador para a nossa aplicação. Até lá.

Agradecimentos

Primeiramente, agradeço a Deus, e aos amigos do site Active Delphi pelo apoio que me deram (Kelver e Marcelo). Queria convidar aos visitantes do site que não freqüentam o nosso fórum a acessar e participar. Tenho muito orgulho em fazer parte desse grande site. Participe! É grátis e o cadastro é bem simples!

Qual o foco dos meus artigos?

Estou procurando explicar de maneira fácil, algumas das dúvidas que todos os programadores iniciantes enfrentam quando estão criando seus primeiros projetos.

E se eu tiver Duvidas?

Para dúvidas, críticas ou sugestões, entrem em contato comigo pelo e-mail abaixo, que na medida do possível responderei.

Sérgio de Castro Guedes
Analista da Mais Sistemas Inteligentes,
Atualmente trabalha com MSQL, MySQL, FireBird.
Contato: sergio_rj45@yahoo.com.br

Clique aqui para fazer o download do exemplo.



Comentários Comentários
   Ordem:  
Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos.


por: Borland_Linuxer : Nov 08, 2006 - 11:20
(Informações sobre o membro | Enviar uma mensagem) http://www.logicdelphi.1br.net
// Nessa linha abaixo coloque
ArqInI.ReadString('conexao','SERVIDOR','')+'; obserque que troquei o data source
Servidor..

Por que nessa linha eu estava dizendo que no ini teria uma chave chamada
data source mais na verdade eu coloquei no ini SERVIDOR., abs

  Edição 112

Revista ActiveDelphi

  50 Programas Fontes


  Produtos

Conheça Nossos Produtos

Copyright© 2001-2016 – Active Delphi – Todos os direitos reservados