• Nenhum resultado encontrado

1-Mecanismos de Acesso

N/A
N/A
Protected

Academic year: 2021

Share "1-Mecanismos de Acesso"

Copied!
11
0
0

Texto

(1)

MECANISMOS DE ACESSO

MECANISMOS DE ACESSO

PRINCIPAIS PROPRIEDADES DA CLASSE TDATASET PRINCIPAIS PROPRIEDADES DA CLASSE TDATASET Apresenta-se a seguir uma descrição das principais

Apresenta-se a seguir uma descrição das principais propriedades da classe TDataSet. Desta maneira,propriedades da classe TDataSet. Desta maneira, podemos descrever estas propriedades de uma única vez, ao

podemos descrever estas propriedades de uma única vez, ao invés de falar sobre elas cada invés de falar sobre elas cada vez quevez que abordarmos uma das classes derivadas da c

abordarmos uma das classes derivadas da classe TDataSet.lasse TDataSet.

Para uso pessoal. Este material não pode ser utilizado em Salas de Aula e para ministrar treinamentos. Para uso pessoal. Este material não pode ser utilizado em Salas de Aula e para ministrar treinamentos.

ACTIVE ACTIVE

Essa propriedade é definida como uma variável booleana, e

Essa propriedade é definida como uma variável booleana, e define se a tabela (ou conjunto define se a tabela (ou conjunto de tabelas)de tabelas) associada ao componente está ou não at

associada ao componente está ou não ativa.iva.

Conforme será visto posteriormente, atribuir o valor true a

Conforme será visto posteriormente, atribuir o valor true a essa propriedade equivale a executar oessa propriedade equivale a executar o método Open do componente. Da mesma forma, atribuir o

método Open do componente. Da mesma forma, atribuir o valor false a essa propriedade equivale avalor false a essa propriedade equivale a executar o método Close do componente.

executar o método Close do componente. AUTOCALCFIELDS

AUTOCALCFIELDS

Essa propriedade é definida como uma variável booleana, e

Essa propriedade é definida como uma variável booleana, e define se o procedimento associado aodefine se o procedimento associado ao evento OnCalcFields do componente deve ser executado sempre que houver uma

evento OnCalcFields do componente deve ser executado sempre que houver uma alteração nos dadosalteração nos dados armazenados na tabela representada pelo componente.

armazenados na tabela representada pelo componente. Os campos calculados são aqueles c

Os campos calculados são aqueles cujo valor pode ser diretamente obtido em função ujo valor pode ser diretamente obtido em função dos valoresdos valores armazenados em outros campos da tabela, ra

armazenados em outros campos da tabela, razão pela qual não precizão pela qual não precisam ser armazenadossam ser armazenados permanentemente na tabela.

permanentemente na tabela. A definição da fórmula util

A definição da fórmula utilizada para o cálculo izada para o cálculo dos valores desses campos é feita no procedimentodos valores desses campos é feita no procedimento associado ao evento OnCalcFields do componente, conforme será exemplificado posteriormente. associado ao evento OnCalcFields do componente, conforme será exemplificado posteriormente. BOF

BOF

Essa propriedade é definida como uma variável booleana, e

Essa propriedade é definida como uma variável booleana, e define se o registro corrente é o define se o registro corrente é o primeiroprimeiro registro da tabela representada pelo componente. É uma

registro da tabela representada pelo componente. É uma propriedade apenas de leitura, e tem o propriedade apenas de leitura, e tem o valorvalor true em cada uma das

true em cada uma das seguintes situações:seguintes situações:

♦Quando se estabelece o acesso à Quando se estabelece o acesso à tabela representada pelo componente, definido-se como True otabela representada pelo componente, definido-se como True o

valor da sua propriedade Active, ou após uma chamada ao seu método Open. valor da sua propriedade Active, ou após uma chamada ao seu método Open.

♦Após uma chamada ao método First do componente.Após uma chamada ao método First do componente. ♦

♦Após uma chamada ao método Prior do componente, quando o registro corrente já é o primeiroApós uma chamada ao método Prior do componente, quando o registro corrente já é o primeiro

registro da tabela. registro da tabela. EOF

EOF

