NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigosSQL Server 2005 › Capítulo 11 : 14
Quer receber novidades e e-books gratuitos?
« Lição anterior Curso Completo de SQL Server 2005 - Júlio Battisti Δ Página principal Curso Completo de SQL Server 2005 - Júlio Battisti ¤ Capítulos Curso Completo de SQL Server 2005 - Júlio Battisti Próxima lição »
SQL Server 2005 - CURSO COMPLETO

Autor: Júlio Battisti
Lição 195 - Capítulo 11 - O PRIMEIRO EXEMPLO – CONECTANDO COM O BANCO DE DADOS NORTHWIND, DA INSTÂNCIA SERVIDOR\SQL2005

Nota: Nota: É importante lembrar que o banco de dados Northwind não é instalado juntamente com o SQL Server 2005. Nos importamos o banco de dados Northwind, de uma instância do SQL Server 2000, para a instância SERVIDOR\SQL2005, do SQL Server 2005. Fizemos isso usando o DTS Import/Export Wizard, o qual você aprendeu a utilizar, na prática, nos Capítulos 7 e 9.

No Exemplo 11.2, temos um exemplo de uma conexão com um Banco de Dados do Microsoft SQL Server, utilizando a propriedade ConnectionString.

Nota: Crie este exemplo utilizando o editor de textos de sua preferência. Não inclua o número das linhas, os quais servem apenas para referência. Salve este exemplo na pasta C:\LivroSQL2005\Capitulo11, com o nome de Exemplo11-2.asp.

Exemplo11.2 – Conectando com um Banco de Dados do Microsoft SQL Server 2005 – Exemplo11-2.asp.

1  <%@ Language=VBScript %>
     2 <HTML>     

3 <HEAD>

4 <TITLE>Conectando com o SQL Server 2005</TITLE>

5 </HEAD>

6 <BODY>

7 <H1>

8 <FONT color=navy>Registros da tabela Orders !!!!</FONT>

9 </H1>

10 <%

11 ‘O primeiro passo é criar a conexão com o Banco de Dados

12 ‘Para isto crio um objeto do tipo Connection

13 ‘Cria um objeto do tipo ADODB.Connection

14 Set conn=Server.CreateObject(“ADODB.Connection”)

15 ‘Agora defino a propriedade ConnectionString do objeto Connection

16 ‘criado anteriormente.

17 conn.ConnectionString = “PROVIDER=SQLOLEDB;

Data Source=SERVIDOR\SQL2005 ;Initial Catalog=Northwind;

User ID=sa;Password=abc123"

18 conn.Open

19 ‘O próximo passo é criar uma instrução SQL

20 inst_sql=“SELECT Orders.OrderID, Orders.OrderDate, Orders.ShipCity, Orders.ShipCountry

   FROM Orders ORDER BY Orders.OrderDate”

21 ‘Esta instrução SQL retorna os campos OrderID, OrderDate,

‘ShipCity e ShipCountry, da tabela Orders, do Banco de Dados NorthWind.

22 ‘Agora criamos um objeto RecordSet.

23 ‘Este objeto irá executar a instrução SQL e

24 ‘receber o resultado da consulta.

25 Set Pedidos = Server.CreateObject(“ADODB.Recordset”)

26 ‘Agora executamos a instrução SQL

27 Pedidos.Open inst_sql, conn, 3, 3

28 ‘Neste ponto, já tenho todos os registros retornados

29 ‘pela instrução SQL. Estes registros estão armazenados

30 ‘no objeto Clientes, que é um objeto do tipo Recordset.

31 ‘Agora, passo a montar a página que será retornada para o

32 ‘navegador do Cliente. Vamos montar uma tabela com o

33 ‘resultado da consulta.

34 %>

35 <P>

36 <HR>

37 <TABLE bgColor=gray border=1 borderColor=navy cellPadding=1 cellSpacing=1 width=“100%”>

38 <TR>

39   <TD align=middle bgColor=gray>Código </TD>

40   <TD align=middle bgColor=gray>Data  </TD>

41   <TD align=middle bgColor=gray>Cidade </TD>

42   <TD align=middle bgColor=gray>País </TD>

43 </TR>

44 <%

45 ‘Inicio um Loop para percorrer todos os registros

