VarIsClear e VarIsNull
Existe algum comando que eu troque por exemplo:
If(DeltaDs.State=ukInsert) And (Not VarIsNull(DeltaDS.FieldByName(´CAMPO´).NewValue)) Then Begin
Digo pq no OnUpdateRecord do Provider o codigo fica imensa, qdo estou em insert sempre tenho o NEWVALUE, mas em edição se o campo n foi alterado vem NULL.
Tenho q fazer isso em muitos campos e o codigo escrito fica horrivel, quero saber se tem como em ver se um NEWVALUE é null ou clear.
Obrigado
If(DeltaDs.State=ukInsert) And (Not VarIsNull(DeltaDS.FieldByName(´CAMPO´).NewValue)) Then Begin
Digo pq no OnUpdateRecord do Provider o codigo fica imensa, qdo estou em insert sempre tenho o NEWVALUE, mas em edição se o campo n foi alterado vem NULL.
Tenho q fazer isso em muitos campos e o codigo escrito fica horrivel, quero saber se tem como em ver se um NEWVALUE é null ou clear.
Obrigado
Orpolonio
Curtidas 0
Respostas
Night_man
18/08/2006
voce pode fazer uma funcao que receba o nome do field e o dataset e ela retorne se eh null
eu fiz uma classe q gerencia esse DeltaDS, faz todas as criticas de campo nulo e tal,
mas a funcao eh mais rapida de fazer...
mas a ideia da classe ainda eh a melhor
dai na tua chamada seria
if (updatekind = ukinsert) then
begin
if (not EhNulo(DeltaDS, ´CODIGO´)) then
//coisa1
if (not EhNulo(DeltaDS, ´DESCRICAO´)) then
//coisa2
end;
mais eu ainda voto pela classe
eu fiz uma classe q gerencia esse DeltaDS, faz todas as criticas de campo nulo e tal,
mas a funcao eh mais rapida de fazer...
function EhNulo(const ADataSet: TDataSet; const AFieldName: String): Boolean; begin Result := VarIsNull(ADataSet.FieldByName(AFieldName).NewValue end;
mas a ideia da classe ainda eh a melhor
dai na tua chamada seria
if (updatekind = ukinsert) then
begin
if (not EhNulo(DeltaDS, ´CODIGO´)) then
//coisa1
if (not EhNulo(DeltaDS, ´DESCRICAO´)) then
//coisa2
end;
mais eu ainda voto pela classe
GOSTEI 0