Essa propriedade é definida como uma variável booleana, e

Essa propriedade é definida como uma variável booleana, e define se o registro corrente é o define se o registro corrente é o últimoúltimo registro da tabela representada pelo componente. É

registro da tabela representada pelo componente. É uma propriedade apenas de leitura, e tem o uma propriedade apenas de leitura, e tem o valorvalor True em cada uma das

True em cada uma das seguintes situações:seguintes situações:

♦Quando se estabelece o acesso à Quando se estabelece o acesso à tabela representada pelo componente, definido-se como True otabela representada pelo componente, definido-se como True o

valor da sua propriedade Active (ou após uma chamada ao seu método Open) e a tabela não valor da sua propriedade Active (ou após uma chamada ao seu método Open) e a tabela não possui nenhum registro armazenado.

possui nenhum registro armazenado.

♦Após uma chamada ao método Após uma chamada ao método Last do componente.Last do componente. ♦

♦Após uma chamada ao método Next do componente, quando o registro corrente já é o últimoApós uma chamada ao método Next do componente, quando o registro corrente já é o último

registro da tabela. registro da tabela.

Para uso pessoal. Este material não pode ser utilizado em Salas de Aula e para ministrar treinamentos. Para uso pessoal. Este material não pode ser utilizado em Salas de Aula e para ministrar treinamentos.

FIELDCOUNT FIELDCOUNT

Essa propriedade é definida como uma variável inteira,

Essa propriedade é definida como uma variável inteira, e define o número de campos e define o número de campos da tabelada tabela representada pelo componente. É uma propriedade apenas de leitura, e não

representada pelo componente. É uma propriedade apenas de leitura, e não pode ter o seu valorpode ter o seu valor diretamente alterado pelo usuário.

diretamente alterado pelo usuário.

É importante salientar que essa propriedade retorna o

É importante salientar que essa propriedade retorna o número de campos acessado pelo componentenúmero de campos acessado pelo componente

 –

(2)

Uma forma de se alterar o número de campos acessados pela tabela consiste em utilizar o Fields Editor, que permite que se definam os campos da tabela que serão realmente acessados pelo componente. FIELDS

Essa propriedade é definida como uma array de objetos da classe TField, e permite o acesso a campos individuais do registro corrente da tabela representada pelo componente.

Nesse caso, o primeiro campo é representado pelo índice 0, sendo o n-ézimo campo representado pelo índice n-1.

É importante lembrar que esses campos são aqueles realmente acessados pelo componente, e não são necessariamente todos os campos da tabela por ele representada.

Para acessar os valores armazenados em cada campo acessado pelo componente, deve-se utilizar uma das propriedades de conversão da classe TField, dentre as quais podem-se destacar:

♦AsString, para tratar o valor armazenado no campo como uma string.

♦AsInteger, para tratar o valor armazenado no campo como um número inteiro. ♦AsFloat, para tratar o valor armazenado no campo como um número real. ♦AsBoolean, para tratar o valor armazenado no campo como um valor booleano. ♦AsCurrency, para tratar o valor armazenado no campo como um valor monetário.

♦AsDateTime, para tratar o valor armazenado no campo como um valor no formato Data/Hora. ♦AsVariant, para tratar o valor armazenado no campo como um valor do Variant (que pode

armazenar qualquer tipo de dado).

Dessa maneira, se quisermos exibir o valor armazenado no décimo campo acessado pelo componente, devemos empregar uma linha de código com a seguinte sintaxe:

ShowMessage(Table1.Fields[9].AsString);

Nesse caso, Table1 é o nome do componente que representa a tabela. FIELDVALUES

Essa propriedade é definida como uma array de valores do tipo Variant, indexado pelos nomes dos campos da tabela representada pelo componente. É interessante destacar que essa é a propriedade default da classe TDataSet e das classes dela derivadas por herança.

Conseqüentemente, se TblPais é o nome de um componente de uma classe derivada de TDataSet, as linhas de código a seguir são equivalentes.

TblPais[‘Nome’] := Brasil;

TblPais.FieldValues[‘Nome’] := Brasil;

FILTER

Essa propriedade é definida como uma variável do tipo string, e permite que se estabeleça uma condição (filtro) a ser atendida pelos registros da tabela acessada por esse componente.