46 ‘do RecordSet Clientes, exibindo um registro em

47 ‘cada linha da tabela.

48 Do Until Pedidos.eof %>

49   <TR>

50   <TD align=middle bgColor=gray><%=Pedidos.Fields(“OrderID”)%></TD>

51   <TD align=middle bgColor=gray><%=Pedidos.Fields(“OrderDate”)%></TD>

52  <TD align=middle bgColor=gray><%=Pedidos.Fields(“ShipCity”)%></TD>

53   <TD align=middle bgColor=gray><%=Pedidos.Fields(“ShipCountry”)%></TD>

54   </TR>

55 <%

56 Pedidos.MoveNext

57 loop

58 %>

59 </TABLE>

60 </P>

61 <HR>

62 </BODY>

63 </HTML>

Ao acessarmos este arquivo, obtemos o resultado indicado na Figura 11.32.

SQL Server 2005 Completo - Julio Battisti
Figura 11.32 Registros da tabela Orders do Banco de Dados Northwind da instância SERVIDOR\SQL2005 do servidor SQL Server 2005.

Nota: Para que você possa utilizar a conta sa para login no servidor SQL Server, o modo de segurança precisa estar configurado para “SQL Server and Windows Authentication Mode”. Para informações sobre como alterar o modo de segurança de uma instância do servidor SQL Server 2005, consulte o Capítulo 6 – Segurança no SQL Server 2005.

Vamos comentar alguns detalhes sobre o código do Exemplo 11.2.

Primeiro, vamos considerar o seguinte fragmento de código:

17 conn.ConnectionString = “PROVIDER=SQLOLEDB;
 Data Source=SERVIDOR\SQL2005 ;Initial  Catalog=Northwind;

User ID=sa;Password=abc123”

18 conn.Open

Observe que, neste caso, primeiro definimos a propriedade ConnectionString. Depois, utilizamos o método Open, para abrir a conexão. Como a propriedade ConnectionString já estava definida, o método Open utiliza as informações da propriedade ConnectionString para estabelecer a conexão com o Banco de Dados.

Segundo, vamos considerar a String de conexão:

“PROVIDER=SQLOLEDB;

Data Source=SERVIDOR\SQL2005;

Initial Catalog=Northwind;

User ID=sa;Password=abc123”

Observe que estamos informando os parâmetros indicados na Tabela 11.7.

Tabela 11.7 Parâmetros para a String de conexão com o Servidor SQL Server 2005.

Provider -   SQLOLEDB

Data Source ou Server  SERVIDOR\SRVINST01

Initial Catalog/Database  Northwind

User ID ou uid -   sa

Password ou pwd senha123

Temos dois parâmetros que merecem comentários.

O parâmetro Data Source ou Server foi informado da seguinte maneira:

SERVIDOR\SQL2005

Este formato, conforme descrito nos capítulos iniciais do livro, é uma novidade que foi introduzida no SQL Server 2000 e que também faz parte do Microsoft SQL Server 2005. O valor antes da barra (\) é o nome do Servidor e o valor depois da barra é o nome da “Instância” do SQL Server a ser utilizada. Com o Microsoft SQL Server 2005, posso ter várias instâncias do Servidor SQL em um único servidor, isto é como se eu tivesse vários servidores SQL Server 2005 diferentes no mesmo servidor, sendo que cada um deles deve possuir um nome diferente. Neste livro estamos utilizando um servidor com duas instâncias, conforme indicado a seguir:

SERVIDOR\SQL2005
SERVIDOR\CURSOSJB     

Quando vou definir a String de conexão, preciso definir a qual a instância quero conectar a página ASP.

Se você estiver utilizando o Microsoft SQL Server 7.0 ou versão inferior, basta fornecer o nome do Servidor. Neste caso definiríamos a propriedade ConnectionString da seguinte maneira:

“PROVIDER=SQLOLEDB;

Data Source=SERVIDOR;

Initial Catalog=Northwind;

User ID=sa;Password=abc123”

Observe que estamos conectando com o Banco de Dados Northwind. Dentre deste Banco de Dados, a nossa instrução SQL acessa dados da tabela Orders, conforme indicado pelo seguinte fragmento de código:

