Delphi 组件,但它应该是NULL,而不是生成AV。2013年仍在使用BDE吗?哇……2013年还在使用溴化二苯醚吗?哇! ` qConsulta2 := TQuery.Create(Application); qConsulta2.DatabaseName :
Delphi 组件,但它应该是NULL,而不是生成AV。2013年仍在使用BDE吗?哇……2013年还在使用溴化二苯醚吗?哇! ` qConsulta2 := TQuery.Create(Application); qConsulta2.DatabaseName :,delphi,floating-point,Delphi,Floating Point,组件,但它应该是NULL,而不是生成AV。2013年仍在使用BDE吗?哇……2013年还在使用溴化二苯醚吗?哇! ` qConsulta2 := TQuery.Create(Application); qConsulta2.DatabaseName := 'BaseDato'; qConsulta2.SQL.Text := 'select VALOR from PARAMETRO where codigoPARAMETRO = ''IVA'' '; qConsulta2.open;
组件,但它应该是
NULL
,而不是生成AV。2013年仍在使用BDE吗?哇……2013年还在使用溴化二苯醚吗?哇!
` qConsulta2 := TQuery.Create(Application);
qConsulta2.DatabaseName := 'BaseDato';
qConsulta2.SQL.Text := 'select VALOR from PARAMETRO where codigoPARAMETRO = ''IVA'' ';
qConsulta2.open;
qCompraDetalle.FieldByName('PORCENTAJE_IVA').AsFloat:= qConsulta2.fieldbyname('valor').asfloat;
qConsulta2.close;
qConsulta2.free `
qConsulta2 := TQuery.Create(Application);
try
qConsulta2.DatabaseName := 'BaseDato';
qConsulta2.SQL.Text := 'select VALOR from PARAMETRO where codigoPARAMETRO = ''IVA'' ';
qConsulta2.open;
if not qConsulta2.EOF then
qCompraDetalle.FieldByName('PORCENTAJE_IVA').AsFloat:= qConsulta2.fieldbyname('valor').asfloat;
qConsulta2.close;
finally
qConsulta2.free
end;
qConsulta2 := TQuery.Create(Application);
try
qConsulta2.DatabaseName := 'BaseDato';
qConsulta2.SQL.Text := 'select COALESCE(VALOR, 0) AS valor from PARAMETRO where codigoPARAMETRO = ''IVA'' ';
qConsulta2.open;
qCompraDetalle.FieldByName('PORCENTAJE_IVA').AsFloat:= qConsulta2.fieldbyname('valor').asfloat;
qConsulta2.close;
finally
qConsulta2.free
end;
qConsulta2 := TQuery.Create(Application);
try
qConsulta2.DatabaseName := 'BaseDato';
qConsulta2.SQL.Text := 'select VALOR from PARAMETRO where codigoPARAMETRO = ''IVA'' ';
qConsulta2.open;
if qConsulta2.FieldByName('VALOR').AsString <> '' then
qCompraDetalle.FieldByName('PORCENTAJE_IVA').AsFloat:= qConsulta2.fieldbyname('valor').asfloat;
qConsulta2.close;
finally
qConsulta2.free
end;
procedure TForm1.Case1;
var
f : double;
begin
db.ExecSQL('delete from PARAMETRO');
db.ExecSQL('insert into PARAMETRO (codigoPARAMETRO) values(''IVT'')');
// VALOR_FLOAT and VALOR_TEXT are null
qConsulta2.SQL.Text := 'select * from PARAMETRO';
qConsulta2.Open();
f := qConsulta2.FieldByName('VALOR_FLOAT').AsFloat;
ShowMessage('From Float '+FloatToStr(f));
f := qConsulta2.FieldByName('VALOR_TEXT').AsFloat;
ShowMessage('From Text '+FloatToStr(f));
end;
procedure TForm1.Case2;
var
f : double;
begin
db.ExecSQL('delete from PARAMETRO');
db.ExecSQL('insert into PARAMETRO (codigoPARAMETRO,VALOR_TEXT) values(''IVT'','''')');
// VALOR_FLOAT is null and VALOR_TEXT is '' (zero length string)
qConsulta2.SQL.Text := 'select * from PARAMETRO';
qConsulta2.Open();
f := qConsulta2.FieldByName('VALOR_FLOAT').AsFloat;
ShowMessage('From Float '+FloatToStr(f));
f := qConsulta2.FieldByName('VALOR_TEXT').AsFloat;
ShowMessage('From Text '+FloatToStr(f));
end;
procedure TForm1.Case3;
var
f : double;
begin
NullStrictConvert := false;
db.ExecSQL('delete from PARAMETRO');
db.ExecSQL('insert into PARAMETRO (codigoPARAMETRO) values(''IVT'')');
// VALOR_FLOAT and VALOR_TEXT are null
qConsulta2.SQL.Text := 'select * from PARAMETRO';
qConsulta2.Open();
f := qConsulta2.FieldByName('VALOR_FLOAT').AsFloat;
ShowMessage('From Float '+FloatToStr(f));
f := qConsulta2.FieldByName('VALOR_TEXT').AsVariant;
ShowMessage('From Text '+FloatToStr(f));
end;
procedure TForm1.Case4;
var
f : double;
begin
NullStrictConvert := false;
db.ExecSQL('delete from PARAMETRO');
db.ExecSQL('insert into PARAMETRO (codigoPARAMETRO) values(''IVT'')');
// VALOR_FLOAT and VALOR_TEXT are null
qConsulta2.SQL.Text := 'select * from PARAMETRO';
qConsulta2.Open();
f := qConsulta2['VALOR_FLOAT'];
ShowMessage('From Float '+FloatToStr(f));
f := qConsulta2['VALOR_TEXT'];
ShowMessage('From Text '+FloatToStr(f));
// avoid data conversion
qCompraDetalle.Open();
qCompraDetalle.Append;
qCompraDetalle['PORCENTAJE_IVA'] := qConsulta2['VALOR_TEXT'];
qCompraDetalle.Post;
end;