Banco de dados: Módulo 1 para Delphi PDF

Title Banco de dados: Módulo 1 para Delphi
Author Luciano Esquer Junior
Course Banco de Dados
Institution Universidade Federal de Mato Grosso do Sul
Pages 14
File Size 312.6 KB
File Type PDF
Total Downloads 106
Total Views 173

Summary

Módulo introdutório para Banco de Dados baseado em Delphi...


Description

CapÌtulo 1: O BDE Administrador e os SQL Links Interface Explorer Quando o Delphi precisa acessar um banco de dados, ele o faz atravÈs dos serviÁos do Borland Database Engine (BDE). O BDE funciona da mesma maneira para ler dados armazenados localmente em arquivos DB e DBF, bem como para os mais sofisticados sistemas client/server. Muitos anos atr·s, a Borland percebeu um problema com o acesso a banco de dados em seus softwares. Eles produziram v·rios produtos que eram usados para acesso a bancos de dados, mas cada um tinha um m Ètodo diferente para conectar-se e utilizar os dados. A Borland percebeu que uma abordagem de conectividade de banco de dados unificada forneceria muitas vantagens. Ent„o decidiram criar um novo software que deveria abstrair toda a funcionalidade de um banco de dados dentro de um engine. H· v·rios anos atr·s, a Borland vendia um Paradox engine para programadores. Era composto pela parte de acesso do DBMS Paradox e foi desenvolvido para ser usado em programas que precisavam ler e gravar informaÁıes em tabelas Paradox (.DB). O BDE substituiu este engine, mas adicionou funcionalidade para conex„o com outros tipos de bancos de dados. O BDE tambÈm est· disponÌvel separadamente do Delphi, caso vocÍ precise de uma performance s Ûlida em um ambiente de desenvolvimento que n„o seja da Borland. Ter todas as aÁıes mais comuns de banco de dados dentro de um pedaÁo de software produz muitos efeitos positivos. Um ˙nico conjunto de drivers permite a melhoria de um driver em particular sem ter que reivindicar a roda cada vez que um novo pacote tem acesso a um banco de dados. Isto significada que o acesso a banco de dados pode ser atualizado sem ter que atualizar um pacote de software inteiro. Se vocÍ instalar uma nova vers„o do BDE em um sistema com uma vers„o antiga do Paradox pode imediatamente beneficiar-se dos novos drivers. O conceito de driver unificado ambÈm salva vocÍ do armazenamento permanente que desaparece quando vocÍ tem muito cÛdigo redundante. Um sistema com Paradox, Delphi e BDE requer muito menos espaÁo em disco porque o Paradox e o Delphi n „o necessitam ter seus prÛprios engines de acesso a banco de dados. Hoje em dia onde cada nova geraÁ„o de programas requerem mais espaÁo em disco rÌgido, cada bit economizado ajuda. Por ˙ltimo, e contudo mais importante, usar um mÈtodo de acesso a banco de dados comum garante que o cÛdigo para acessar um tipo particular de banco de dados seja escrito apenas uma vez. Este capÌtulo se concentrar· em lhe dar uma introduÁ„ o aos recursos e capacidades do DBE. Se vocÍ necessita maiores informaÁıes sobre acesso a banco de dados no Delphi, consulte o prÛximo capÌtulo.

O Utilit·rio BDE Administrador

Quando o Delphi se instala, ele cria um Ìcone ou atalho para o utilit·rio Database Engine Administrador, ou BDEAdmin.EXE. O Delphi 3 coloca todos os execut·veis e arquivos de configuraÁ„o no diret Ûrio Program Files\Borland\Common Files\BDE. Nas versıes anteriores do Delphi estes arquivos eram colocados em um diretÛrio chamado IDAPI (Delphi 1.0), nomeado depois de utilit·rio de configuraÁ„o antigo. IDAPI significa Independent Database Application Programmer Interface, e d· este nome para muitos dos arquivos e diretÛrios no sistema. O BDEAdmin atua como sua interface para o BDE. O utilit·rio permite que vocÍ mude muitos aspectos de como o BDE trabalha. O BDE armazena suas informaÁıes de configuraÁıes no Registry do Windows. Depois que vocÍ mudar suas definiÁıes no utilit·rio BDE Administrator, vocÍ dever· gravar suas definiÁıes selecionando Object | Apply ou dando um clique sobre o bot„o Apply.

