Menu:

Tecnologias

PostgreSQL

ACBr

Valid XHTML 1.0 Strict

Dúvidas comuns

  1. Como utilizo o Code Insight?
  2. Code Insight é um conjunto de funcionalidades do ambiente de desenvolvimento (IDE) que ajudam o programador a escrever código Delphi. As funções mais usadas são code completion (Ctrl-Espaço), code parameters (Ctrl-Shift-Espaço), code templates (Ctrl-J) e class completion (Ctrl-Shift-C). Este artigo (em inglês) possui mais detalhes.

  3. Como funciona a busca por template?
  4. No exemplo abaixo, o objeto da classe TEstado possui várias propriedades, dentre elas Sigla e Nome. Para buscar uma lista de objetos que possuam, digamos, a sigla SP, o objeto foi primeiro limpo, depois sua Sigla preenchida, e finalmente o método QueryByTemplate da classe TRNXQuery é chamado, passando como parâmetro a lista que vai armazenar o resultado e se deve ser usado AND (true) ou OR (false). Como está sendo usada apenas uma propriedade como template (modelo), não há diferença em se usar true ou false; se duas ou mais propriedades fossem diferente de null, haveria.

    lstEstados: TLista_Estado;
    oEstado: TEstado;
    total: Integer;
    oEstado.Clear;
    oEstado.Sigla := 'SP';
    total := TRNXQuery.QueryByTemplate(lstEstados,oEstado,true);

  5. Como utilizo as listas?
  6. As listas geradas pelo mapeador são derivadas da classe TObjectList. Assim, pode-se criar um laço for usando a propriedade Count da lista, conforme o exemplo abaixo:

    with ComboBox1 do begin
    Items.Clear;
    for i:=0 to lstEstados.Count-1 do
    Items.Add(lstEstados[i].Nome);
    end;

  7. Como se descobre se uma propriedade é nula? Os campos estão com zero ou com uma string vazia.
  8. Usando os métodos IsNull_... que retornam um boolean. Cada propriedade de uma classe persistente se refere a um campo de uma tabela de um banco de dados, e esse campo pode conter o valor NULL. Assim, para poder repassar ao programador esta informação, para cada propriedade é criado um método IsNull_... seguido do seu nome. Por exemplo, na classe TEstado citada anteriormente, existe um método IsNull_Nome e outro IsNull_Sigla, dentre outros.

  9. Estou tentando limpar uma propriedade String, mas no banco está sendo gravado uma string vazia e não um NULL. Tenho uma aplicação legada que usa este mesmo banco de dados, e preciso poder gravar um NULL no banco. Como proceder?
  10. Assim como o método IsNull_..., para cada propriedade é criado um método SetNull_.... Por exemplo, na classe TEstado citada anteriormente, existe um método SetNull_Nome e outro SetNull_Sigla, dentre outros. Este método coloca um NULL na estrutura interna do Framework, além de zerar a respectiva propriedade. O método Clear de um objeto persistente chama todos os SetNull_... do objeto.

  11. Ao chamar o método Save do objeto, está retornando o código -3 e o objeto não está sendo salvo. O que significa?
  12. O código -3 do método Save de um objeto persistente do Framework significa que você não preencheu todas as propriedades necessárias. Isso ocorre quando um ou mais campos da tabela de destino são NOT NULL: verifique os parâmetros do método LocateByKey para ver quais são as chaves primárias da tabela, o código gerado ou diretamente no esquema do banco de dados.