HOME | GUIA ASP | NOTÍCIAS | LIVRO DE VISITAS

 67.567 visitas desde 18-10-2000

Domingo, 5 de Setembro de 2010 

Pesquisar Guia ASP
>>
Dicas de Pesquisa

Join WebHost4Life.com

  Bem Vindo!
  Abordagem às ASP
  Requisitos para as ASP
  Escrever no Browser
  Declarar Variáveis
  If
  For ... Next
  For Each Objecto In Colecção ... Next
  While ... Wend
  Select Case
  And, Or, Not
  Subrotinas
  Funções
  Inclusões
  Introdução ao Modelo de Objectos
  Request
  ServerVariables
  Response
  Server
  Session
  Application
  Ficheiro Global.asa
  Request.Form
  Request.QueryString
  Get vs. Post
  Listar Registos
  Inserir Registos
  Actualizar Registos
  Eliminar Registos
  Declarações e Operadores
  Verificar Dados
  Converter Dados
  Funções de Formatação
  Funções Matemáticas
  Funções Data
  Constantes Data
  Constantes Dia Semana
  Strings
  Outras Funções
  Estruturas de Controlo
  Introdução SQL
  Select
  Inner Join e Outer Join
  Valores Calculados e Cláusula Group By
  Insert
  Update
  Delete
  Introdução ADO
  Objecto Connection
  Objecto Recordset
  Objecto Field
  Introdução COM
  TextStream
  Componentes de E-mail
  Mapa do Guia ASP

 

 

<< Introdução ADO | Objecto Recordset >>

referências > ado > objecto connection


. : : . objecto connection . : : .

  Antes de retirares dados de uma base de dados, tens de criar e activar uma ligação a essa base de dados. Em ADO (ActiveX Data Objects), usas o objecto Connection para ligar e quebrar ligações de bases de dados. O objecto Connection é um objecto de alto nível que funciona através de um fornecedor (entenda-se driver) que na realidade faz os pedidos de dados.

Abrir uma Ligação à Base de Dados
  Um simples projecto chamado ActiveX Data Objects Database (ADODB) contém todos os objectos ADO. O objecto Connection cria-se da mesma maneira que qualquer outro objecto ASP - com o método Server.CreateObject.

Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")

  Por defeito todas as ligações são apenas de leitura, mas podes criar ligações de escrita/leitura ou apenas escrita alterando as definições da propriedade Mode do objecto Connection.
  Existem várias constantes da propriedade Mode, aliás o ADO é abundante em constantes. O melhor que se tem a fazer é incluir o ficheiro adovbs.inc na página ASP.
  Para usar as constantes ADO, inclui a seguinte linha em cada página ASP que uses o ADO, alterando o endereço para o teu caso:

<!-- #Include File="adovbs.inc" -->

  Se abrires este ficheiro com o Notepad ou outro editor de texto, vais ver uma lista com grupos de constantes. Convém não alterar nada no ficheiro.

As Constantes ConnectModeEnum
  Normalmente apenas tens de seleccionar um dos primeiros três valores. Se apenas precisas de ler informações da base de dados (a acção mais comum) usa a constante adModeRead. Se apenas precisas de escrever na base de dados, usa a constante adModeWrite. Há quem use sempre a constante adModeReadWrite, mas torna o acesso à base de dados mais lento quando precisas apenas de ler ou escrever na base de dados, e não ambos ao mesmo tempo.

Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Mode = adModeReadWrite

  As últimas cinco constantes são de menos utilidade numa aplicação Web onde podes não saber quantas pessoas estão simultaneamente ligadas. A constante adModeShareDenyRead previne todas as outras ligações de ler da base de dados. Semelhantemente, a constante adModeShareDenyWrite permite que outras ligações possam ler da base de dados, mas não lhes permite escrever. A constante adModeShareExclusive evita que todas as outras ligações abram a base de dados. A constante adModeShareDenyNone permite que todas as outras ligações tenham acesso à base de dados com qualquer tipo de permissão. A constante adModeRecursive trabalha em concernência com todas as constantes do tipo Share, excepto com a constante adModeShareDenyNone para propagar a definição para sub-registos do registo actual. Por exemplo, podes usar adShareDenyRead + adModeRecursive para negar permissões de escrita para os sub-registos.

Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Mode = adShareDenyRead + adModeRecursive

A ConnectionString
  Após o modo estar definido, tens de definir a propriedade ConnectionString do objecto Connection. Apesar de teres que definir esta propriedade sempre que abres um novo objecto Connection, deves definir a(s) ConnectionString(s) no ficheiro global.asa da aplicação como uma aplicação de nível ou uma variável de sessão de nível. Existem pelo menos três razões para definir a ConnectionString no ficheiro global.asa: ficas com apenas um sítio para verificar problemas na ligação; podes modificar a ligação de uma base de dados para outra com uma mínima alteração de código; e podes copiar ou mover a tua aplicação de um servidor para outro de forma muito rápida.

  A propriedade ConnectionString é tão simples como complicada. É dividida em várias partes, que são todas opcionais, dependendo do tipo de ligação que estás a usar. Mas normalmente, especifica-se o seguinte:

 - Nome do Fornecedor
 - Nome do servidor de base de dados
 - Nome da base de dados que queres usar
 - ID do utilizador (UID) com o qual se vai ligar
 - Password (PWD) desse utilizador

  As partes da ConnectionString são separadas com ponto e vírgula (;). Por exemplo, no nível mais simples, podes usar uma Open Database Connectivity (ODBC) Data Source Name (DSN), um ID de utilizador, e uma password para ligar à tua base de dados.
  A DSN já contém o nome de fornecedor, o servidor de base de dados, e o nome da base de dados, por isso não precisas de os especificar novamente.
  Por exemplo:

Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Mode = adModeReadWrite
Conn.ConnectionString = "DSN=ligacaoDSN;UID=safemode;PWD=safemode;"

  Infelizmente, este não é o melhor método. Por defeito as ODBC DSN's usam o fornecedor MSDASQL, mas o fornecedor JET OLEDB é mais rápido e oferece mais funcionalidades. Usa sim este tipo de string de ligação:

Dim Conn, ConnStr
ConnStr = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.MapPath(caminho_da_base_dados)
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Mode = adModeReadWrite
Conn.ConnectionString = ConnStr

  O que está a negrito é a string de ligação à base de dados, e deve ser escrita numa só linha.
  Esta string de ligação contém o nome do fornecedor, o nome do servidor (neste caso), e o caminho para a base de dados. Aqui foi usada a função Server.MapPath para traduzir o caminho virtual para o caminho actual no disco do servidor. Por exemplo, uma base de dados na caminho virtual

http://www.safemode.web.pt/utilizadores.mdb

  pode ter o seguinte caminho actual no disco do servidor:

D:\Web\Users\Safemode\BaseDados\utilizadores.mdb

  A função Server.MapPath traduz o primeiro endereço para o segundo (que é o que o objecto ADODB.Connection precisa).

  Antes de abrires a ligação tens de definir as propriedades do objecto Connection. Se mais tarde quiseres alterar alguma(s) propriedade(s), fecha a ligação, altera o valor da(s) propriedade(s), e reabre a ligação.

  Para abrir uma ligação, usa o método Open do objecto Connection.

Conn.Open

  Se o método Open for executado sem erros, já tens uma ligação à base de dados a funcionar.

  Todos os procedimentos até este ponto podem ser simplificados com uma sintaxe alternativa. O método Open aceita até quatro argumentos opcionais:

 - ConnectionString
 - UserID
 - Password
 - Opções (consistem nas constantes de ConnectOptionEnum)

Conn.Open ConnStr, "safemode", "safemode", adModeShareDenyWrite

  Podes especificar mais valores para as opções, acrescentando constantes em conjunto (adModeShareDenyWrite + adModeRecursive).

O Método Connection.Execute
  Existem três maneiras de obter dados da base de dados usando ADO. Todos eles requerem uma ligação. A maneira mais simples é usar o método Execute do objecto Connection.
  O método Execute aceita três argumentos:

 - Uma declaração SQL ou query, tabela, vista, ou o nome de um procedimento gravado chamado o argumento CommadText.
 - Uma variável chamada RecordsAffected que irá conter o número de registos afectados pela declaração ou query, após concluído o método Execute.
 - Uma constante CommandTypeEnum chamada Options que informa a base de dados do tipo de declaração ou query que queres executar, e se retorna ou não o objecto RecordSet.

  Os objectos Connection podem abrir tabelas directamente, e podem executar SQL tanto na forma pré-compilada (chamados procedimentos guardados) como dinamicamente interpretando e executando a declaração SQL em runtime (momento em que é executado). Todos estes tipos de pedidos retornam registos. Os registos retornados chamam-se grupo de resultados, e o ADO agrupa as linhas resultantes num objecto RecordSet.

  O valor de retorno do método Execute é, por defeoto, um objecto RecordSet que contém o resultado da declaração ou query. Podes controlar se o método Execute retorna ou não um objecto RecordSet ao adicionares a constante adExecuteNoRecords às constantes das Opções. Se estás a executar uma declaração SELECT, normalmente precisas do objecto RecordSet resultante, mas quando estás a executar uma query INSERT ou UPDATE, não precisas que sejam retornados quaisquer registos.

Gerir Transacções Com o Objecto Connection
  Quando accionas um comando que altera dados no Servidor SQL, como uma query UPDATE, INSERT ou DELETE, este trata sempre a declaração como uma transacção. Se a declaração falhar, todas as operações na declaração falham.
  Contudo, por vezes é necessário executar uma ou mais declarações como uma transacção. Para isso tens de agrupar as declarações numa transacção de alto nível.
  Estas transacções são geridas com os métodos BeginTrans, CommitTrans e RollbackTrans do objecto Connection.

<< Introdução ADO | Objecto Recordset >>

powered by
nrwebdesign.com

 

 

copyright © 2000/2010 - SafeMode WebArts - todos os direitos reservados

site optimizado para IE 5+, resolução de 800x600 e ligação RDIS ou ISDN

www.safemode.pt.vu produzido por nrwebdesign.com