P·gina Database Na p·gina Database do BDE Administrator est„o os aliases para os bancos de dados disponÌveis. Os bancos do dados s„o exibidos em uma ·rvore hier·rquica parecida com o Windows Explorer. Para visualizar seus aliases de bancos de dados, simplesmente dÍ um clique sobre o s Ìmbolo de mais prÛximo ao banco de dados. Uma vez exibido, a definiÁ„o de cada alias pode ser facilmente visualizada ou modificada selecionando o alias para exibi-lo no painel a direita do BDE Administrator.

Aliases de Bancos de Dados Os aliases de banco da dados d„o a vocÍ a habilidade para mudar a maneira que trabalha com seus dados em uma maneira muito poderosa. No mundo das aplicaÁıes de negÛcios, os bancos de dados s„o realocados freq¸entemente quando as organizaÁıes geram novos arquivos e movem suas operaÁıes de bancos de dados para servidores de bancos de dados dedicados. Alguns ambientes de desenvolvimento necessitam que vocÍ recompile sua aplicaÁ„o toda vez que um banco de dados mude de local, ou para construir uma camada adicional de abstraÁ„o dentro do seu cÛdigo. O BDE automaticamente d· a vocÍ esta habilidade atravÈs do uso dos aliases. Antes de vermos em detalhes como os aliases do BDE trabalham, veremos um pouco alÈm a natureza de dados e tabelas de bancos de dados.

Banco de Dados vs. Tabelas Quando Wayne Radcliff projeto a estrutura de arquivo do dBASE nos tempos dos PCísCompat Ìveis, ele usou a extens„o DBF (Database File) para descrever isso. Este È um termo errado porque banco de dados significa uma coisa especÌfica que n„o se aplica a arquivos CBF. Cada arquivo DBF possui uma tabela, uma coleÁ„o ordenada de dados. Uma tabela divide informaÁıes entre colunas conhecidas como campos e linhas (Fields and Rows), que relacionados formam um registro. Esse termo ìBanco de Dadosî geralmente referese a coleÁ„o de tabelas que se relacionam a outras no mesmo caminho. Exceto para aplicaÁıes simples, o banco de dados consiste em m˙ltiplas tabelas relacionadas e cada tabela cont Èm v·rios registros e campos.

Creating Pseudo Databases

Agora que vocÍ entendeu que um banco de dados È composto por um conjunto de tabelas relacionadas, nÛs precisamos observar como implementar esse conjunto. Servidores de banco de dados como Interbase e Oracle tÍm uma estrutura de banco de dados que pode ser composta por m˙ltiplas tabelas. Desenvolvedores de banco de dados muitas vezes precisam utilizar esse tipo de estrutura, mas em ambientes sem servidores geralmente falta um mecanismo para linkar m˙ltiplas tabelas. VocÍ pode criar seu prÛprio formato de banco de dados para conter todas as suas tabelas, mas depois vocÍ perder· a compatibilidade com outros programas que utilizam banco de dados mais antigos. O BDE possui uma soluÁ„o avanÁada para esse problema. Colocado um grupo de tabelas relacionadas em algum diretÛrio do DOS, vocÍ pode associar essas tabelas juntas usando o BDE. Basta dar um alias, ou nome ao banco de dados, para o grupo de arquivos em um diretÛrio particular, o BDE criou um conjunto de tabelas logicamente criadas. O BDE chama um conjunto como este de Pseudo Database. Um PseudoDatabase n„o possui caracterÌsticas avanÁadas como encontramos em um Database Server, como preservar integridade referencial. De qualquer modo ele permite a vocÍ utilizar o nome do banco de dados como ponteiro para o local de seus dados. Pseudo-Databases podem ser criados na p·gina Database no BDE Administrator: Para criar um novo alias, comece selecionando Object | New no menu principal. VocÍ ser· questionado a selecionar um tipo de driver na caixa de di·logo New Database Alias. O driver Standard fornece acesso ‡s tabelas DB e DBF. DÍ um clique sobre o Ok para retornar ‡ pagina Database. Agora, vocÍ precisar· entrar com um nome para o alias no painel esquerdo. VocÍ precisa tambÈm definir a localizaÁ„o das tabelas no campo PATH. Certifique-se de gravar a configuraÁ„o, selecionando Apply quando vocÍ estiver satisfeito com as definiÁıes. Agora quando vocÍ precisar pegar dados em uma tabela, vocÍ pode usar o alias ao invÈs do nome diretÛrio. AtÈ agora, parece que nÛs simplesmente mudamos um nome - o diretÛrio, para outro o alias. Isto nos salva de problemas quando chegar a hora de mudarmos a localizaÁ„o do banco de dados. NÛs podemos coloc·-lo em um servidor de arquivos de rede, movendo-o para um disco rÌgido maior, ou atÈ mesmo fazer a mudanÁa para um sistema de banco de dados cliente-servidor. VocÍ n„o ter · que mudar ou recompilar seus programas apÛs as tabelas terem sido removidas. VocÍ precisar· criar um novo ponteiro para o alias no BDE. A meta dos aliases do BDE È criar um ponteiro para um ponteiro. Qualquer rotina de acesso a banco de dados do Delphi far· referÍncia ao alias de banco de dados, o qual faz referÍncia ‡s tabelas. Agora, mudando o alias, vocÍ tem uma maneira r·pida de achar seus dados quando eles forem movidos de um lugar para outro. VocÍ dever·, sempre que criar uma nova tabela de banco de dados ou acessar uma antiga, tentar referenciar-se a ela pelo alias ao invÈs do path. O Database Desktop, por exemplo, permite que vocÍ selecione alias como letras de drivers na caixa de di·logo