Para que essa condição seja aplicada, deve-se, no entanto, definir como True o valor da propriedade Filtered do componente.

FILTERED

Essa propriedade é definida como uma variável booleana, e define se os registros provenientes da tabela representada pelo componente devem ou não atender a uma condição (filtro) especificada na sua propriedade Filter (definida anteriormente) ou por um código inserido no procedimento associado ao seu evento OnFilterRecord.

FILTEROPTIONS

Essa propriedade é definida como uma variável do tipo TFilterOptions que é, por sua vez, um conjunto de elementos do tipo TFilterOption, sendo esses elementos definidos da seguinte maneira:

♦foCaseInsensitive: Não diferencia letras maiúsculas e minúsculas na aplicação do filtro.

♦foNoPartialCompare: Não permite que se utilize um asterisco para definir comparações parciais

na aplicação de um filtro. Esse elemento deve ser incluído quando se quer tratar o asterisco (*) como um caractere do filtro.

Inicialmente, essa propriedade é definida como um conjunto vazio, isto é, por default nenhuma das condições anteriores é especificada.

(3)

Essa propriedade é definida como uma variável inteira, e define o número do registro corrente, dentre todos os registros provenientes da tabela representada pelo componente. É uma propriedade apenas de leitura, e não pode ter o seu valor diretamente alterado pelo usuário, podendo ter o seu valor alterado em função da aplicação de um filtro.

RECORDCOUNT

Essa propriedade é definida como uma variável inteira, e define o número de registros provenientes da tabela representada pelo componente. É uma propriedade apenas de leitura, e não pode ter o seu valor diretamente alterado pelo usuário, podendo, no entanto, ter o seu valor alterado em função da aplicação de um filtro.

STATE

Essa propriedade é uma variável do tipo TDataSetState que define os estados que podem ser assumidos por uma tabela representada pelo componente. Essa propriedade só está disponível durante a execução do aplicativo, e, por ser uma propriedade apenas de leitura, não pode ter o seu valor diretamente

alterado pelo usuário.

Essa propriedade pode assumir um dos valores descritos a seguir:

♦dsInactive: A tabela está inativa, ou seja, sua propriedade Active é igual a false.

♦dsBrowse: A tabela está sendo consultada. Os registros podem ser visualizados, mas não podem

ser alterados.

♦dsEdit: A tabela está sendo editada.

♦dsFilter: O procedimento associado ao evento OnFilterRecord está sendo executado. ♦dsInsert: A tabela está em modo de Inserção (um novo registro foi incluído na tabela).

♦dsSetKey: A tabela está sendo reindexada (aplica-se apenas a objetos da classe TTable, derivada

por herança da classe TDataSet).

♦dsCalcFields: O procedimento associado ao evento OnCalcFields está sendo executado. ♦dsNewValue: Estado temporário, utilizado para indicar que a propriedade NewValue de um

objeto da classe TField está sendo acessada.

♦dsOldValue: Estado temporário, utilizado para indicar que a propriedade OldValue de um objeto

da classe TField está sendo acessada.

♦dsCurValue: Estado temporário, utilizado para indicar que a propriedade CurValue de um objeto

da classe TField está sendo acessada.

PRINCIPAIS MÉTODOS DA CLASSE TDATASET

Apresenta-se a seguir os principais métodos da classe TDataset, sendo a maioria desses métodos virtuais ou abstratos (implementados nas classes derivadas).

APPEND Declaração

procedure Append;

Esse método adiciona um novo registro após o último registro existente na tabela representada pelo componente.

APPENDRECORD Declaração

procedure AppendRecord(const Values: array of const);

Esse método adiciona e grava um novo registro após o último registro existente na tabela representada pelo componente, atribuindo aos campos do registro valores passados como parâmetros na chamada do método.

CANCEL Declaração

procedure Cancel;

Esse método cancela as alterações realizadas no registro corrente da tabela representada pelo componente, desde a última chamada ao seu método Post.

CLEARFIELDS Declaração

(4)

procedure ClearFields;

Esse método apaga os valores armazenados nos campos do registro corrente da tabela representada pelo componente, desde que a tabela esteja em modo de edição ou inserção, gerando uma exceção em caso contrário.

