Classe TdtmKernelInterfaceDados

DescriçãoHierarquiaCamposMétodosProperties

Unit

Declaração

type TdtmKernelInterfaceDados = class(TDataModule)

Descrição

Classe base de interfaceamento de dados

Hierarquia

Visão Geral

Campos

Public Provider: TDataSetProvider;
Public cdsDataSet: TClientDataSet;
Public Query: TZQuery;
Private ptrMarca: TBookMark;
Private strSQLOriginal: string;
Private FEstadoEntidade: TEstadoEntidade;
Private bolExclusaoEfetiva: Boolean;
Private strCampoRegistroExcluido: string;
Private bitTipoBoolean: TTipoBoolean;

Métodos

Public procedure DataModuleCreate(Sender: TObject);
Private function ObterVazio: boolean;
Private function ObterParametroDeNome(const strNome: string): TParam;
Private function ObterFim : boolean;
Private function ObterInicio : boolean;
Private function ObterAberto : boolean;
Private function ObterNumeroRegistros : Integer;
Private function ObterRegistroAtual : Integer;
Private function ObterCampoDeNome(const strNome : string) : TField;
Private function ObterCampoString(const strNomeCampo : string) : string;
Private procedure DefinirCampoString(const strNomeCampo, strValor : string);
Private function ObterCampoInteiro(const strNomeCampo : string) : integer;
Private procedure DefinirCampoInteiro(const strNomeCampo : string; const intValor : integer);
Private function ObterCampoFloat(const strNomeCampo : string) : extended;
Private procedure DefinirCampoFloat(const strNomeCampo : string; const fltValor : extended);
Private function ObterCampoCurrency(const strNomeCampo : string) : Currency;
Private procedure DefinirCampoCurrency(const strNomeCampo : string; const fltValor : Currency);
Private function ObterCampoDataHora(const strNomeCampo : string) : TDateTime;
Private procedure DefinirCampoDataHora(const strNomeCampo : string; const datValor : TDateTime);
Private function ObterCampoVariant(const strNomeCampo : string) : variant;
Private procedure DefinirCampoVariant(const strNomeCampo : string; const varValor : Variant);
Private function ObterCampoBoolean(const strNomeCampo : string) : Boolean;
Private procedure DefinirCampoBoolean(const strNomeCampo : string; const bolValor : boolean);
Private function ObterCampo(const intIndice: integer) : TField;
Private function ObterNumeroCampos : integer;
Private function ObterCampoExiste(const strNomeCampo : string) : Boolean;
Private function ObterEmAlteracao : boolean;
Private function ObterDataSet: TClientDataSet;
Private procedure DefinirSQL(const strNovoSQL : string);
Private function ObterSQL : string;
Protected procedure FillOriginFields(const objDataSet : TClientDataSet);
Protected procedure AntesDeAbrir; virtual;
Protected procedure AposAbrir; virtual;
Protected procedure AntesDeAtualizar; virtual;
Protected procedure AposAtualizar; virtual;
Protected procedure AntesDeFechar; virtual;
Protected procedure AposFechar; virtual;
Protected procedure AntesDeNovo; virtual;
Protected procedure AposNovo; virtual;
Protected procedure AntesDeEditar; virtual;
Protected procedure AposEditar; virtual;
Protected procedure AntesDeSalvar(var bolContinuar : Boolean); virtual;
Protected procedure AposSalvar; virtual;
Protected procedure AntesDeExcluir(var bolContinuar : boolean); virtual;
Protected procedure AposExcluir; virtual;
Protected procedure AposCancelar; virtual;
Protected procedure AntesDeCancelar; virtual;
Protected procedure AntesDeAplicarAlteracoes; virtual;
Protected procedure AposAplicarAlteracoes; virtual;
Protected procedure AntesDeCancelarAlteracoes; virtual;
Protected procedure AposCancelarAlteracoes; virtual;
Protected procedure RegistroPosicionado; virtual;
Public destructor Destroy; override;
Public function NovoResultSet(const strSQL : string) : TZReadOnlyQuery;
Public function NovoAcessoDados(const strSQL: string = '';const bolExecutar : boolean = false): TdtmKernelInterfaceDados;
Public function NovaStoredProc(const strProcedureNome: string; const aryParametros : array of variant; const bolExecutar : boolean = false): TdtmKernelInterfaceDados;
Public function ExecutarSQL(const strSQL: string; var varValorRetorno: variant): boolean;
Public function NovoWhere(const strSQL,strCriterio: string): string;
Public function NovoOrderBy(const strSQL, strCriterio : string) : string;
Public function NovoLimite(const strSQL : string; const intNumeroRegistros : integer) : string;
Public procedure Marcar;
Public procedure IrParaMarca(ptrMarcador : Pointer = nil);
Public procedure DesativarControles;
Public procedure AtivarControles;
Public procedure IniciarVarredura;
Public procedure FinalizarVarredura;
Public function AplicarAlteracoes : boolean;
Public procedure CancelarAlteracoes;
Public procedure Abrir;
Public procedure Fechar;
Public procedure Atualizar;
Public procedure Novo(const bolIncluirFinal : boolean = false);
Public procedure Editar;
Public function Salvar : boolean;
Public procedure Proximo;
Public procedure Anterior;
Public procedure Ultimo;
Public procedure Primeiro;
Public procedure Cancelar;
Public procedure Excluir;
Public procedure Esvaziar;

