Quick Tips : State do DataSet

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (4)  (0)

Nesta Quick iremos mostrar como saber o State do DataSet



Olá galera, nesta Quick Tips irei mostrar como descobrir o State de um DataSet(ClientDataSet, por exemplo), o State seria o estado em que o DataSet se encontra, veja os tipos definidos :

 

 TDataSetState

·         dsInactive

·         dsBrowse

·         dsEdit

·         dsInsert

·         dsSetKey

·         dsCalcFields

·         dsFilter

·         dsNewValue

·         dsOldValue

·         dsCurValue

·         dsBlockRead

·         dsInternalCalc

·         dsOpening

 

Agora como descobrir o State que se encontra o DataSet ? Já ouviram falar ou já usaram a unit TypInfo, nela temos uma function GetEnumName(TypeInfo: PTypeInfo; Value: Integer): string;, onde esta retorna a string representada pelo Enumerado declarado, no caso TDataSetState.

 

Vamos a construção do Exemplo :

 

Adicione ;              

1 ClientDataset, CDSState ( Construí um XML, porém nada lhe impede de usar uma base própria )

1 DataSource, DSState

1 DBGrid

1 DBNavigator


 


Agora iremos dar uses em TypInfo, e logo em seguida criar uma function RetornaEstado

 

function TFrmPrincipal.RetornaEstado(DataSet: TDataSet): String;

begin

  Result := Format('Estado: %s', [GetEnumName(TypeInfo(TDataSetState),

                                  Ord(DataSet.State))]);

end;

 

Nossa function já esta pronta, vamos agora usar a mesma, geralmente usamos o evento AfterScrol (ClientDataSet), onde os State do DataSet é modificado quando o mesmo entra em Edição, Inserção, e por ai vai.

 

CDSState : AfterScroll

 

procedure TFrmPrincipal.CDSStateAfterScroll(DataSet: TDataSet);

begin

  Caption := RetornaEstado(CDSState);

end;

 

Fico por aqui e na próxima Quick Tips espero que tenham gostado e peço que mandem e-mail com sugestões para as Quick Tips.

 

Um abraço

 

Wesley Y

wyamazack@rwsolution.com.br

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?