quinta-feira, 27 de junho de 2013

Delphi TADOQuery - Como atribuir NULO para um parâmetro?

Abaixo mostro como atribuir NULO para um parâmetro de um TADOQuery.
Utilizei isso para salvar um objeto no Banco de Dados - BD.
Quando o objeto não tinha propriedade com valor atribuído, salvei essa propriedade no BD como Nulo.
Segue abaixo:

FqryDados : TADOQuery;

  FqryDados.SQL.Add('INSERT INTO TabelaClientes ');
  FqryDados.SQL.Add('(CodigoCliente, RazaoSocial) ');
  FqryDados.SQL.Add('VALUES ');
  FqryDados.SQL.Add('(:CodigoCliente, :RazaoSocial)');

  FqryDados.Parameters.ParseSQL(FqryDados.SQL.Text,True);

  FqryDados.Parameters.ParamByName('CodigoCliente').Value      := objCliente.CodigoCliente;
  if objCliente.RazaoSocial <> '' then
    FqryDados.Parameters.ParamByName('RazaoSocial').Value    := objCliente.RazaoSocial
  else
  begin
    FqryDados.Parameters.ParamByName('RazaoSocial').Value := null;
    FqryDados.Parameters.ParamByName('RazaoSocial').DataType := ftString;
  end;

  FqryDados.ExecSQL;

Obs.: Foi necessário definir o tipo do parâmetro, mesmo que esse sendo nulo.

Espero ter ajudado pessoal, qualquer coisa é só entrar em contato!

2 comentários:

  1. Vlw sua dica foi perfeita.. procurei e so achei pessoal falando bobagens, DtString fez toda diferença..

    ResponderExcluir
    Respostas
    1. Que bom que foi útil para ti. Fiquei feliz em saber. Boa programação por aí! Abraços.

      Excluir