Properties

Protected property NomeCampoRegistroExcluido : string read strCampoRegistroExcluido write strCampoRegistroExcluido;
Protected property ExclusaoEfetiva : boolean read bolExclusaoEfetiva write bolExclusaoEfetiva;
Public property DataSet : TClientDataSet read ObterDataSet;
Public property SQL : string read ObterSQL write DefinirSQL;
Public property CampoDeNome [const strNome : string]: TField read ObterCampoDeNome;
Public property CampoString[const Nome : String]: string read ObterCampoString write DefinirCampoString;
Public property CampoInteiro[const Nome : String]: integer read ObterCampoInteiro write DefinirCampoInteiro;
Public property CampoFloat[const Nome : String]: extended read ObterCampoFloat write DefinirCampoFloat;
Public property CampoCurrency[const Nome : String]: currency read ObterCampoCurrency write DefinirCampoCurrency;
Public property CampoDataHora[const Nome : String]: TDateTime read ObterCampoDataHora write DefinirCampoDataHora;
Public property CampoVariant[const Nome : String]: variant read ObterCampoVariant write DefinirCampoVariant;
Public property CampoBoolean[const Nome : String]: boolean read ObterCampoBoolean write DefinirCampoBoolean;
Public property CampoExiste[const Nome : String]: Boolean read ObterCampoExiste;
Public property Campo[const intIndice : integer]: TField read ObterCampo;
Public property NumeroCampos : integer read ObterNumeroCampos;
Public property ParametroDeNome [const strNome : string]: TParam read ObterParametroDeNome;
Public property Vazio : boolean read ObterVazio;
Public property Fim : boolean read ObterFim;
Public property Inicio : boolean read ObterInicio;
Public property NumeroRegistros : Integer read ObterNumeroRegistros;
Public property RegistroAtual : Integer read ObterRegistroAtual;
Public property Aberto : boolean read ObterAberto;
Public property EmAlteracao : boolean read ObterEmAlteracao;
Public property SQLOriginal : string read strSQLOriginal;
Public property TipoBoolean : TTipoBoolean read bitTipoBoolean write bitTipoBoolean;

Descrição

Campos

Public Provider: TDataSetProvider;

Provider necessário para manipulação em cache

Public cdsDataSet: TClientDataSet;

DataSet da interface, com ele será realizado o acesso e cacheamento de dados

Public Query: TZQuery;

Query de consulta de banco de dados, ela será responsável pela ligação entre o DataSet e a conexão física de dados

Private ptrMarca: TBookMark;

Marca para Movimentacao no DataSet

Private strSQLOriginal: string;

Armazena o SQL original do DataSet Mestre

Private FEstadoEntidade: TEstadoEntidade;

Define o estado atual da entidade

Private bolExclusaoEfetiva: Boolean;

