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!