Classe TUiDmxScroller_sql

Unit

Declaração

type TUiDmxScroller_sql = class(TDmxScroller_sql_Atributos)

Descrição

A classe TUiDmxScroller_sql implementa o acesso ao banco de dados usando o atributo CustomBufDataset

Hierarquia

Visão Geral

Campos

Protected _DataSource: TDataSource;

Métodos

Protected procedure SetDataBase;
Public constructor Create(aOwner:TComponent); Override;
Public function GetkeysPrimaryComposite(I : Integer):AnsiString;
Public function GetKeysPrimary:AnsiString;
Public Function CreateTable: Boolean;
Public Function AlterTable: Boolean; Virtual;
Public Function SetSqlCustomBufDataset:Boolean; Virtual;
Public Procedure CreateCustomBufDataset_FieldDefs; override;
Public function GetTemplate(aNext: PSItem) : PSItem; overload; override;
Public function GetBuffers:Boolean; Override;
Public function PutBuffers:Boolean; override;
Public procedure SetActiveLCL(aActive: Boolean); override;
Public Procedure DoOnNewRecord; Override;
Public Function DoAddRec:Boolean; override;

Propriedades

Published property DataSource : TDataSource Read _DataSource Write _DataSource;

Descrição

Campos

Protected _DataSource: TDataSource;
 

Métodos

Protected procedure SetDataBase;
 
Public constructor Create(aOwner:TComponent); Override;

Constrói o componente

Public function GetkeysPrimaryComposite(I : Integer):AnsiString;

O método GetkeysPrimaryComposite retorna a lista de campos pertencentes a chave composta primária.

Public function GetKeysPrimary:AnsiString;

A função GetKeysPrimary retorna a chave primária composta ou não na tabela.

  • Como TSQLQuery trata os campos de chave primária

    • Ao atualizar registros, TSQLQuery precisa saber quais campos compõem a chave primária que pode ser usada para atualizar o registro e quais campos devem ser atualizados: com base nessas informações, ele constrói um comando SQL UPDATE, INSERT ou DELETE.

    • A construção da instrução SQL é controlada pela propriedade UsePrimaryKeyAsKey e pelas propriedades ProviderFlags .

    • A propriedade Providerflags é um conjunto de 3 sinalizadores:

      • pfInkey : O campo faz parte da chave primária

      • pfInWhere : O campo deve ser utilizado na cláusula WHERE das instruções SQL.

      • pfInUpdate : Atualizações ou inserções devem incluir este campo. Por padrão, ProviderFlags consiste apenas em pfInUpdate .

      • NOTA*

        • Se sua tabela tiver uma chave primária (conforme descrito acima), você só precisará definir a propriedade **UsePrimaryKeyAsKey

        como True e tudo será feito para você. Isso definirá o sinalizador pfInKey para os campos de chave primária.

  • REFERÊNCIA

Public Function CreateTable: Boolean;

A função CreateTable cria a tabela se a mesma não existir

Public Function AlterTable: Boolean; Virtual;

O método AlterTable cria a tabela ou consulta TableName no banco de dados caso a propriedade TableName não existe no banco de dados e TableName seja diferente de vazio.

  • O método TUiDmxScroller_sql.AlterTable precisa reconhecer a sintaxe do banco de dados selecionado.

  • NOTAS

    • As tabelas só são criadas automaticamente caso a constante AlterTableQL = true.

    • Ao adiciona uma coluna que já exista no banco de dados o sistema trata a exceção e tenta adicionar a próxima coluna. Motivo: Poder expandir a tabela dinâmicamente.

    • O comportamento do Banco de dados SqLite ao criar uma tabela é diferente do postgres.

      • O sqLite não permite criar tabela vazia.

Public Function SetSqlCustomBufDataset:Boolean; Virtual;

