Delphi e Banco de Dados
Delphi e Banco de Dados
Delphi e Banco de Dados
Viso Geral
Utilizando o Delphi, voc pode criar aplicaes de bancos de dados que trabalhem diretamente com bancos de dados desktop ou servidores de bancos de dados remotos, tais como Oracle, Sybase, e bancos de dados padro ODBC. Este captulo o introduz arquitetura das aplicaes Client/Server, bem como as ferramentas utilizadas para constru-las.
O Borland Database Engine permite que ferramentas e aplicaes Borland conectem transparentemente dados residindo no dBASE, Paradox , Oracle, Sybase, Interbase, Informix, DB2, e qualquer banco de dados que utilizem o Open Database Connectivity (ODBC).
Criando Aliases
Um Alias consiste de um nome e conjunto de parmetros que descrevem recursos de rede e especificam a localizao das tabelas do banco de dados. Um alias necessrio para acessar banco de dados SQL. Embora voc possa personalizar um alias aps cri-lo, mais fcil escolher parmetros do diver que combinem com sua instalao servidora antes de criar os aliases para bancos de dados SQL. Desta forma, qualquer alias que voc crie herdam estes parmetros.
SQL
componentes data-aware. Componentes data-aware so componentes que tem cincia de dados e sua estrutura em um banco de dados. Quando voc constri uma aplicao de banco de dados, voc insere componentes Data Access em form e atribui propriedades que especificam o banco de dados, tabelas e registros a serem utilizados com este form. Muito embora componentes Data Access no sejam visveis durante a execuo, eles trabalham em segundo plano para regular o acesso aos dados.Os componentes Data Access aparecem na Component Palette.
TTable
No
TQuery
No
StoredProc
No
TDatabase
No
TBacthMove
No
TReport
Sim
P:ReportName P:ReportDir P:Preview P:Run P:AutoUnload P:UnitialValues M:RunMacro M:Connect M:SetVariable M:ReCalcReport
TDBMemo
Sim
Permite exibir ou editar BLOBs de um registro ativo. a verso data-aware do componente TMemo
TDBImage
Sim
TDBListBox
Sim
Permite exibir, recortar, ou colar imagens bitmap BLOB para e de um registro ativo. a verso data-aware do componente TImage Permite exibir valores de uma coluna de uma tabela. a verso data-aware do componente TListBox
TDBCombo Box
Sim
Permite exibir ou editar valores de uma coluna de uma tabela. a verso dataaware do componente TComboBox
P:MaxLength P:ReadOnly P:AutoSelect P:SelText P:SelStart P:SelLentgh P:PassWordChar P:AutoSize M:SelectAll M:ClearSelection M:CutToClipboard M:CopytoClipboard M:PasterFrom Clipboard P:DataSource P:DataField P:Text P:ReadOnly P:Modified P:MaxLength P:Lines P:SelText P:SelStart P:SelLength P:PassWordChar P:AutoSize P:ScrollBars P:WordWrap P:WantTabs P:M:Add M:Delete M:Insert M:CutToClipboard M:CopyToClipboard M:PasterFromClipboard M:SelectAll P:DataSource P:DataField P:Picture P:AutoDisplay P:ReadOnly P:DataField P:Items P:ItemIndex M:Add M:Delete M:Insert P:ReadOnly P:DataSource P:DataField P:Items P:ItemIndex P:Sorted P:SelText P:SelStart P:SelLength M:Add
TDBCheck Box
Sim
Permite exibir ou editar um campo de dado Booleano de um registro ativo. a verso data-aware do componente TCheckBox Permite exibir ou definir valores de colunas. a verso data-aware do componente TGroupBox populado com radio buttons Permite exibir dados de uma tabela de busca durante a execuo. a verso dataaware do componente TListBox Permite exibir dados de uma tabela de busca durante a exibio. a verso dataaware do componente TComboBox
TDBRadioGroup
Sim
TDBLookupList
Sim
TDBLookupCombo
Sim
M:Delete M:Insert M:SelectAll P:DataSource P:DataField P:ValueChecked P:ValueUnchecked P:ReadOnly P:DataSource P:DataField P:Items P:Value P:ReadOnly P:DataField P:DataSource P:LookupDisplay P:LookupField P:LookupSource P:LookupField P:LookupDisplay P:DataSource P:DataField
Query, ou StoredProc. TTable, TQuery, e TStoredProc so descendentes de TDataSet, ou seja, eles herdam as propriedades de TDataSet.
Voc pode inserir diversos componentes Query, Table, e StoredProc em um form a atribuir a propriedade DataSet baseado em uma condio no programa. Voc tambm pode atribuir a propriedade DataSet a um nome ou objeto TQuery, TTable, ou TStoredProc encontrado em outro form utilizando o identificador da unit do form. Por exemplo, aps incluir a Unit1 na clusula uses, voc pode digitar o seguinte: DataSource1.DataSet := Unit1.Form1.Table1;
Utilizando a propriedade Enable permite que voc desconecte temporariamente o componente visual Data Control do TDataSource. No exemplo anterior, se a tabela contiver 2000 linhas e o TDataSource estiver habilitado, o usurio de sua aplicao veria 2000 linhas rolando na tela durante esta operao. Desabilitando TDataSource uma maneira mais eficiente de se pesquisar em um grande nmero de linhas, pois o componente Data Control no atrasar a procura exibindo cada linha conforme esta for sendo alterada.
Operam nos datasets, como segue: O mtodo Open equivalente a definir a propriedade Active para True. O mtodo Close define a propriedade Active para False O mtodo Refresh permite ler novamente o dataset do banco de dados . Se voc precisa se assegurar que os dados so os mais atuais, contendo quaisquer alteraes feitas por outros usurios, utilize o mtodo refresh. Um componente Table, Query, ou StoredProc deve estar aberto com open quando Refresh for chamado. Um exemplo destes mtodos : Table1.Open; Table1.Close; Table1.Refresh; Permite navegar ou alterar a linha atual do dataset. A seguir, um exemplo utilizando vrios destes mtodos: Table1.First While not Table1.EOF do Begin {Seu cdigo aqui} Table1.Next; end; O mtodo MoveBy move um nmero especificado de linhas. Por exemplo: Table1.MoveBy(3) move 3 linhas para cima. Table1.MoveBy(-2) move 2 linhas para trs.
Permite modificar os dados em uma tabela de banco de dados, como segue: O mtodo Insert permite adicionar uma linha tabela. Por exemplo: Table2.Insert; Table2.Fields[0] .AsInteger : = 20; Table2.Fields[1] .AsString : = News; Table2.Fields[ 2] .AsString : = 5 Horas; Table2.Post; O mtodo Post faz com que a operao Insert Update ou Delete ocorra. O mtodo Cancel faz com que uma operao Insert Delete, Edit ou Append no ocorrida seja cancelada. Fornece uma maneira de acessar dados de uma coluna especificando no nome da coluna do banco de dados. Como no exemplo a seguir: s : = Table2.FieldByName (area) .AsString; Procura atravs dos datasets, como segue: SetKey alterna a tabela para o modo de pesquisa (search). Enquanto neste modo, a propriedade Fields tem uma utilizao especial. GotoKey inicia a pesquisa por um valor coincidente com o valor encontrado em Fields[n]. Fields[n] contm o valor a ser pesquisado por valores em outras colunas definindo a coluna Fields correspondente. O exemplo a seguir mostra um exemplo da utilizao de SetKey e GotoKey: Table1.SetKey; Table1.Fields[0] .AsString Edit1.Text; Table1.GotoKey; Permite ser mais seletivo nos dados que sua aplicao seleciona ou utiliza na tabela.
FieldByName
SetKey GotoKey
SetRangeStart
SetRangeEnd ApplyRange
Geralmente uma tabela grande e voc quer selecionar somente uma srie de valores da tabela. O mtodo Range permite fazer tal seleo. Exemplo: Table1.SetRangeStart Table1.Fields[0] .AsString : = Edit1.Text; Table1.SetRangeEnd Table.Fields[0] .AsString : = Edit2.Text; Table1.ApplyRange;
A primeira chamada SetRangeStart o coloca no modo range e a propriedade Fields toma um significado especial. Utilize a propriedade Fields para especificar o valor de incio para a srie. A chamada para SetRangeEnd inicia um modo onde os valores digitados na propriedade Fields so utilizadas como o valor final da srie. ApplyRange faz com que o comando seja processado. Um dataset criado contendo os valores entre os valores de incio e final. FreeBookmark Permite criar um marcador de linha em uma tabela ou query e depois retornar esta linha GeTBookMark posteriormente. Os mtodos Bookmark utilizam um tipo de objeto chamado TBookMark. GotoBookmark Por exemplo: Var Marker : TBookMark; Begin Marker : = Table2.GeTBookMark; Table2.GotoBookmark(Marker); Table2.FreeBookmark(Marker); O mtodo GeTBookMark aloca um marcador para linha da tabela. O mtodo GotoBookmark altera a localizao na tabela para a linha indicada pelo Bookmark alocado anteriormente. Utilize o mtodo FreeBookmark para liberar o espao alocado para o marcador.
TableName
Exclusive
Controla o acesso de usurio ao banco de dados. Os valores so: True Assegura que nenhum outro usurio acesse ou modifique a tabela enquanto voc a mantiver aberta False Permite que outros usurios acessem ou modifiquem a tabela enquanto voc a mantiver aberta. Este o default. Identifica um ndice secundrio para Table. Voc no pode alterar IndexName enquanto a tabela estiver ativa Especifica o nome dos campos ligados ou campos na propriedade MasterFields para criar um cursor linkadoa uma tabela secundria Para especificar diversos campos, voc deve separar os nomes de campos com uma barra vertical (|) . Especifica o TdataSource de onde TTable obter os dados para a tabela master Pe a tabela em modo somente-leitura. Os valores so: True Previne o sistema de gravar alteraes ao banco de dados onde a tabela resida False Permite que o sistema grave alteraes ao banco de dados onde a tabela resida
IndexName MasterFields
MasterSource ReadOnly