Delphi - no encuentro el error.... me salta un error

 
Vista:

no encuentro el error.... me salta un error

Publicado por eliana (1 intervención) el 10/12/2012 16:48:41
Tengo una base datos, la cual consta de 4 campos
numero, nombre, apellido, edad, valor (numero, valor : integer y nombre apellido string)

en esta base datos, ire cargando los datos.

la BD la ice en acces (numero y valor : integer y nombre apellido string)

Al iniciar el programa, primero comprueba si la BD esta vacia o no, si esta vacia entonces el campo NUMERO se inicia con 1, y con ese valor identifico al la persona, y continuo cargando los dedas datos que me pide y guardo en la BD los datos cargado
NUMERO
NOMBRE
APELLIDO
EDAD
VALOR

Si el campo NUMERO es distinto de cero, (ES POR QUE YA HAY UNA PERSONA REGISTRADA) entonces tomo el valor de NUMERO y le sumo UNO, para con ese resultado identificar a la siguiente persona.


Mi pregunta es...
Cuando inicio el programa, teniendo la base datos vacia, sin ningun dato me muestra este error
Proyect proyect1.exe raised exception clas EConverterError with mesage "is not a valided integer value"
Process stopped Use step run to continue.

Si abro el BD con acces y cargo un registro, este erro no me aparece cuando inicio el programa

este es el codigo


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure TFAltaJud.FormCreate(Sender: TObject);
var
   x : integer;
begin
ADOTable1.Active := True;
ADOTable1.Last;   // me posiscina ultimo registro
 
FAltaJud.edit7.text := ADOTable1.FieldByName('Numero').AsString ;
 
// el IF de abajo es para cuando se va a registrar el primer registro,
// como sera igual a  '' (NADA, VACIO)  entonces, pongo x=1
// CORREGIDO..si el registro es  = '' me salta un error
 
if ADOTable1.FieldByName('Numero').AsString = '0' then
   x := 1
 else
   // aca siempre entrara despues de grabar el primer registro
   // X sera el contador de registros
   x := StrToInt(ADOTable1.FieldByName('Numero').AsString) + 1;
 
edit1.text := IntToStr(x);
 
end;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

no encuentro el error.... me salta un error

Publicado por E.T. (1244 intervenciones) el 10/12/2012 20:20:55
El problema es evidente, el error te dice que '' no puede ser tratado como un integer, quiere decir que como tu base de datos no tiene registros, obviamente no puede tener el valor '0' (cero), por lo tanto el codigo debería ser:
1
if (ADOTable1.FieldByName('Numero').AsString = '') or (ADOTable1.FieldByName('Numero').AsString = '0') then
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

no encuentro el error.... me salta un error

Publicado por eliana (1 intervención) el 18/12/2012 22:40:54
listo, bien bine.. gracias por su ayuda señior E.T., creo que ahi esta mi solucion... jeje... di vueltas y vueltas pero no me salio, probare con esa linea ue me manda..

gracicas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar