Please enable JavaScript.
Coggle requires JavaScript to display documents.
Técnicas de padrão de consulta (Uso do TspFuncoesSQL (FSQL) (Solução: O…
Técnicas de padrão de consulta
Uso do TspFuncoesSQL (FSQL)
Solução:
O uso do FSQL é encorajado, devido a tratativa para cada SGDB.
Problema:
Incompatibilidade entre metodos/funções em cada SGDB, gerando bugs no sistema.
Situação:
Funções/Metodos especificos de cada SGDB.
Cuidado com o uso do LIMPE do TspSelectSQL
Solução:
Sempre que for necessária utilizar o LIMPE, verificar a necessidade de reconfiguração das property.
Problema:
O Limpe reinicia todas as configurações feitas no TspSelectSQL como o spUsaAnsi92Oracle.
Situação:
Utilização do oSelect.Limpe.
Padrão de uso do TspSelectSQL
Situação:
SQL chumbados em strings diretamente no código.
Problema:
Não padronização do SQL, baixo reuso e portabilidade fraca.
Solução:
Geração do SQL para cada tipo de SGDB.
spUsaAnsi92Oracle = True
Situação:
Por padrão esta property está desligada.
Problema:
O gerador não usa o padrão ANSI nas junções para banco oracle.
Solução:
Sempre ligar esta property, utilizar sempre o padrão ANSI.
Uso de BIND nas condições
Situação:
Utilizar a passagem de parametros em condições que seus valores são mutáveis.
Problema:
Baixa performance nas consultas, de-uso do cache.
Solução:
Sempre que possível, utilizar o BIND + passagem de parametros no TspSelectSQL.
Uso correto do DataType na passagem de parametros
Situação:
Datatype sem especificação ou utilização incorreta.
Problema:
Erros nas consultas, queda de performance devido ao CAST forçado.
Solução:
Sempre ao passar parametros para a consulta, verificar na base o DataType deste campo.
Uso de CAST (FSQL.Expressao)
Situação:
Cast de dados incorretos.
Problema:
Incompatibilidade entre tipos de dados em cada SGDB, gerando bugs no sistema.
Solução:
O uso do FSQL é encorajado, devido a tratativa para cada SGDB.
Uso de Campos Calculados com DataType
Situação:
Campos calculados sem o préfixo CC_ e sem o tipo de dado.
Problema:
Incompatibilidade e bugs no sistema.
Solução:
O uso do CC_ e FSQL.Expressao é encorajado, devido a tratativa do tipo de dado e framework.
Uso de DECODE (FSQL.Decode)
Situação:
Decodes criados em campo string, sem o uso do FSQL.
Problema:
Incompatibilidade entre cada SGDB, gerando bugs no sistema.
Solução:
O uso do FSQL.Decode é encorajado, devido a tratativa para cada SGDB e organização do codigo.
Uso de IN (AddCondicaoIn)
Situação:
Uso de condições IN chumbadas direto no SQL.
Problema:
Código sujo, erros nas consultas, queda de performance e não utilização de cache de dados.
Solução:
O uso do AddCondicaoIn é encorajado, devido a tratativa para cada SGDB, uso de BIND e organização do codigo.
Uso de variveis para clean code
Situação:
Funções de banco de dados inseridas dentro de AddColunas e etc...
Problema:
Gera código sujo de dificil interpretação.
Solução:
O uso das variveis é encorajado, devido a limpeza e organização do código como todo.
Uso de spSelectParam
Situação:
Passagem e trativas dos parametros enviados na consultas.
Problema:
Não tratar corretamente os parametros passados, pode gerar bugs e sobrecargas no SGBD e aplicação.
Solução:
Tratar o recebimento e uso destes parametros é de suma importância para a saúde da aplicação.
Uso de lançamento de exceção em passagem de parametros
Situação:
Não tratar ao receber um parametro vazio ou incorreto na consulta.
Problema:
Ferir a regra de negocio, trazer muitas dados na tabela, sobrecargas e casts desnecessários.
Solução:
Antes de construir a consulta, tratar estes parametros utilizado Exception.
Uso do TestarSeVariantValido
Situação:
Receber um parametro na consulta sem validar.
Problema:
Não validar os parametros, pode gerar bugs e exceções indesejadas.
Solução:
O uso do TestarSeVariantValido é encorajado, devido a validação e tratamento corretos dos parametros.
Cuidado com tamanho de campos texto
Situação:
Campos textos sem especificação de seu tamanho.
Problema:
Caso não seja tratado, o engine de SGBD podem trazer o DataType incorreto, gerando bugs no sistema.
Solução:
Verificar o DataType correto e se necessário utilizar o CAST.
Uso do GetTabelaDB
Situação:
Nome de tabelas chumbadas direto no código sem uso do esquema.
Problema:
Não especificação do SCHEMA gerando bugs em alguns SGDB.
Solução:
Ao usar o metodo AddTabela, utilizar o GetTabelaDB SEM o aliás.
Tabelas do banco em propriedades nos arquivos Dbase
Situação:
Nome de tabelas chumbadas direto no código.
Problema:
Falta de padronização, problemas ao alterar um nome de tabela.
Solução:
O uso das properties para tabelas é encorajado, devido organização do código como todo.
Uso do spSelectDLL
Situação:
Uso de spSelectDLL gera problemas em algumas consultas.
Problema:
Erros e incosistências em consultas.
Solução:
Aos casos necessários, desligar o uso da DLL atraves da propriedade spTipoMontagemSQL.
Uso de SubSelect
Situação:
SubSelect em string ou no mesmo TspSelectSQL.
Problema:
Codigo sujo, dificil entendimento e suscetivel a erros.
Solução:
Separa os subselects em metodos e/ou TspSelectSQL separados, dividindo sua responsabilidade.
Remoção de (*)
Situação:
Uso de * nas consultas.
Problema:
Sobrecarga na aplicação e no SGBD, colunas com DataType incorretos e outros.
Solução:
Remover qualquer * dentro do sistema.
Uso de Alias
Situação:
Colunas e tabelas sem Alias.
Problema:
Erros em alguns SGBD, falta de padronização.
Solução:
O uso das Alias é encorajado, devido organização do código como todo.
Uso de QuotedStr
Situação:
Campos com muitas aspas.
Problema:
Falta de padronização e ilegibilidade do código.
Solução:
O uso das QuotedStr é encorajado, devido e limpeza e organização do código como todo.
Iniciativa da equipe do
Ministério Público
-