Neste pequeno artigo, estarei demonstrando como criar uma aplicação usando o Delphi 7, conectando com um banco de dados do SQL Server 2000, através dos componentes da paleta ADO.

Primeiramente vamos criar um banco de dados simples com apenas uma tabela para realizarmos os procedimentos. Para isso já com o SQL Server 2000 devidamente instalado no micro, abra o aplicativo Enterprise Manager, que é instalado junto com o pacote de instalação do SQL Server 2000. Selecione Microsoft SQL Server -> SQL Server Group -> (Local)(Windows NT) e clique com o botão da direita do mouse em Databases e no menu que se abre clique em “New Database...”, conforme ilustrado na imagem abaixo:

novo banco

Na janela que se abre, na aba General, informe um nome para o banco de dados no campo Name. Alterne para a aba Data File e em location selecione a pasta onde será salvo o arquivo do banco de dados. Faça o mesmo na aba Transacion Log, para informar onde será salvo o arquivo de log. Veja o exemplo abaixo:

o que será salvo no arquivo log

arquivo log

Feito isso clique em ok para que seja criado o banco de dados.

Agora iremos criar as tabelas do banco de dados. Neste exemplo será criado apenas uma tabela para demonstração. Para isso Selecione em Databases a tabela Criada (no exemplo o banco de dados Agenda), e clique com o botão da direita do mouse e em seguida em “New Table...”.

nova tabela

Monte a estrutura da tabela conforme mostrado abaixo, ou a sua preferência.

estrutura da tabela

Com isso concluímos a parte de criação do banco de dados.

Nesta parte do artigo vamos criar a conexão do Delphi 7 com o banco de dados do SQL Server. Para isso abra o Delphi 7 e crie um novo projeto. Adicione um DataModulo que será usado para realizarmos esta conexão. Salve todo projeto nomeando as unit’s conforme preferir.

Adicione no Datamodulo um componente ADOConnection da paleta ADO. Dê um duplo clique sobre o mesmo e na janela que se abre selecione a opção “Use Connection String” e clique no botão “Build”. Veja o Exemplo abaixo:

adicionando datamodulo

Na janela que se abre, na aba “Provedor” selecione na lista o item “Microsoft OLE DB Provider for SQL Server”. Clique no botão avançar ou alterne para a aba “Conexão” e no item “1. Selecione ou insira um nome de servidor ”, selecione ou informe o nome do servidor que em geral é o nome do computador identificado no Windows (observação: Se o servidor estiver ativo, o nome deverá aparecer no combo). No item “2. Insera as informações para fazer logon no servidor.” Selecione a opção “Usar a segurança integrada do windows NT”. Agora selecione no item (3) a opção Selecionar o banco de dados no servidor, e no combo abaixo selecione o servidor criado anteriormente. Veja o Exemplo abaixo:

adicionando o servidor

Clique no botão OK para gerar o script de conexão.

Observe que a string de conexão foi gerada no campo abaixo de “Use connection String”.

Clique em OK novamente para retornar ao projeto.

Altere a propriedade LoginPrompt do componente ADOConnection para false, evitando assim que seja solicitado a digitação de senha em toda conexão e altere também a propriedade “Connected” para true testando assim a conexão.

Para garantir a conexão em tempo de execução do projeto adicione o seguinte script no evento oncreate do Datamodulo:

 try
     ADOConnection1.Connected := false;
     ADOConnection1.ConnectionString := 'Adicione aqui a string gerada anteriormente';
     ADOConnection1.Connected := true;
   except
     MessageDlg('Erro ao conectar com banco de dados!', mtError, [mbOK], 0);
     Application.Terminate;
   end;

Adicione agora no Datamodulo um componente ADOTable. Selecione na propriedade “Connection”, o componente SQLConnection. Dê um duplo clique no componente e na sequência, clicando com o botão da direita do mouse na janela que se abre selecione “Add All Fields”. Após aparecer os campos da tabela na janela, Feche-a.

Altere a propriedade Active para true para verificar a conexão com a tabela. Veja o Exemplo abaixo:

propriedade active

E com isso concluímos a conexão do Delphi com o banco de dados SQL Server 2000.

Vamos Agora criar a tela onde serão cadastrados e visualizados os dados da tabela do bando de dados. Para isso adicione no formulário principal do projeto os seguintes componentes:

PageControl da Paleta Win32;
 DbGrid, DbNavigator e DbEdit da paleta Data Controls;
 Label e PopupMenu da paleta Standart;

Modelos seguindo o exemplo da figura abaixo ou como preferir:

modelo de formulario

componentes

Para quem não conhece, foram criados duas paginas no componente PageControl (Contatos e Cadastro conforme acima). Para criar estas paginas, basta clicar com o botão da direita do mouse sobre o componente e selecionar “New Page”.

No evento OnShow do formulário adicione os script’s:

DataContatos.DataSet := DataModule1.ADOTable1;
   DataContatos.DataSet.Open;
   PageControl1.TabIndex := 0;

E no evento OnClose:

  DataContatos.DataSet.Close;

Na propriedade PopupMenu do formulário principal selecione o componente PopupMenu.

Dê um duplo clique no componente PopupMenu e crie uma opção de menu para localizar o contato; Dê um duplo clique nesta opção e adicione o script:

var aLocalizar : String;
 begin
   aLocalizar := '';
   if InputQuery('Localizar','Nome do Contato',aLocalizar) then
   begin
     if Length(aLocalizar) > 0 then
     begin
       if not DataContatos.DataSet.Locate('nome',aLocalizar,[loPartialKey]) then
       begin
         MessageDlg('Contato não localizado!', mtInformation, [mbOK], 0);
         Abort;
       end;
     end
   end;

Selecione nas propriedades DataSource dos componentes DbGrid, DbNavigator e DbEdit o componente DataSource.

No Componente DbGrid, mude a propriedade “ReadOnly” para true;

E no componente DbNavigator, na propriedade visiblebuttons, deixe como true apenas as opções: nbInsert, nbDelete, nbPost e nbCancel;

Salve todo o projeto e compile para ver o funcionamento.

compilamento do projeto

O principal objeto deste artigo é mostrar uma forma simples de trabalhar a conexão com o banco de dados SQL Server através dos componentes ADO. Outra forma simples de trabalhar seria com os componentes da paleta DbExpress, mas acredito este ser o melhor caminho.

Até a próxima!