CLOSE Declaração procedure Close;

Esse método desfaz a conexão à tabela representada pelo componente, atribuindo o valor False à propriedade Active do componente, como mostra o trecho de código a seguir, extraído da unit db.pas. procedure TDataSet.Close; begin Active := False; end; CREATE Declaração

constructor Create(AOwner: TComponent);

Esse é o método construtor da classe, e recebe como parâmetro um objeto da classe TComponent, que indica o seu componente proprietário.

DELETE Declaração

procedure Delete;

Esse método remove o registro corrente da tabela representada pelo componente, definindo o próximo registro como registro atual.

DESTROY Declaração

destructor Destroy;

Esse é o método destrutor da classe, devendo ser utilizado apenas quando uma instância da classe é criada dinamicamente pelo código da aplicação (mediante uma chamada ao método Create do componente que representa a tabela).

DISABLECONTROLS Declaração

procedure DisableControls;

Esse método desconecta temporariamente todos os componentes associados ao componente que representa a tabela.

EDIT

Declaração procedure Edit;

Esse método coloca a tabela representada pelo componente em modo de edição, permitindo que se alterem os valores armazenados nos campos do registro corrente.

ENABLECONTROLS Declaração

procedure EnableControls;

Esse método restabelece a conexão a todos os componentes associados ao componente que representa a tabela, cuja conexão tenha sido desabilitada por uma chamada ao método DisableControls.

FIELDBYNAME Declaração

(5)

Esse método retorna um objeto da classe TField que representa o campo cujo nome é passado como parâmetro na chamada ao método.

O valor retornado pelo método pode, evidentemente, ser tratado como um objeto da classe TField, e as propriedades de conversão descritas anteriormente podem ser utilizadas normalmente.

A utilização desse método apresenta, em relação à propriedade Fields, a vantagem de se poder desconsiderar a ordem exata dos campos, bastando que se conheça o nome de cada um deles. FINDFIELD

Declaração

function FindField(const FieldName: string): TField;

Esse método determina se o componente acessa um campo cujo nome é passado como parâmetro na forma de uma string, retornando um objeto da classe TField que representa o campo, caso o mesmo exista, e retornando nil em caso contrário.

FIRST Declaração procedure First;

Esse método define o primeiro registro da tabela representada pelo componente como registro corrente. Além disso, antes de alterar o registro corrente, grava qualquer alteração pendente, mediante uma

chamada implícita ao método Post do componente. INSERT

Declaração

procedure Insert;

Esse método insere um novo registro na posição definida pelo registro corrente. INSERTRECORD

Declaração

procedure InsertRecord(const Values: array of const);

Esse método insere e grava um novo registro na posição definida pelo registro corrente da tabela representada pelo componente, atribuindo aos campos do registro valores passados como parâmetros na chamada do método.

ISEMPTY Declaração

function IsEmpty: Boolean;

Esse método retorna True se a tabela representada pelo componente não tiver nenhum registro, retornando False em caso contrário.

ISLINKEDTO Declaração

function IsLinkedTo(DataSource: TDataSource): Boolean;

Esse método retorna True se o componente que representa a tabela estiver ligado a um componente DataSource, cujo nome é passado como parâmetro na chamada ao método, retornando False em caso contrário.

LAST

Declaração procedure Last;

Esse método define o último registro da tabela representada pelo componente como registro corrente. Além disso, antes de alterar o registro corrente, grava qualquer alteração pendente, mediante uma chamada implícita ao método Post do componente.

LOCATE Declaração

function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean; Esse método permite a busca exata de um registro, por campos que não façam parte do índice corrente

(6)

da tabela representada pelo componente, e recebe como parâmetros:

♦Uma string contendo os nomes dos campos pelos quais será feita a pesquisa (separados por

ponto-e-vírgula).

♦Uma string contendo os valores a serem pesquisados nos campos pelos quais será feita a pesquisa

(separados por ponto-e-vírgula).

♦Um conjunto de opções, que pode conter os seguintes elementos: LoCaseInsensitive –se esse