Se True o registro será excluído efetivamente do banco de dados. Se Falso e a entidade conter um campo chamado descrito na constante que define o nome do campo que controla os registros excluídos C_NOME_CAMPO_REGISTRO_EXCLUIDO este campo será definido para Sim. Campos marcados como excluídos não aparecerão nas próximas consultas.

Private strCampoRegistroExcluido: string;

Define o nome do campo a ser utilizado para definir um registro como excluído

Private bitTipoBoolean: TTipoBoolean;

Define o tipo de controlador de bits booleanos no banco de dados pode ser char/inteiro ou nativo default char (Firebird)

Métodos

Public procedure DataModuleCreate(Sender: TObject);

Inicialização da entidade

Private function ObterVazio: boolean;

Retorna Verdadeiro se o dataset estiver vazio

Private function ObterParametroDeNome(const strNome: string): TParam;

Retorna um parametro pelo nome

Private function ObterFim : boolean;

Verifica se foi alcançado o fim do DataSet

Private function ObterInicio : boolean;

Verifica se foi alcançado o inicio do DataSet

Private function ObterAberto : boolean;

Verifica se o DataSet esta Aberto

Private function ObterNumeroRegistros : Integer;

Obter o Numero de Registros no DataSet

Private function ObterRegistroAtual : Integer;

Obter o Registro Atual

Private function ObterCampoDeNome(const strNome : string) : TField;

Obtém o Campo com o Nome Passado como parametro

Private function ObterCampoString(const strNomeCampo : string) : string;

Retorna o campo como string

Private procedure DefinirCampoString(const strNomeCampo, strValor : string);

Grava o valor no campo como string

Private function ObterCampoInteiro(const strNomeCampo : string) : integer;

Retorna o campo como inteiro

Private procedure DefinirCampoInteiro(const strNomeCampo : string; const intValor : integer);

Grava o valor no campo como inteiro

Private function ObterCampoFloat(const strNomeCampo : string) : extended;

Retorna o campo como float

Private procedure DefinirCampoFloat(const strNomeCampo : string; const fltValor : extended);

Grava o valor no campo como float

Private function ObterCampoCurrency(const strNomeCampo : string) : Currency;

Retorna o campo como Currency

Private procedure DefinirCampoCurrency(const strNomeCampo : string; const fltValor : Currency);

Grava o valor no campo como Currency

Private function ObterCampoDataHora(const strNomeCampo : string) : TDateTime;

Retorna o campo como datetime

Private procedure DefinirCampoDataHora(const strNomeCampo : string; const datValor : TDateTime);

Grava o valor no campo como datetime

Private function ObterCampoVariant(const strNomeCampo : string) : variant;

Retorna o campo como variant

Private procedure DefinirCampoVariant(const strNomeCampo : string; const varValor : Variant);

Grava o valor no campo como variant

Private function ObterCampoBoolean(const strNomeCampo : string) : Boolean;

Retorna o campo como boolean

Private procedure DefinirCampoBoolean(const strNomeCampo : string; const bolValor : boolean);

Grava o valor no campo como boolean

Private function ObterCampo(const intIndice: integer) : TField;

Obter o campo do dataset referente ao índice

Private function ObterNumeroCampos : integer;

Obter o Número de campos do dataset

Private function ObterCampoExiste(const strNomeCampo : string) : Boolean;

Obter verdadeiro se o campo existir

Private function ObterEmAlteracao : boolean;

Verifica se o Status do DataSet está em Altecação ou Inserção

Private function ObterDataSet: TClientDataSet;

Retorna o dataset da entidade

Private procedure DefinirSQL(const strNovoSQL : string);

Define o SQL da entidade

Private function ObterSQL : string;

Retorna o SQL atual da entidade

Protected procedure FillOriginFields(const objDataSet : TClientDataSet);

Obtém a origem dos campos no sql e define nos campos do dataset

Protected procedure AntesDeAbrir; virtual;

Evento Disparado Antes de Abrir o DataSet

Protected procedure AposAbrir; virtual;

Evento Disparado Apos Abrir o DataSet

Protected procedure AntesDeAtualizar; virtual;

Evento Disparado Antes de Atualizar o DataSet

Protected procedure AposAtualizar; virtual;

Evento Disparado Apos Atualizar o DataSet

