Ver Mensaje Individual
  #11  
Antiguo 24-06-2003
emili emili is offline
Miembro
 
Registrado: jun 2003
Ubicación: Ontinyent (Valencia)
Posts: 14
Reputación: 0
emili Va por buen camino
Otra alternativa es tomar como política el no tener ningún campo integer o float en la BD con valor null.

Es decir, siempre que vamos a grabar podemos utilizar un procedimiento como este:


Nullsazero(Ttable(dataset)); // =Nullsazero(Tproveedores);


Procedure Nullsazero(Taula:Ttable);
var i:smallint;
begin
For i:=0 to taula.FieldCount-1 do
begin
If ((Taula.Fields[i].Datatype=ftfloat) and
(Taula.Fields[i].Isnull)) then
Taula.Fields[i].AsFloat:=0;
If (((Taula.Fields[i].Datatype=ftsmallint) or
(Taula.Fields[i].Datatype=ftinteger)) and
(Taula.Fields[i].Isnull)) then
Taula.Fields[i].AsInteger:=0;
end;
end;


Igual parece pesado cada vez tener que invocar al procedimiento, pero si tenemos la aplicación bien diseñada, podemos tener un "form base" de los que todos los otros heredan, y la invocación a NullsAZero solo la hará éste form base, y no lo tendremos que incluir en todos los forms que vamos creando.

Saludos!
Responder Con Cita