elemento for incluído, letras maiúsculas e minúsculas serão tratadas indiferentemente; LoPartialKey –indica que a pesquisa será aproximada.

MOVEBY Declaração

function MoveBy(Distance: Integer): Integer;

Esse método redefine o registro atual, deslocando o “ponteiro ou cursor” que representa o registro

atual da tabela representada pelo componente por um número de registros que é passado como único parâmetro na chamada do método.

NEXT Declaração procedure Next;

Esse método define o próximo registro da tabela representada pelo componente como registro corrente. Além disso, antes de alterar o registro corrente, grava qualquer alteração pendente, mediante uma chamada implícita ao método Post do componente.

Na realidade, esse método faz uma chamada ao método MoveBy da classe, passando o valor 1 como parâmetro, como mostra o trecho de código reproduzido a seguir e extraído da unit db.pas.

procedure TDataSet.Next; begin MoveBy(1); end; OPEN Declaração procedure Open;

Esse método estabelece a conexão à tabela representada pelo componente, atribuindo o valor True à sua propriedade Active, como mostra o trecho de código a seguir, extraído da unit db.pas.

procedure TDataSet.Open; begin Active := True; end; POST Declaração procedure Post;

Esse método grava as alterações feitas no registro atual da tabela representada pelo componente. As alterações feitas anteriormente a uma chamada ao método Post não podem ser canceladas mediante uma chamada ao método Cancel (para que isso seja possível, deve-se empregar o conceito de transações, a ser descrito posteriormente).

PRIOR Declaração procedure Prior;

Esse método define o registro anterior da tabela representada pelo componente como registro corrente. Além disso, antes de alterar o registro corrente, grava qualquer alteração pendente, mediante uma chamada implícita ao método Post do componente.

Na realidade, esse método faz uma chamada ao método MoveBy da classe, passando o valor -1 como parâmetro, como mostra o trecho de código a seguir, extraído da unit db.pas.

procedure TDataSet.Prior; begin

(7)

MoveBy(-1); end;

REFRESH Declaração

procedure Refresh;

Esse método atualiza a exibição dos dados armazenados em uma tabela nos componentes de visualização conectados ao componente que representa a tabela. Uma situação em que deve ser feita uma chamada ao método refresh do componente corresponde àquela em que a aplicação de um filtro é cancelada (modificando-se o valor da sua propriedade Filtered para False).

SETFIELDS Declaração

procedure SetFields(const Values: array of const);

Esse método permite que se atribuam simultaneamente valores a vários campos do registro corrente da tabela representada pelo componente. Os valores devem ser fornecidos na o rdem em que os campos são armazenados na tabela.

Para executar esse método a tabela deve estar em modo de edição, o que pode ser garantido por uma chamada ao método Edit do componente que a representa.

PRINCIPAIS EVENTOS DA CLASSE TDATASET

Apresenta-se a seguir uma descrição dos principais eventos da classe TDataSet. AFTERCANCEL

O procedimento associado a esse evento é executado imediatamente após se cancelarem as alterações feitas no registro corrente, normalmente após uma chamada ao método Cancel do componente que representa a tabela.

Na realidade, o método Cancel faz uma chamada a um método protegido da classe TDataSet,

denominado DoAfterCancel, que verifica se existe um procedimento associado ao evento e, em caso positivo, o executa.

AFTERCLOSE

O procedimento associado a esse evento é executado imediatamente após se interromper a conexão estabelecida entre a tabela e o componente que a representa, normalmente após uma chamada ao seu método Close, ou atribuindo-se o valor False à sua propriedade Active.

Na realidade, o método Close, ao atribuir o valor False à propriedade Active, provoca uma chamada a um método protegido da classe TDataSet, denominado DoAfterClose, que verifica se existe um

procedimento associado ao evento e, em caso positivo, o executa. O mesmo é feito pelo método interno SetActive, responsável pela atribuição de um valor ao campo que armazena internamente o valor da propriedade Active.

AFTERDELETE

O procedimento associado a esse evento é executado imediatamente após se remover o registro corrente, normalmente após uma chamada ao método Delete do componente que representa a tabela.

Na realidade, o método Delete faz uma chamada a um método protegido da classe TDataSet, denominado DoAfterDelete, que verifica se existe um procedimento associado ao evento e, em caso positivo, o executa.