Protected procedure AntesDeFechar; virtual;

Evento Disparado Antes de Fechar o DataSet

Protected procedure AposFechar; virtual;

Evento Disparado Apos Fechar o DataSet

Protected procedure AntesDeNovo; virtual;

Evento disparado Antes da insercao de um novo registro

Protected procedure AposNovo; virtual;

Evento disparado apos a insercao de um novo registro

Protected procedure AntesDeEditar; virtual;

Evento disparado Antes da edicao de um registro

Protected procedure AposEditar; virtual;

Evento disparado apos a edicao de um registro

Protected procedure AntesDeSalvar(var bolContinuar : Boolean); virtual;

Evento disparado Antes de salvar um registro

Protected procedure AposSalvar; virtual;

Evento disparado apos salvar um registro

Protected procedure AntesDeExcluir(var bolContinuar : boolean); virtual;

Evento disparado Antes de excluir um registro

Protected procedure AposExcluir; virtual;

Evento disparado apos a exclusão de um registro

Protected procedure AposCancelar; virtual;

Evendo disparado apos o Calcelamento de um registro

Protected procedure AntesDeCancelar; virtual;

Evendo disparado antes do Calcelamento de um registro

Protected procedure AntesDeAplicarAlteracoes; virtual;

Evento Disparado Antes de Aplicar as Alteracoes no Banco de Dados

Protected procedure AposAplicarAlteracoes; virtual;

Evento Disparado Apos Aplicar as Alteracoes no Banco de Dados

Protected procedure AntesDeCancelarAlteracoes; virtual;

Evento Disparado Antes de Cancelar as Alteracoes no Banco de Dados

Protected procedure AposCancelarAlteracoes; virtual;

Evento Disparado Apos Cancelar as Alteracoes no Banco de Dados

Protected procedure RegistroPosicionado; virtual;

Evento Disparado ao Posicionar um registro no dataset

Public destructor Destroy; override;

Destrutor da Interface de dados

Public function NovoResultSet(const strSQL : string) : TZReadOnlyQuery;

Cria um DataSet somente leitura e abre com o comando sql passado como parametro

Public function NovoAcessoDados(const strSQL: string = '';const bolExecutar : boolean = false): TdtmKernelInterfaceDados;

Cria um novo acesso a Dados Temporário

Public function NovaStoredProc(const strProcedureNome: string; const aryParametros : array of variant; const bolExecutar : boolean = false): TdtmKernelInterfaceDados;

Cria um novo acesso a Dados Temporário do tipo stored proc

Public function ExecutarSQL(const strSQL: string; var varValorRetorno: variant): boolean;

Tenta executar um SQL e retorna verdadeiro caso consiga, retornando tambem o valor do campo de retorno (primeiro campo)

Public function NovoWhere(const strSQL,strCriterio: string): string;

Monta uma nova clausula where baseado na clausula original e nos critérios passados

Public function NovoOrderBy(const strSQL, strCriterio : string) : string;

Monta uma nova clausula order by baseado na clausula original e nos criterios passados

Public function NovoLimite(const strSQL : string; const intNumeroRegistros : integer) : string;

Adiciona um limite à query

Public procedure Marcar;

Coloca uma Marcacao no Registro Atual

Public procedure IrParaMarca(ptrMarcador : Pointer = nil);

Move o Cursor para uma marca no DataSet

Public procedure DesativarControles;

Desativa os Controles do DataSet

Public procedure AtivarControles;

Habilitar Controles do DataSet

Public procedure IniciarVarredura;

Inicia a Varredura da Entidade, Para percorrer todos os campos

Public procedure FinalizarVarredura;

Finaliza a Varredura

Public function AplicarAlteracoes : boolean;

Aplica Alterações no Banco de Dados

Public procedure CancelarAlteracoes;

Cancela as Alterações efetuadas

Public procedure Abrir;

Abre o DataSet

Public procedure Fechar;

Fecha o DataSet

Public procedure Atualizar;

Atualiza os Registros do DataSet

Public procedure Novo(const bolIncluirFinal : boolean = false);