O método SetSqlCustomBufDataset inicializa as propriedades SQLs de CustomBufDataset

  • PROPRIEDADES OBRIGATÓRIAS SEREM INICIALIZADAS:

    • CustomBufDataset.SQL;

  • PROPRIEDADES OPCIONAIS SEREM INICIALIZADAS:

    • CustomBufDataset.InsertSQL;

    • CustomBufDataset.UpdataSQL;

    • CustomBufDataset.DeleteSQL;

    • CustomBufDataset.RefreshSQL;

  • GERAÇÃO AUTOMÁTICA DE INSTRUÇÃO SQL DE ATUALIZAÇÃO

    • O SqlDb (mais em particular, TSQLQuery ) pode gerar automaticamente instruções de atualização para os dados que busca. Para isso, ele irá varrer a instrução propriedade CustomBufDataset.SQL e determinar a tabela principal na consulta: esta é a primeira tabela encontrada na parte FROM da instrução SELECT .

      • Exemplo:

        
        SELECT * FROM ALUNOS

        • Alunos será a tabela selecionada para uso dos campos de TField.

    • Para operações INSERT e UPDATE, a propriedade instrução SQL gerada inserirá e atualizará todos os campos que possuim pfInUpdate em sua propriedade TField.ProviderFlags.

      • Os campos somente leitura não serão adicionados à instrução SQL.

      • Os campos que são NULL não serão adicionados a uma consulta de inserção, o que significa que o servidor de banco de dados inserirá o que estiver na cláusula DEFAULT da definição de campo correspondente.

    • O campos de chave primária

      • Ao atualizar registros, TSQLQuery precisa saber quais campos compõem a chave primária que pode ser usada para atualizar o registro e quais campos devem ser atualizados: com base nessas informações, ele constrói os comandos SQL UPDATE, INSERT ou DELETE.

      • A construção da instrução SQL é controlada pela propriedade UsePrimaryKeyAsKey e pelas propriedades ProviderFlags.

      • A propriedade TField.ProviderFlag é um conjunto de 6 sinalizadores:

        • pfInUpdate : As alterações no campo devem ser propagadas para o banco de dados..

        • pfInWhere : O campo deve ser usado na cláusula WHERE de uma instrução de atualização no caso de upWhereChanged.

        • pfInKey : Campo é um campo chave e usado na cláusula WHERE de uma instrução de atualização.

        • pfHidden : O valor deste campo deve ser atualizado após a inserção.

        • pfRefreshOnInsert : O valor deste campo deve ser atualizado após a inserção.

        • pfRefreshOnUpdate : O valor deste campo deve ser atualizado após a atualização.

  • REFERẼNCIAS

Public Procedure CreateCustomBufDataset_FieldDefs; override;

O método CreateCustomBufDataset_FieldDefs é usado para criar os campos de CustomBufDataset

Public function GetTemplate(aNext: PSItem) : PSItem; overload; override;

O método GetTemplate retorna uma lista de PSItem (Lista de strings) com o modelo usado para criar a tela.

  • NOTA

    • O Evento onGetTemplate só é iniciado em tempo de execução, por isso o formulário não pode ser criado em tempo de desenho do aplicativo.

    • Caso o evento onGetTemplate seja nil, então não posso ativar a tela.

    • Esse método pode ser anulado, caso se queira ignorar o evento onGetTemplate e definir o Template em uma método pai herdado desta classe.

Public function GetBuffers:Boolean; Override;

O método GetBuffers ler o buffer dos campos dos arquivos associados a classe TUiDmxScroller_sql para o buffer dos campos da classe TUiDmxScroller

Public function PutBuffers:Boolean; override;

O método PutBuffers grava o buffer dos campos da classe TUiDmxScroller_sql para o buffer dos campos dos arquivos associados a classe TUiDmxScroller_sql

Public procedure SetActiveLCL(aActive: Boolean); override;
 
Public Procedure DoOnNewRecord; Override;

O método DoOnNewRecord seleciona o registro para adição de um novo registro

  • NOTA

    • Está gerando exceção.?????

Public Function DoAddRec:Boolean; override;

O método DoAddRec adicione o registro editado no banco de dados. = OBSERVAÇÂO

  • O método DoAddRec só funciona se o registro atender as seguintes condições:

Propriedades

Published property DataSource : TDataSource Read _DataSource Write _DataSource;

A propriedade DataSource permite que controles da LCL (Lazarus Componenents Library) possam usar os dados do componenente TDmxScroller.

  • NOTA

    • Essa integração permite que TDmxScroller utilize todos os componentes de banco de dados do Free Pascal.


Gerado por PasDoc 0.16.0.