AFTEREDIT

O procedimento associado a esse evento é executado imediatamente após se colocar a tabela representada pelo componente em modo de edição.

Na realidade, o método Edit faz uma chamada a um método protegido da classe TDataSet, denominado DoAfterEdit, que verifica se existe um procedimento associado ao evento e, em caso positivo, o executa. AFTERINSERTT

(8)

O procedimento associado a esse evento é executado imediatamente após a inserção de um novo registro na tabela representada pelo componente.

Na realidade, os métodos Insert e Append fazem uma chamada a um método protegido da classe TDataSet, denominado DoAfterInsertt, que verifica se existe um procedimento associado a esse evento e, em caso positivo, o executa.

AFTEROPEN

O procedimento associado a esse evento é executado imediatamente após se estabelecer a conexão entre a tabela e o componente que a representa, normalmente após uma chamada ao seu método Open, ou atribuindo-se o valor True à sua propriedade Active.

Na realidade, o método Open, ao atribuir o valor True à propriedade Active, faz uma chamada a um método protegido da classe TDataSet, denominado DoAfterOpen, que verifica se existe um procedimento associado ao evento e, em caso positivo, o executa. O mesmo é feito pelo método interno SetActive, responsável pela atribuição de um valor ao campo que armazena internamente o valor da propriedade Active.

AFTERPOST

O procedimento associado a esse evento é executado imediatamente após a gravação das alterações feitas no registro corrente da tabela representada pelo componente, normalmente após uma chamada ao seu método Post.

Na realidade, o método Post faz uma chamada a um método protegido da classe TDataSet, denominado DoAfterPost, que verifica se existe um procedimento associado ao evento e, em caso positivo, o executa. AFTERSCROLL

O procedimento associado a esse evento é executado imediatamente após uma movimentação para um outro registro da tabela (que passa a ser o registro corrente), normalmente após uma chamada aos seus métodos First, Prior, Next e Last, dentre outros.

Na realidade, esses métodos fazem uma chamada a um método protegido da classe TDataSet, denominado DoAfterScroll, que verifica se existe um procedimento associado ao evento e, em caso positivo, o executa.

BEFORECANCEL

O procedimento associado a esse evento é executado imediatamente antes de se cancelarem as alterações feitas no registro corrente, normalmente após uma chamada ao método Cancel do componente que

representa a tabela.

Na realidade, o método Cancel faz uma chamada a um método protegido da classe TDataSet,

denominado DoBeforeCancel, que verifica se existe um procedimento associado ao evento e, em caso positivo, o executa.

BEFORECLOSE

O procedimento associado a esse evento é executado imediatamente antes de se interromper a conexão estabelecida entre a tabela e o componente que a representa, normalmente após uma chamada ao seu método Close, ou atribuindo-se o valor False à sua propriedade Active.

Na realidade, o método Close faz uma chamada a um método protegido da classe TDataSet, denominado DoBeforeClose, que verifica se existe um procedimento associado ao evento e, em c aso positivo, o

executa. O mesmo é feito pelo método interno SetActive, responsável pela atribuição de um valor ao campo que armazena internamente o valor da propriedade Active.

BEFOREDELETE

O procedimento associado a esse evento é executado imediatamente antes de se remover o registro corrente, normalmente após uma chamada ao método Delete do componente que representa a tabela. Na realidade, o método Delete faz uma chamada a um método protegido da classe TDataSet,

denominado DoBeforeDelete, que verifica se existe um procedimento associado ao evento e, em caso positivo, o executa.

BEFOREEDIT

O procedimento associado a esse evento é executado imediatamente antes de se colocar a tabela representada pelo componente em modo de edição.

(9)

DoBeforeEdit, que verifica se existe um procedimento associado ao evento e, em c aso positivo, o executa. BEFOREINSERT

O procedimento associado a esse evento é executado imediatamente antes da inserção de um novo registro na tabela representada pelo componente.

Na realidade, os métodos Insert e Append fazem uma chamada a um método protegido da classe TDataSet, denominado DoBeforeInsertt, que verifica se existe um procedimento associado ao evento e, em caso positivo, o executa.