Insere um novo registro passando True como parametro o registro é inserido no final do dataset com o método append caso contrário será inserido com o Insert na posicao atual <Valor padrão = False>.

Parâmetros
bolIncluirFinal
parametro booleano Opcional que indica se o novo registro deve ser inserido no final do dataset
Public procedure Editar;

Abre o registro atual para edicao

Public function Salvar : boolean;

Salva as alteracoes no registro atual

Public procedure Proximo;

Avanca para o próximo registro

Public procedure Anterior;

Volta para o registro anterior

Public procedure Ultimo;

Move o cursor para o úlrimo registro do dataset

Public procedure Primeiro;

Move o cursor para o primeiro registro do dataset

Public procedure Cancelar;

Cancela a Edição/Insersão atual

Public procedure Excluir;

Exclui o registro atual

Public procedure Esvaziar;

Exclui o todos os registros do dataset sem solicitar confirmação

Properties

Protected property NomeCampoRegistroExcluido : string read strCampoRegistroExcluido write strCampoRegistroExcluido;

Propriedade para ler e definir o nome do campo de registro excluído

Protected property ExclusaoEfetiva : boolean read bolExclusaoEfetiva write bolExclusaoEfetiva;

Propriedade que define se o registro vai ser excluído efetivamente

Public property DataSet : TClientDataSet read ObterDataSet;

Propriedade que Le no DataSet da Entidade

Public property SQL : string read ObterSQL write DefinirSQL;

SQL da entidade

Public property CampoDeNome [const strNome : string]: TField read ObterCampoDeNome;

Acesso ao Campo com o Nome passado como parametro

Public property CampoString[const Nome : String]: string read ObterCampoString write DefinirCampoString;

Obtem e Grava o Valor do campo como string

Public property CampoInteiro[const Nome : String]: integer read ObterCampoInteiro write DefinirCampoInteiro;

Obtem e Grava o Valor do campo como inteiro

Public property CampoFloat[const Nome : String]: extended read ObterCampoFloat write DefinirCampoFloat;

Obtem e Grava o Valor do campo como float

Public property CampoCurrency[const Nome : String]: currency read ObterCampoCurrency write DefinirCampoCurrency;

Obtem e Grava o Valor do campo como currency

Public property CampoDataHora[const Nome : String]: TDateTime read ObterCampoDataHora write DefinirCampoDataHora;

Obtem e Grava o Valor do campo como datetime

Public property CampoVariant[const Nome : String]: variant read ObterCampoVariant write DefinirCampoVariant;

Obtem e Grava o Valor do campo como variant

Public property CampoBoolean[const Nome : String]: boolean read ObterCampoBoolean write DefinirCampoBoolean;

Obtem e Grava o Valor do campo como boolean

Public property CampoExiste[const Nome : String]: Boolean read ObterCampoExiste;

Obter Verdadeiro Caso o campo Passado como parametro exista

Public property Campo[const intIndice : integer]: TField read ObterCampo;

Obter o campo referenta ao índice

Public property NumeroCampos : integer read ObterNumeroCampos;

Obter o numero de campos do dataset

Public property ParametroDeNome [const strNome : string]: TParam read ObterParametroDeNome;

Acesso ao Parametro de Nome passado como parametro

Public property Vazio : boolean read ObterVazio;

Retorna Verdadeiro caso o dataset principal da entidade esteja vazio

Public property Fim : boolean read ObterFim;

Obter Se o DataSet está posicionado no final

Public property Inicio : boolean read ObterInicio;

Obter se o DataSet está posicionado no Inicio

Public property NumeroRegistros : Integer read ObterNumeroRegistros;

Obter o Numero de Registros no DataSet

Public property RegistroAtual : Integer read ObterRegistroAtual;

Numero do Registro Atual

Public property Aberto : boolean read ObterAberto;

Obter se o DataSet esta Aberto

Public property EmAlteracao : boolean read ObterEmAlteracao;

Retorna se o DataSet está em Alteração

Public property SQLOriginal : string read strSQLOriginal;

Propriedade que le o SQL original do DataSet Mestre

Public property TipoBoolean : TTipoBoolean read bitTipoBoolean write bitTipoBoolean;

Define o tipo de manipulação de campos booleanos