20   inst_sql=“SELECT Orders.OrderID,  Orders.OrderDate, Orders.ShipCity, Orders.ShipCountry FROM Orders ORDER BY  Orders.OrderDate”

Com esta instrução são retornados os campos OrderID, OrderDate, ShipCity e ShipCountry. Além disso, a listagem obtida é classificada pelo campo OrderDate, conforme pode ser confirmado pelos resultados exibidos na Figura 11.32.

O restante do código é para a construção da tabela e exibição de um registro em cada linha.

Configurando Conexões OLE DB, com Bancos de Dados ORACLE

Para configurar a propriedade ConnectionString para estabelecer uma conexão com um Banco de Dados de um servidor ORACLE, podemos configurar os parâmetros indicados na Tabela 11.8.

Tabela 11.8 Definindo a propriedade ConnectionString para uma fonte ORACLE.

Provider - Deve ser especificado o OLE DB Provider para o ORACLE. Para esta propriedade utilizamos o seguinte valor: MSDAORA.

Data Source  - Informamos o nome do Servidor ORACLE.

User ID -   Especifica o nome do usuário com a qual a conexão será estabelecida.

Password - Informa a senha para o usuário que fará a conexão.

A seguir, temos um exemplo de uma conexão com um Banco de Dados, utilizando a propriedade ConnectionString:

1  Set  conn=Server.CreateObject(“ADODB.Connection”)
2 conn.Open “Provider=MSDAORA;Data  Source=SERVIDOR;User ID=admin;

Password=admin123”

Primeiro, criamos um objeto do tipo Connection. Depois, utilizamos o método Open, para abrir esta conexão. Observe que, após o método Open, é passada uma String de conexão como parâmetro para este método. Este parâmetro é a propriedade ConnectionString.

Poderíamos obter o mesmo resultado de uma maneira diferente: primeiro, vamos definir a propriedade ConnectionString, depois simplesmente chamamos o método Open. Ao chamar o método Open, este verifica se a propriedade ConnectionString já está definida e utiliza o valor definido nesta propriedade. Nosso exemplo ficaria assim:

1  Set  conn=Server.CreateObject(“ADODB.Connection”)
2 conn.ConnectionString = “  Provider=MSDAORA;Data Source=SERVIDOR;

User ID=admin; Password=admin123”

3  conn.Open

Neste caso, na linha 2 foi definida a propriedade ConnectionString e, na linha 3, utilizamos o método Open.

Nota: Utilizamos os números de linha apenas para referência. Quando criamos nossas páginas ASP, não devemos utilizar números de linhas.

Nota: A linha 2 aparece “quebrada” em duas linhas por questões de espaço para exibição, mas a mesma deve ser digitada em uma única linha.

Nota: Para detalhes sobre o ORACLE, consulte a documentação do produto.

Microsoft Access, Microsoft SQL Server e ORACLE são os casos mais comuns de conexões de páginas ASP com fontes de dados. Porém, conforme descrito no Capítulo 5, através de OLE DB podemos estabelecer conexões com qualquer fonte de dados, para a qual esteja disponível um OLE DB Provider, inclusive fontes de dados não estruturadas no formato de Bancos de Dados Relacionais. Como exemplos de fontes que não possuem o tradicional formato dos Bancos de Dados Relacionais, poderíamos citar os arquivos de mensagens de correio eletrônico do Microsoft Exchange ou do Lotus Notes, um catálogo de Indexação do Microsoft Index Server ou, até mesmo, uma fonte de dados residente em um Mainframe.

Comentários Finais Sobre o Objeto Connection

Agora veremos mais alguns detalhes importantes sobre o objeto Connection.

Conforme mostrado no Exemplo 11.2, para conectar uma página ASP com uma fonte de dados, estamos utilizando os seguintes passos:

•  Criamos um objeto do tipo Connection e conectamos este objeto com uma fonte de dados, seja via ODBC, seja via OLE DB.

•  Criamos um objeto do tipo RecordSet e executamos uma instrução SQL. Feito isto, o objeto RecordSet conterá os dados retornados pela fonte de dados.

Uma vez obtidos os dados, utilizamos código ASP para exibir os resultados desejados. Esta metodologia funciona sem maiores problemas, porém existem alguns aspectos importantes a serem considerados, tais como o encerramento de uma conexão e o nível de acesso aos dados oferecido por uma determinada conexão.