Save as. Ent „o quando vocÍ estiver pronto para gravar um novo banco de dados, vocÍ pode selecionar letras de drivers para for Á·-lo a ir para um diretÛrio em particular ou usar o alias, ao invÈs disto. Note que conforme vocÍ muda o alias no menu drop-down, o diretÛrio tambÈm muda. VocÍ pode especificar um alias ao invÈs de um diretÛrio em qualquer lugar do Delphi quando referenciar-se a uma tabela.

P·gina Configuration A p·gina Configuration do BDE Administrator exibe e permite que vocÍ configure os drivers instalados usados pelo BDE para gerenciar tabelas. Estes drivers s„o divididos em dois tipos: drivers Native e OBDC. As definiÁıes para cada driver aparecer„o na p·gina Definition localizada no painel a direita quando o driver estiver selecionado. VocÍ pode modificar as definiÁıes de um driver simplesmente selecionando o driver e alterando a definiÁ„o desejada na p·gina Definitions. Contudo, vocÍ sÛ pode modificar definiÁıes que n„o tenham rÛtulos em negrito. Se vocÍ precisar adicionar um novo driver ODBC, selecione ODBC na p·gina Configurations e ent„o selecione Object | New no menu. O outro item exibido na p·gina Configuration È o objeto System. Dentro deste item, nÛs podemos configurar as definiÁıes de sistema INIT e Format. As definiÁıes INIT de sistema s„o usados pelo BDE para iniciar uma aplicaÁ„o e s„o armazenados no Registry do Windows. As definiÁıes Formats de sistema s„o usadas para definir par‚metros de Data (Date), Hora ( Time) e N˙mero (Number). Os par‚metros Date que podem ser definidos no BDE Administrator determinam como valores string s„o convertidos para valores de data. Por exemplo, vocÍ pode decidir quando as datas s„o armazenadas com ano de quatro dÌgitos ou dois dÌgitos, e quando ou n„o itens de dia e mÍs s„o armazenados com um zero extra para valores de um ˙nico dÌgito. Os par‚metros Time que podem ser definidos determinam como valores string ser„o convertidos para valores hora. Por exemplo, vocÍ pode decidir se eles s„o armazenados em formato de doze ou vinte e quatro horas e quando s„o armazenados segundos ou milisegundos. Os par‚metros Number que podem ser definidos determinam como valores string s„o convertidos para valores numÈricos. Por exemplo, vocÍ pode decidir qual separador Decimal ou Milhar ser· utilizado, e com quantas casas decimais ser„o armazenadas.

Distribuindo o BDE Quando cria a maioria dos programas, o Delphi ir· gerar um execut·vel stand-alone.

Contudo, a natureza do BDE requer que ele trabalhe independentemente de todos os outros pacotes. O n˙cleo do BDE È formado por um conjunto de DLLís, as quais devem ser distribuÌdas com qualquer programa que acesse as funÁıes do BDE. A Borland permite que vocÍ redistribua o BDE gratuitamente sem custos de licenÁas.

SQL Links No inÌcio do capÌtulo, vimos os Native Drivers na p·gina Configuration do BDE Administrator. Estes Native Drivers s„o os SQL Links. Eles s„o simplesmente arquivos .dll que auxiliam o BDE na conex„o com os bancos de dados associados. VocÍ poder · aprender um pouco mais sobre cada um destes SQL Links atravÈs do sistema de Help do BDE Administrator. Selecione Help | Content no item de menu e BDE configuration topics. Agora selecione BDE configuration settings, depois Driver settings. Vejamos o tÛpico de help para o InterBase SQL Link. Cada opÁ„o descreve o tÛpico relacionado. Muito embora estes tÛpicos possam ser extremamente ˙teis no entendimento do link entre o BDE e o banco de dados, utilizar o SQL Monitor pode oferecer informaÁıes mais substanciais para aplicaÁıes cliente/servidor, como veremos no prÛximo capÌtulo.