BEFOREOPEN

O procedimento associado a esse evento é executado imediatamente antes de se estabelecer a conexão entre a tabela e o componente que a representa, normalmente após uma chamada ao seu método Open, ou atribuindo-se o valor True à sua propriedade Active.

Na realidade, o método Open faz uma chamada a um método protegido da classe TDataSet, denominado DoBeforeOpen, que verifica se existe um procedimento associado ao evento e, em caso positivo, o

executa. O mesmo é feito pelo método interno SetActive, responsável pela atribuição de um valor ao campo que armazena internamente o valor da propriedade Active.

BEFOREPOST

O procedimento associado a esse evento é executado imediatamente antes da gravação das alterações feitas no registro corrente da tabela representada pelo componente, normalmente após uma chamada ao seu método Post.

Na realidade, o método Post faz uma chamada a um método protegido da classe TDataSet, denominado DoBeforePost, que verifica se existe um procedimento associado ao evento e, em caso positivo, o executa. BEFORESCROLL

O procedimento associado a esse evento é executado imediatamente antes de uma movimentação para um outro registro da tabela (que passa a ser o registro corrente), normalmente após uma chamada aos seus métodos First, Prior, Next e Last, dentre outros.

Na realidade, esses métodos fazem uma chamada a um método protegido da classe TDataSet,

denominado DoBeforeScroll, que verifica se existe um procedimento associado ao evento e, em caso positivo, o executa.

ONCALCFIELDS

O procedimento associado a esse evento é executado sempre que os valores dos campos calculados da tabela representada pelo componente precisam ser calculados.

ONDELETEERROR

O procedimento associado a esse evento é executado sempre que a tentativa de se remover um registro da tabela, em uma chamada ao seu método Delete, falha.

ONFILTERRECORD

O procedimento associado a esse evento é executado sempre que se aplica um filtro aos registros da

tabela, devendo nesse procedimento ser estabelecida a condição a ser atendida pelos registros. A aplicação de um filtro a uma tabela pode ser feita atribuindo-se o valor True à sua propriedade Filtered.

ONNEWRECORD

O procedimento associado a esse evento é executado sempre que se adiciona um novo registro à tabela representada pelo componente, mediante uma chamada ao método Append ou Insert, po dendo ser utilizado para se definir valores default para os campos do registro recém-criado.

ONPOSTERROR

O procedimento associado a esse evento é executado sempre que a tentativa de se gravar um registro da tabela, em uma chamada ao seu método Post, falha.

Conforme será visto nos próximos capítulos, as classes de acesso a dados via BDE, DbExpress e Interbase Express não são derivadas diretamente da classe TDataSet, mas de outras classes dela derivadas, e que são:

(10)

♦TIBCustomDataset, para acesso via Interbase Express. ♦TCustomSQLDataSet, para acesso via DbExpress.

A classes TClientDataset e TSQLClientDataset são derivadas diretamente da classe TCustomClientDataset.

A CLASSE TCUSTOMCONNECTION

A classe TCustomConnection é a classe-base das classes usadas para fazer uma conexão a uma fonte de dados remota (banco de dados) de praticamente todas as tecnologias de acesso a banco de dados, excluindo o BDP –Borland Data Provider: o BDE (componente TDatabase), InterbaseExpress (TIBDatabase) e

DbExpress (TSQLConnection). Portanto, essa classe possui claro destaque, justificando o estudo a seguir.

PRINCIPAIS PROPRIEDADES DA CLASSE TCUSTOMCONNECTION

Apresenta-se a seguir uma descrição das principais propriedades da classe TCustomConnection, além daquelas herdadas das suas classes ancestrais.

CONNECTED

Essa propriedade é definida como uma variável booleana e define se a conexão foi estabelecida. DATASETCOUNT

Essa propriedade é definida como uma variável inteira e define o número de componentes derivados da clase TDataset linkados a este componente de conexão.

DATASETS

Essa propriedade é uma array de objetos de classes derivadas da classe TDataset, e permite acessar os componentes linkados a este componente de conexão.

LOGINPROMPT

Essa propriedade é definida como uma variável booleana e define se uma caixa de diálogo deverá ser exibida quando se estabelece uma conexão.

