Seção 3 Modelo de programação ADO ( ActiveX Data Objects)
Conforme descrito no artigo "Introduzindo ADO em Delphi", ADO é um conjunto de componentes (DLLs) COM (Component Object Model) que permitem acessar bancos de dados como e-mail e sistemas de arquivos. Os aplicativos escritos usando ADO não requerem BDE. Para usar o ADO para acessar vários bancos de dados, você precisa da biblioteca ADO/OLE DB (Object Linking and Embedding). O que você precisa para usar o ADO pode já existir no seu computador: esses arquivos são distribuídos pela Microsoft como parte do Windows 98/2000. Se você estiver usando o Windows 95 ou NT, talvez seja necessário distribuir ou instalar o mecanismo ADO. O CD do Delphi 5 contém os arquivos de instalação do MDAC-Microsoft Data Access Components. Você deve certificar-se de estar usando a versão mais recente do MDAC, disponível no site oficial da Microsoft. MDAC é a tecnologia chave que faz o Acesso Universal a Dados funcionar. Eles incluem ActiveX Data Objects (ADO), OLE DB e Open Database Connectivity (ODBC).
Nota: Para instalar corretamente em um computador com Windows 95, o MDAC requer a instalação do DCOM95 (Distributed Component Object Model). Para o registro adequado, os componentes instalados pelo MDAC dependem das DLLs instaladas pelo DCOM95. Observe que o DCOM95 não é necessário no NT4.0. Em alguns casos, o DCOM não precisa ser instalado em computadores que executam o Windows. Mas se não estiver instalado, o DCOM98 deverá ser instalado antes de instalar o MDAC.
Não há necessidade de discutir muito OLE DB e ADO, vamos passar para questões mais práticas.
Objetos ADO
O modelo de programação ADO é construído em torno de vários objetos ADO que fornecem vários métodos para acessar vários objetos de dados. Esses objetos fornecem a funcionalidade para conectar-se a fontes de dados, consultar e atualizar conjuntos de registros e relatar erros. Delphi acessa esses objetos através de componentes encapsulados através de vários componentes VCL. Vamos dar uma olhada nos objetos que funcionam com ADO:
Um objeto Connection que se conecta a uma fonte de dados por meio de uma cadeia de conexão. No BDE/Delphi, o objeto de conexão é uma combinação de componentes de banco de dados e componentes de sessão.
O objeto Command (Command) nos permite operar a fonte de dados. Ele descreve um comando (também considerado uma consulta ou instrução) que pode lidar com a adição, exclusão, consulta ou atualização de dados do banco de dados.
O objeto Recordset (conjunto de registros) é o resultado do comando de consulta (Query). Você pode pensar no Recordset como um componente de tabela (Table) do Delphi ou um componente de consulta (Query). Cada linha retornada pelo Recordset contém vários objetos Field.
Vários outros objetos que existem no modelo ADO são: objetos Field, objetos Parameter e objetos Error — voltaremos a eles nos capítulos seguintes.
Seção 4 Use ADOExPRess para conectar-se ao banco de dados
Antes de dar uma breve explicação de cada componente da coleção ADOExpress, vamos primeiro entender como conectar-se a um banco de dados Access. Claro, vamos nos conectar ao nosso banco de dados de exemplo - AboutDelphi.mdb (adição do tradutor: o banco de dados criado no capítulo anterior).
Delphi(5) suporta principalmente ADO através do componente ADOExpress na página ADO do painel de componentes. Vários outros componentes de habilitação de banco de dados serão usados neste curso. Por enquanto, focaremos no conjunto mínimo de componentes necessários para acessar um banco de dados Access com ADO.
Execute o Delphi e crie uma nova aplicação com um formulário vazio.
Para acessar os dados do banco de dados Access por meio de ADO e Delphi, você deve adicionar pelo menos três componentes com reconhecimento de dados ao seu projeto. O primeiro é o DBGrid da página do componente DataControls – usado para navegar pelos registros obtidos de uma tabela ou por meio de uma consulta. O segundo é o DataSource (página de acesso a dados DataAccess), que é usado para conectar o conjunto de dados e o componente DBGrid no formulário, realizando assim a realização, navegação e edição de dados potenciais do conjunto de dados. Por fim, existe o ADOTable (página ADO), que representa uma tabela obtida do banco de dados ADO. Arraste e solte todos eles no formulário (Formulário) e os nomes dos componentes assumirão os valores padrão. O formulário agora deve ficar assim:
Se você executar o programa agora, nenhum dado será exibido no Grid - claro, porque não estamos realmente conectados ao banco de dados. Observe outro ponto: apenas o Grid é visível, os outros dois componentes são controles invisíveis.
Link entre componentes
Para exibir os dados do banco de dados, devemos conectar três componentes. Faça as seguintes configurações no Object Inspector:
DBGrid1.DataSource = DataSource1;
DataSource1.DataSet = ADOTable1;
Agora chegamos à parte difícil, para realmente obter os dados do banco de dados, temos que criar um ConnectionString. Esta string indica o local de armazenamento físico do banco de dados e como acessá-lo. Ao clicar duas vezes no botão de reticências da propriedade ConnectionString do componente AdoTable, você obterá a seguinte caixa de diálogo:
Provider
=
Microsoft.Jet.OLEDB.4.0; Para completar o design, devemos definir o nome da tabela a ser acessada através do componente ADOTable – novamente usando o Object Inspector. ADOTable1.TableName = aplicativos Se você quiser ver os dados do banco de dados em tempo de design, use a propriedade Active da ADOTable – defina-a como True. ah! Se você seguiu todas as etapas acima, verá agora que a tabela Aplicativos possui apenas um registro (linha). Ao executar o aplicativo, você pode até alterar os dados do banco de dados. Claro, você não pode fazer mais do que isso - este é o exemplo mais simples de ADO que consigo imaginar. Esta seção agora pode ser concluída. No próximo capítulo, discutiremos todos os componentes ADO fornecidos pelo Delphi e como eles se comunicam com os componentes com reconhecimento de dados restantes para criar um aplicativo de banco de dados Delphi mais poderoso. 22 de dezembro de 2002 20:14