Trabalhando com DataSets

Trabalhando com DataSets

Um DataSet é um conjunto de dados organizado em forma de tabela (em linhas e colunas). As colunas são os campos e as linhas são os registros. Todo o acesso a bancos de dados no Delphi é feito através de DataSets. Os componentes TableQuery são os tipos principais de DataSets. Neste capítulo, veremos as propriedades, eventos e métodos dos DataSets. Tudo que veremos aqui vale para os componentes TableQuery. Abrindo e fechando DataSets Para alterar ou ler os dados em uma DataSet, você deve primeiro abrir o DataSet.

Para abrir um DataSet, realize uma das seguintes operações: Altere a propriedade Active do DataSet para True.

Isso pode ser feito em tempo de desenvolvimento no Object Inspector, ou em tempo de execução. O seguinte comando abre o componente chamado “Table1”: Table1.Active := True; Use o método Open no DataSet, como abaixo:

Query1.Open; Quando um DataSet é aberto os dados conectados a ele são lidos e exibidos automaticamente (se houver componentes onde os dados possam ser exibidos, é claro). No exemplo do capítulo anterior, abrimos um componente Table em um formulário para que os dados fossem exibidos imediatamente em um componente DBGrid. Você deve sempre fechar um DataSet depois de usá-lo, para liberar recursos do sistema.

Para fechar um DataSet, realize uma das seguintes operações: Altere a propriedade Active do DataSet para False. Use o método Close no DataSet, como em Table1.Close;

Estados de um DataSet

Um DataSet pode estar em vários estados diferentes. O estado de um DataSet determina o que pode ser feito (ou está sendo feito) com o DataSet. O valor da propriedade State de um DataSet determina o seu estado atual. Veja a seguir uma descrição breve dos estados mais importantes em que pode estar um DataSet.

Estado (valor de State) Significado
dsInactive O Dataset está fechado. Seus dados não estão disponíveis (não podem ser lidos nem alterados).
dsBrowse O Dataset está aberto. Seus dados podem ser visualizados, mas não podem ser alterados. Este é o estado padrão de um DataSet.
dsEdit O DataSet está aberto. O registro atual pode ser modificado.
dsInsert O DataSet está aberto. Um novo registro acaba de ser inserido.

O estado dsBrowse é o estado padrão. Quando um DataSet é aberto, ele é colocado automaticamente neste estado. Vários métodos de um DataSet podem ser usados para alterar o seu estado. Na ilustração a seguir, são mostrados os quatro estados mais importantes e os métodos que podem ser usados para passar de um estado para outro. Estados de um DataSet Para usar um dos métodos da ilustração, simplesmente use o nome do DataSet seguido pelo nome do método. O trecho de código abaixo, por exemplo, altera cinco vezes o estado de um componenteTable. procedure TForm1.Button1Click(Sender: TObject); begin Table1.Open; // O estado muda para dsBrowse … Table1.Edit; //… muda para dsEdit… Table1.Insert; //… muda novamente para dsInsert … Table1.Close; //… e finalmente muda para dsInactive end; Navegando em um DataSet Os DataSets teriam pouca utilidade se não fosse possível percorrer e consultar (navegar) os seus registros. Há vários métodos e propriedades úteis para a navegação de DataSets. Para permitir a navegação de seus registros, todo DataSet contém um cursor que indica o registro atual (ou linha atual) do DataSet. É no registro atual que são feitas alterações, ou onde são inseridos (ou removidos) registros. Todos os métodos de navegação alteram a posição do cursor. Veja uma descrição breve desses métodos na tabela a seguir:

Método Descrição
First Move o cursor para o primeiro registro do DataSet.
Last Move o cursor para o último registro do DataSet.
Next Move o cursor para o próximo registro do DataSet (imediatamente depoisdo registro atual). Se o cursor já estiver no último registro, nada acontece.
Prior Move o cursor para o registro anterior do DataSet (imediatamente antes do registro atual). Se o cursor já estiver no primeiro registro, nada acontece.
MoveBy(num) Move o cursor o número de registros especificado em num. Um valor positivo move o cursor para frente; um valor negativo move-o para trás. Por exemplo, Table1.moveBy(-10) move o cursor 10 registros para trás na tabelaTable1. Se o número de registros especificado for maior do que o número que se pode mover, o cursor é movido para o primeiro ou o último registro, dependendo da direção do movimento.

Além dos métodos descritos acima, há duas propriedades que indicam se o cursor chegou ao final ou ao início de um DataSet: BOFEOF

.

Propriedade Descrição
BOF BOF é alterado para True quando o cursor está no primeiro registro do DataSet. BOF é a abreviação de Begin of File – “Início do Arquivo”. Quando o cursor estiver em qualquer registro que não seja o primeiro do DataSet, o valor de BOF é False.
EOF EOF é alterado para True quando o cursor está no último registro do DataSet. EOF é a abreviação de End of File – “Final do Arquivo”. Quando o cursor estiver em qualquer registro que não seja o último do DataSet, o valor de EOF é False.

Modificando Datasets Pode-se alterar um DataSet diretamente, modificando valores campo a campo, ou adicionando e removendo registros inteiros. Os seguintes métodos permitem fazer essas alterações:

Método Descrição
Edit Coloca o DataSet no estado dsEdit. Isto permite a alteração dos valores do registro atual. Muitos componentes chamam esse método implicitamente para permitir a alteração direta dos valores de um DataSet. O componente DBGrid, por exemplo, entra no estado dsEdit usando o método Edit, quando se dá um duplo clique em um dos registros.
Append Adiciona um registro vazio ao final do DataSet. O estado do DataSet muda paradsInsert.
Insert Adiciona um registro vazio na posição atual do cursor. O estado do DataSet muda para dsInsert (como para o método Append).
Post Tenta enviar o novo registro ou o registro alterado para o banco de dados. Se tudo correr bem, o DataSet é colocado no estado dsBrowse. Caso contrário, o estado do DataSet não é alterado. O comando Post é um tipo de confirmação da última entrada. Muitos componentes chamam Post automaticamente (quando se passa de um registro para outro em um DBGrid, por exemplo).
Cancel Cancela a última operação (uma alteração em um registro, por exemplo) e coloca o DataSet no estado dsBrowse.
Delete Apaga o registro atual e coloca o DataSet no estado dsBrowse.

Retirado de: http://www.angelfire.com/mt/argo/datasets.htm

Deixe um comentário

Site criado com WordPress.com.

Acima ↑