STREAMEDCONNECTED

Essa propriedade é definida como uma variável booleana e define se a conexão estava ativa quando o componente responsável pela conexão foi carregado a partir de um stream.

PRINCIPAIS MÉTODOS DA CLASSE TCUSTOMCONNECTION

Apresenta-se a seguir uma descrição dos principais métodos da classe TCustomConnection, além daqueles herdados das suas classes ancestrais.

CLOSE Declaração procedure Close;

Esse método encerra uma conexão (equivale a definir a propriedade Connected como False). DOCONNECT

Declaração

procedure DoConnect;

Esse método estabelece a conexão ao banco de dados (usado pela propriedade connected para estabelecer a conexão).

DODISCONNECT Declaração

procedure DoDisConnect;

Esse método finaliza a conexão ao banco de dados (usado pela propriedade comnected para finalizar a conexão).

(11)

GETCONNECTED Declaração

function GetConnected: Boolean;

Esse método retorna o valor armazenado na propriedade Connected. GETDATASET

Declaração

function GetDataSet(Index:Integer): TDataSet;

Esse método retorna uma referência a um dos objetos derivados da classe TDataset vinculados a esta conexão, recebendo como parâmetro o índice que define o objeto na propriedade Datasets.

GETDATASETCOUNT Declaração

function GetDataSetCount: Integer;

Esse método retorna o valor armazenado na propriedade DatasetCount. LOADED

Declaração

procedure Loaded;

Esse método carrega o componente de conexão após todos os outros componentes do formulário ou Datamodule terem sido carregados na memória.

OPEN Declaração procedure Open;

Esse método inicializa ou estabelece uma conexão. SETCONNECTED

Declaração

procedure SetConnected(Value: Boolean); virtual;

Esse método altera o valor da propriedade Connected, em função do argumento passado como parâmetro na chamada do método.

PRINCIPAIS EVENTOS DA CLASSE TCUSTOMCONNECTION

Apresenta-se a seguir uma descrição dos principais métodos da classe TCustomConnection, além daqueles herdados das suas classes ancestrais.

AFTERCONNECT

Esse evento ocorre assim que uma conexão é estabelecida. AFTERDISCONNECT

Esse evento ocorre assim que uma conexão é encerrada. BEFORECONNECT

Esse evento ocorre antes que uma conexão seja estabelecida. BEFOREDISCONNECT

Esse evento ocorre antes que uma conexão seja encerrada. ONLOGIN

O procedimento associado a esse evento é executado sempre que se estabelece uma nova conexão ao banco de dados representado pelo componente, e o valor da sua propriedade LoginPrompt é igual a True.

Esse procedimento tem, entre seus parâmetros, um objeto da classe TStrings chamado LogimParams no qual devem ser fornecidos os valores dos parâmetros USERNAME e PASSWORD, para permitir o acesso ao banco de dados.

Caso se esteja utilizando a caixa de diálogo padrão de Login, não há necessidade de se codificar esse procedimento.

Referências

Documentos relacionados

No entanto, maiores lucros com publicidade e um crescimento no uso da plataforma em smartphones e tablets não serão suficientes para o mercado se a maior rede social do mundo

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

O enfermeiro, como integrante da equipe multidisciplinar em saúde, possui respaldo ético legal e técnico cientifico para atuar junto ao paciente portador de feridas, da avaliação

By interpreting equations of Table 1, it is possible to see that the EM radiation process involves a periodic chain reaction where originally a time variant conduction

O desenvolvimento desta pesquisa está alicerçado ao método Dialético Crítico fundamentado no Materialismo Histórico, que segundo Triviños (1987)permite que se aproxime de

Para preparar a pimenta branca, as espigas são colhidas quando os frutos apresentam a coloração amarelada ou vermelha. As espigas são colocadas em sacos de plástico trançado sem

A tem á tica dos jornais mudou com o progresso social e é cada vez maior a variação de assuntos con- sumidos pelo homem, o que conduz também à especialização dos jor- nais,

2 - OBJETIVOS O objetivo geral deste trabalho é avaliar o tratamento biológico anaeróbio de substrato sintético contendo feno!, sob condições mesofilicas, em um Reator