sábado, 5 de abril de 2008

Configuração de um DataSet de Consulta - CRUD - For Dummies


Num cadastro padrão (CRUD), como configurar os DataSets de consulta:

1 - Adicione o DataSet ao DataModule

2 - Nomeie o DataSet. Exemplo: AdsClientesCons

3 - Associe o DataSet ao conector do banco de dados: Através da propriedade “Connection” (Caso esteja trabalhado com ADO), ou “SQLConnection” (caso trabalhe com DBExpress), ou “DataBase” (caso a tecnologia de acesso a dados seja DBE ou IBExpress).

4 - Defina o comando SQL para a consulta na propriedade específica para isso:
TADODataSet, TSQLDataSet – propriedade “CommandText”.
TQuery, TADOQuery, TIBQuery – propriedade “SQL”.
O Comando SQL padrão para um CRUD deve ser:
colunas com significado de identificação do registro para o usuário, nunca esquecendo de recuperar também o valor da coluna que for PK (Chave primária) da tabela em questão, filtrando pro uma chave eleita.
SELECT
[ColunasDescrição(Nome, Descrição, Título, Data), ColunasPK(ID, COD)]
From
[Nome da Tabela]
WHERE
[Coluna(Nome, Descrição, Título, Data)] [operadores(Like, In, “=”)] :[parâmetro]


O exemplo acima é uma idéia da forma, genérica da lógica que deve ser aplicada ao montar um SQL adequado a um módulo CRUD.

Dependendo do grau de performance você pode usar uma cláusula “ORDER BY” para já recuperar os dados na ordem desejada. Exemplo:


SELECT
Clientes.Nome, Clientes.CPF, Clientes.ClienteID
FROM
Clientes
WHERE
Clientes.Nome LIKE :Nome
ORDER BY
Clientes.Nome

5 - Configurar o tipo do parâmetro na propriedade “Params”, ou “Parameters” caso trabalhe com ADO.

6 - Adicionar os campos persistentes: No Fields Editor, Add all fields

7 -Configurar as propriedades “DisplayLabel”, “DisplayFormat” ou “EditMasck” caso deseje formatar o dado para exibí-lo. Exemplo:

AdsClientesConsDataCadastro.DiplayLabel := ‘Data de Cadastro’;
AdsClientesConsDataCadastro.DiplayFormat := ‘DD/MM/YYYY’;
AdsClientesConsValorComprado.DiplayLabel := ‘Valor Total em Compras:’;
AdsClientesConsValorComprado.DiplayFormat := #,##0.00;

OBS 1 : Esses DataSets configurados para consultas em módulos CRUDs são propícios a consultas que usam “JOINS” (uniões entre tabelas). Visto que eles não serão usados para updates no banco, e o que desejamos recuperar através deles é o valor da chave primária de um determinado registro para editá-lo.

OBS 2: No cado dos componentes da ADO altere a propriedade “LokType” para “ltBatchOptimistic”. Para habiltá-lo a trabalhar com Cache. “Use the LockType ltBatchOptimistic to open a dataset in batch update mode.”


Conceitos:

Chave primária: Atributo identificador unívoco da entidade cujo as regras sobre ele são regidas apenas pelo SGBD. As regras de negócio não devem ter interferência nenhuma sobre esse atributo.

Chave estrangeira: Coluna que se refere a chave primária de outra tabela definido assim o relacionamento entre as entidades de um SGBD. Exemplo:

Clientes.ClienteID = PK Primary Key (Chave Primária) em Clientes.
Pedidos.ClienteID = FK Foreign Key (Chave Estrangeira) em Pedidos.


Chave eleita: Atributo identificador unívoco da entidade cujo as regras que o regem são definidas no mundo real. Exmplo: CPF, Renavam, número do chassi. O grau de univocalidade de uma chave eleita varia de acordo com o contexto que delimita o sistema em questão. Exemplo: Hipoteticamente, para um sistema cujo escopo seja uma família o nome próprio pode ser adequado para chave eleita. Entretanto, se aumentarmos o escopo para a rua, ou bairro onde vive a família, provavelmente o nome não será suficiente a identificarmos univocamente uma pessoa.

OBS 3 - Entendendo a sintaxe de um comando "SELECT":
A palavra "SELECT" determina o que vc deseja buscar. Ou seja, que colunas serão retornadas.
A palavra "FROM" determina de que tabela, ou view serão retornadas as colunas definidas pelo "SELECT".
A palavra "WHERE" determina o filtro. Imagine que, de uma tabela vc deseja retornar um conjunto específico de dados, atendendo uma condição. Ou seja, como os dados que serão retornados, das colunas definidas no "SELECT", das tabelas definidas no "FROM", sobre que condição.


Nenhum comentário:

Postar um comentário

 
BlogBlogs.Com.Br