CapÌtulo 2: Utilizando o SQL Monitor Visualizando um Log O SQL Monitor no Delphi È utilizado para rastrear e monitorar o tempo de chamada entre aplicaÁıes cliente e servidores de banco de dados SQL remotos. Ele permite ver chamadas de instruÁıes chave a um servidor remoto atravÈs de SQL Links ou ODBC. Estas instruÁıes chave podem incluir SELECT, UPDATE, DELETE, etc. Para abrir o SQL Monitor selecione Database | SQL Monitor no menu principal do Delphi. Abriremos a aplicaÁ„o Order Entry Project e a executaremos para ver o SQL Monitor em aÁ„o:

O SQL Monitor nos permite ver a performance de instruÁıes SQL em uma aplicaÁ„o. Ele exibir· as instruÁıes SQL geradas pelo BDE e poderemos utilizar o monitor para ver se as bibliotecas do cliente do banco de dados est „o funcionando corretamente. A caixa de di·logo SQL Monitor consiste em duas janelas. A janela superior exibe as

instruÁıes SQL na ordem em que s„o geradas. Pr Ûximo a cada instruÁ„o h · um n˙mero de referÍncia e a estampa da data e hora tambÈm È gerada para cada instruÁ„o. Esta informaÁ„o de tempo È ˙til na otimizaÁ„o da performance de suas instruÁıes e transaÁıes. A janela inferior no SQL Monitor exibe a instruÁ„o SQL inteira selecionada na janela superior. As duas janelas podem ser redimensionadas utilizandose a barra ëdivisoraí localizada entre elas. Existe tambÈm uma barra de ferramentas nesta caixa de di·logo: O primeiro bot„o na barra de ferramentas È o bot„o Save Log. Com este comando podemos salvar o Log SQL gerado como um arquivo texto (.TXT) para ser utilizado e referenciado posteriormente. O segundo bot„o na barra de ferramentas È o bot„o Copy. Este bot„o copia a instruÁ„o SQL selecionada para o clipboard do Windows. O prÛximo bot „o È utilizado para limpar a janela do SQL Monitor. PrÛximo ao bot„o Clear est· o bot„o Pause Trace. Este bot „o È ˙til se vocÍ quiser interromper a geraÁ„ o de instruÁıes SQL para talvez ver uma instruÁ„o especÌfica. O prÛximo bot „o È o bot„o Always on Top. Este bot„o aloja o SQL Monitor na frente de qualquer outra janela aberta. O ˙ltimo bot„o na barra de ferramentas È o bot„o Trace Options. Este bot „o abre a caixa de di·logo Trace Options. O SQL Monitor lhe d· a flexibilidade de escolher qualquer combinaÁ„o de opÁıes que vocÍ queira monitorar. A se Á„o seguinte discutir· as opÁıes de Trace Options.

Configurando OpÁıes de Trace Options Para selecionar as opÁıes de Trace que vocÍ queira monitorar, selecione o comando de menu Options | Trace Options ou dÍ um clique no bot„o Trace Options. Existem nove categorias que vocÍ pode monitorar com o SQL Monitor: ∑ ∑ ∑ ∑ ∑ ∑ ∑ ∑ ∑

Prepared Query Statements - InstruÁıes a serem enviadas ao servidor Executed Query Statements - InstruÁıes a serem executadas pelo servidor Statement Operations - Qualquer operaÁ„o efetuada (FETCH, EXECUTE, etc.) Connect/Disconnect - Qualquer operaÁ„o associada com conex„o/ desconex„o com um banco de dados. Transactions - OperaÁıes de transaÁ„o (BEGIN, COMMIT, ROLLBACK) Blob I/O - OperaÁıes em tipos de dados Blob (GET BLOB HANDLE, STORE BLOB, etc.) Miscellaneous - OperaÁıes diversas Vendor Errors - Mensagens de erro retornadas pelo servidor de banco de dados Vendor Calls - Chamadas de funÁıes da API ao servidor

Utilizando diferentes combinaÁıes destas opÁıes, o SQL Monitor pode se tornar uma ferramente importante. Por exemplo, vamos remover todas as opÁıes na caixa de di·logo Trace Options exceto Executes Query Statements e Transactions. Agora vamos executar o form Customer e visualizar as alteraÁıes no SQL Monitor.

CapÌtulo 3: Usando Sessions Componentes TSession O sistema para conex„o de bancos de dados envolve cinco tipos de componentes: Session, Database, Dataset, DataSource e controles Dataaware. Estes compenentes relacionam-se uns com ou outros como exibido: Tsession

Tdatabase

Table Query Stored Procedure

Data Flow

Datasource

Data Flow

DBGrid DBNavigator DBText DBEdit DBMemo DBImage DBListBox DBComboBox DBCheckBox DBRadioGroup DBLookupListBox DBLookupComboBox DBCtrlGrid

Antes de comeÁarmos a falar em detalhes sobre o componente TSession, discutiremos alguns dos segredos do uso de tabelas Paradox em um ambiente rede. Existe um driver Paradox instalado com a configuraÁ„o do BDE. Este driver contÈm uma opÁ„o chamada NetDir que especifica a localizaÁ„o do arquivo de controle de rede, PDOXUSR.NET. Este arquivo È necess·rio para permitir que v·rias aplica Áıes e usu·rios compartilhem dados das mesmas tabelas Paradox em um drive de rede. Todas as aplicaÁıes que acessam estas tabelas devem especificar o mesmo diretÛrio para este arquivo de controle de rede. A configuraÁ„o para NetDir È usada por todas as aplicaÁıes Delphi que acessam tabelas DB. A verdade È que esta configuraÁ„o que existe È bem limitada, especialmente na combinaÁ„o de m ˙ltiplas aplicaÁıes, banco de dados, e seus ambientes. Isto È mais um fator para desenvolvedores que necessitam instalar aplicaÁıes em m·quinas que j· possuem esta configuraÁ„o definida. O componente TSession alivia o problema da configuraÁ„o deste valor em v·rias m·quinas. Ele contÈm v·rias propriedades para controlar o comportamento da sua

aplicaÁ„o. A propriedade que ir· ajudar-nos nesta situaÁ„o È NetFileDir (discutida em detalhes mais tarde neste capÌtulo). Ele contÈm uma string que especifica o diretÛrio para o arquivo PDOXUSRS.NET e toma precedÍncia sobre a configuraÁ„o BDE. Outra vantagem no uso deste componente È que ele encapsula as configuraÁıes na aplicaÁ„o ao invÈs de forÁ·-las a basear-se em alguma coisa externa. A principal funÁ„o do componente TSession È gerenciar grupos de conex„o de banco de dados com uma aplicaÁ„o. O componente TSession isola um conjunto de operaÁıes de acesso a banco de dados, tais como conexıes de banco de dados, sem a necessidade de iniciar outra inst‚ncia da aplicaÁ„o. Embora mais de um componente TSession possa ser usado em uma aplicaÁ„o de banco de dados, normalmente um È suficiente. Na Figura 3.1, o componente TSession È um componente necess·rio para a conex„o a um banco de dados. Contudo, vocÍ pode provavelmente escrever v·rias aplicaÁıes de banco de dados sem nunca usar um componente TSession. Na verdade, vocÍ estava usando o componente TSession e n„o sabia disso. Sempre que a unit DB.PAS for usada em uma aplicaÁ„o, o Delphi automaticamente cria um componente padr„o TSession acessÌvel globalmente e chamado Session. Para criar um exemplo que exibir· como o componente TSession est· sendo criado automaticamente pelo Delphi, crie uma nova aplicaÁ„o e coloque apenas um componente TDatabase no form. No manipulador de evento OnCreate do form, coloque o seguinte cÛdigo: Session.NetFileDir Techniques\í ;

:=

ë C:\Borland

Courseware\Delphi

3

CS

Agora coloque um breakpoint nesta linha e execute a aplicaÁ„o. Lembre-se que nÛs n„o colocamos um componente TSession manualmente no form. Quando a aplicaÁ„o parar, execute a linha de cÛdigo e ent„o acesse a caixa de di·logo Watch List usando o comando de menu View | Watches. Adicione o seguinte watch ao Watch List: Session.NetFileDir

Uma vez que o Delphi criou um componente TSession chamado Session, qualquer propriedade ou evento associado com este componente TSession padr„o podem ser implementados em tempo de execuÁ„o. Em nosso exemplo, definimos o NetFile Dir do componente TSession padr „o como ëC:\Borland Courseware\Delphi 3 CS Techniques\í. Na prÛxima sess„o, discutiremos o uso das propriedades NetFileDir e PrivateDir.

Propriedades do TSession Nesta sess„o, discutiremos certas propriedades que fazem do componente TSession um link vital na conex„o de banco de dados. As propriedades que veremos s„o as seguintes: PrivateDir, NetFileDir, KeepConnections, SQLHou...


Similar Free PDFs