O Método Close

O método Close é utilizado para fechar/encerrar uma Conexão e quaisquer outros objetos que sejam dependentes da conexão. Por exemplo, se criamos um objeto RecordSet que obteve dados a partir da conexão que está sendo encerrada, o objeto RecordSet também será encerrado.

A sintaxe deste método é bastante simples. Vamos supor que tenhamos criado uma conexão chamada Clientes; para encerrá-la, poderíamos utilizar o seguinte código:

<% Clientes.Close %>

Ao fecharmos um objeto, estaremos liberando os recursos computacionais que o objeto utilizava no servidor, tais como memória e processador. Porém, o objeto continua na memória, com isso podemos utilizar o método Open para abrir novamente a conexão e voltar a utilizá-lo. No exemplo abaixo, fechamos o objeto Clientes e depois voltamos a abri-lo, utilizando o método Open.

<%   Clientes.Close
   Clientes.Open

%>

Neste caso poderíamos voltar a utilizar o objeto Clientes. Para remover um objeto, em definitivo, da memória, devemos definir o seu valor como “Nothing”, conforme indicado no exemplo:

<%
      Set Clientes = Nothing       

%>

Feito isso, somente poderemos voltar a utilizar o objeto se este for novamente criado, utilizando o seguinte código:

Set  Clientes = Server.CreateObject(“ADODB.Connection”)

Observe que, pelo fato de Clientes ser um objeto (do tipo Connection) e não simplesmente uma variável, devemos utilizar o operador Set. Se tentarmos criar ou remover um objeto, sem a utilização do operador Set, obteremos uma mensagem de erro e a página não será exibida.

“Pool” de Conexões

Quando um usuário fecha uma conexão, através da utilização do método Close, conforme descrito anteriormente, esta conexão é mantida na memória e a conexão é adiciona a um “pool” de conexões inativas. Da próxima vez que o mesmo usuário, ou qualquer outro usuário for abrir uma nova conexão, o OLE DB primeiro verifica se, no Pool de conexões inativas, existe uma conexão exatamente igual ao que o usuário está solicitando. Se for encontrada, esta conexão será utilizada, caso contrário uma nova conexão será criada e enviada para o usuário que solicitou.

O OLE DB mantém um Pool de conexões, porque o processo de criar uma conexão é o que mais exige recursos do servidor Web. Sempre que uma conexão puder ser reaproveitada, a partir do Pool de conexões, economizaremos preciosos recursos do servidor.

As conexões inativas não permanecem indefinidamente no Pool de conexões, após um período padrão sem utilização, estas são removidas, de tal forma a não onerar os recursos do servidor Web, sem que as conexões estejam sendo utilizadas.

A utilização de Pool de conexões é de grande importância, principalmente para servidores Web muito acessados, em que novas conexões estão sendo criadas e fechadas a todo instante. Neste caso, o Pool de conexões representa um alívio na carga de recursos de hardware do servidor, tais como memória RAM e processador.

Com isso, encerramos nosso estudo básico sobre conexões com a utilização de OLE DB. Na seqüência, vamos ver um exemplo simples de conexão com Banco de Dados, utilizando uma fonte ODBC.

« Lição anterior Curso Completo de SQL Server 2005 - Júlio Battisti Δ Página principal Curso Completo de SQL Server 2005 - Júlio Battisti ¤ Capítulos Curso Completo de SQL Server 2005 - Júlio Battisti Próxima lição »

você conhece a universidade do access?

Universidade do Access - Curso Completo de Access
com tudo para você dominar o Access - do Básico ao
Avançado - até a Criação de Sistemas Profissionais
Completos - Passo a Passo - Tela a Tela

Capa da Universidade do Access

Aplica-se ao Access 2019, 2016, 2013 e 2010!

13 Cursos - 574 Vídeo-Aulas - 63:32 horas

Para todos os detalhes, acesse:

https://juliobattisti.com.br/universidade-do-access.asp

Quer receber novidades e e-books gratuitos?

 
 

Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

Todos os direitos reservados, Júlio Battisti 2001-2025 ®

LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO

DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI