Saltar para o conteúdo

ActiveX Data Objects

Origem: Wikipédia, a enciclopédia livre.
 Nota: Se procura outro significado de Ado, veja Ado (desambiguação).

O ADO (ActiveX Data Objects) é um mecanismo Component Object Model criado pela Microsoft onde os programas o utilizam para a troca de informações com as bases de dados.

Microsoft's ActiveX Data Objects (ADO) é um conjunto de Component Object Model (COM) objects para acessar base de dados. Parte de MDAC, fornece uma camada intermediária (middleware) entre a linguagem de programação e OLE DB (um meio de acessar dados, sejam eles databases ou uniforme).

O ADO permite que um desenvolvedor escreva programas que acessem dados sem saber como o banco de dados é implementado. Ele deve estar ciente do banco de dados apenas para conexão. Não é necessário conhecimento de SQL para acessar um banco de dados ao usar o ADO, embora se possa usar o ADO para executar comandos SQL diretamente. A desvantagem do último é que ele introduz uma dependência sobre o tipo de banco de dados utilizado.

O ADO está posicionado como um sucessor das camadas de objetos anteriores da Microsoft para acessar fontes de dados, incluindo RDO (Remote Data Objects) e DAO (Data Access Objects). O ADO foi introduzido pela Microsoft em outubro de 1996.

Internals

O ADO é composto por quatro coleções e doze objetos.

ADO coleções

Campos
Esta coleção contém um conjunto de objetos Field. A coleção pode ser usada em um objeto Recordset ou em um objeto Record. Em um objeto Recordset, cada um dos objetos Field que compõem a coleção Fields corresponde a uma coluna nesse objeto de conjunto de registros. Em um objeto Record, um campo pode ser um URL absoluto ou relativo que aponta para um [[Namespace (computer science) | namespace] estruturado em árvore [usado para provedores dados semi-estruturados como o Microsoft OLE DB Provider para publicação na Internet) ou como uma referência ao objeto de fluxo padrão associado a esse objeto de registro.
Propriedades
Um objeto pode ter mais de um objeto de propriedade, que estão contidos na coleção de propriedades do objeto.
Parâmetros
Um objeto de comando pode ter vários comandos de parâmetros para alterar seu comportamento predefinido e cada um dos objetos de parâmetro está contido na coleção Parâmetros do objeto Command
Erros
Todos os erros criados pelo provedor são passados ​​para uma coleção de objetos de erro, enquanto a coleção de erros está contida em um objeto Conexão. Quando uma operação ADO cria um erro, a coleção é desmarcada e um novo grupo de objetos de erro é criado na coleção.

ADO objects

Conexão
O objeto de conexão é a conexão do ADO com um armazenamento de dados via OLE DB. O objeto de conexão armazena informações sobre a sessão e fornece métodos de conexão ao armazenamento de dados. Como algumas lojas de dados possuem métodos diferentes para estabelecer uma conexão, alguns métodos podem não ser suportados no objeto de conexão para provedores OLE DB particulares. Um objeto de conexão se conecta ao armazenamento de dados usando o método 'Abrir' com uma seqüência de conexão que especifica a conexão como uma lista de pares de valores-chave (por exemplo: "Provider = 'SQLOLEDB'; Data Source = 'TheSqlServer'; Initial Catalog = 'Northwind'; Integrated Security = 'SSPI'; "). O início do qual deve identificar o tipo de conexão de armazenamento de dados que o objeto de conexão requer:
* um provedor OLE DB (por exemplo, SQLOLEDB), usando a sintaxe "provider =";
* um nome de arquivo, usando a sintaxe "file name =";
* um provedor remoto e servidor (veja RDS), usando a sintaxe "Remote provider =" e "Remote server ="; ou
* um URL absoluto, usando a sintaxe "URL ="
Comando
Depois que o objeto de conexão estabelece uma sessão para a fonte de dados, as instruções são enviadas ao provedor de dados através do objeto de comando. O objeto de comando pode enviar consultas SQL diretamente ao provedor através do uso da propriedade CommandText, enviar uma consulta parametrizada ou procedimento armazenado através do uso de um objeto de Parâmetro ou coleção de Parâmetros ou executar uma consulta e retornar os resultados para um objeto de conjunto de dados através do Método de Execução. Existem vários outros métodos que podem ser usados ​​no objeto Command relacionado a outros objetos, como os objetos Stream, RecordSet ou Connection.
Conjunto de registros
Um conjunto de registros é um grupo de registros e pode ser proveniente de uma tabela base ou como resultado de uma consulta na tabela. O objeto RecordSet contém uma coleção de campos e uma coleção de propriedades. A coleção Fields é um conjunto de objetos Field, que são as colunas correspondentes na tabela. A coleção de propriedades é um conjunto de objetos de propriedade, que define uma determinada funcionalidade de um provedor OLE DB. O RecordSet possui inúmeros métodos e propriedades para examinar os dados que existem dentro dele. Os registros podem ser atualizados no conjunto de registros alterando os valores na gravação e, em seguida, chamando o método Update ou UpdateBatch.
Imediato
O conjunto de registros é locked using the adLockOptimistic or adLockPessimistic lock. The data are updated at the data source after the record is changed and the Update method is called.
Batch
The recordset is locked using adLockBatchOptimistic and each time Update is called the data are updated in a temporary buffer. Finally, when UpdateBatch is called the data are completely updated back at the data source. This has the advantage of it all being done in memory, and if a problem occurs then UpdateCancel is called and the updates are not sent to the data source
Transaction
If the OLE DB provider allows it, transactions can be used. To start the transaction, the programmer invokes the BeginTrans method and does the required updates. When they are all done, the programmer invokes the CommitTrans method. RollbackTrans can be invoked to cancel any changes made inside the transaction and rollback the database to the state before the transaction began
Record
This object represents one record in the database and contains a fields collection. A RecordSet consists of a collection of Record objects.
Stream
A stream, mainly used in a RecordSet object, is a means of reading and writing a stream of bytes. It is mostly used to save a recordset in an XML format, to send commands to an OLE DB provider as an alternative to the CommandText object and to contain the contents of a binary or text file.
Parameter
A parameter is a means of altering the behaviour of a common piece of functionality, for instance a stored procedure might have different parameters passed to it depending on what needs to be done; these are called parameterised commands.
Field
Each Record object contains many fields, and a RecordSet object has a corresponding Field object also. The RecordSet object's Field object corresponds to a column in the database table that it references.
Property
This object is specific to the OLE DB provider and defines an ability that the provider has implemented. A property object can be either a built-in property — it is a well-defined property implemented by ADO already and thus cannot be altered — or can be a dynamic property — defined by the underlying data provider and can be changed
Error
When an OLE DB provider error occurs during the use of ADO, an Error object will be created in the Errors collection. Other errors do not go into an Error object, however. For instance, any errors that occur when manipulating data in a RecordSet or Field object are stored in a Status property.SK

Basic usage

Some basic steps are required in order to be able to access and manipulate data using ADO :

  1. Create a connection object to connect to the database.
  2. Create a recordset object in order to receive data in.
  3. Open the connection
  4. Populate the recordset by opening it and passing the desired table name or SQL statement as a parameter to open function.
  5. Do all the desired searching/processing on the fetched data.
  6. Commit the changes you made to the data (if any) by using Update or UpdateBatch methods.
  7. Close the recordset
  8. Close the connection

ASP example

Here is an ASP example using ADO to select the "Name" field, from a table called "Phonebook", where a "PhoneNumber" was equal to "555-5555".

dim myconnection, myrecordset, name
set myconnection = server.createobject("ADODB.Connection")
set myrecordset = server.createobject("ADODB.Recordset")

myconnection.open mydatasource
myrecordset.open "Phonebook", myconnection 
myrecordset.find "PhoneNumber = '555-5555'"
name = myrecordset.fields.item("Name")
myrecordset.close

set myrecordset = nothing
set myconnection = nothing

This is equivalent to the following ASP code, which uses plain SQL instead of the functionality of the Recordset object:

dim myconnection, myrecordset, name
set myconnection = server.createobject("ADODB.connection")
myconnection.open mydatasource
set myrecordset = myconnection.execute("SELECT Name FROM Phonebook WHERE PhoneNumber = '555-5555'")
name = myrecordset(0)

Software support

ADO is supported in ASP, Delphi, PowerBuilder, and in Visual Basic for Applications (VBA).

See also

Predefinição:Microsoft APIs


Ícone de esboço Este artigo sobre informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.