error de VALOR DE bof O eof ES TRUE....
Publicado por eliana l. (6 intervenciones) el 23/12/2012 17:52:08
Tengo una base datos, de 4 campos
numero, nombre, apellido, edad, valor (numero, valor : integer y nombre apellido string)
la DB esta vacia, sin ningun registro, hecha en acces
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 persona, y continuo cargando los demas 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.
perfecto asta aca, cuando cargo todos los datos en los edit, presiono el boton GUARDAR ME SALTA ESTE ERROR
********** proyect1.exe raised exception class eoleeXCEOTION WITH MESSAGE
********** eL VALOR DE bof O eof ES TRUE O EL ACTUAL REGISTRO SE ELIMINO,
********** LA OEPRACION REQUIERE UN REGISTRO ACTUAL
Antes me aparecia este error
********** "is not a valided integer value"
Pero con ayuda de un usuario del foro ET, me corrigio este error, aora continuo con los errores, jaja...
Si abro el BD con acces y cargo un registro, este error no me aparece cuando inicio el programa, me salta solo cuando la BD esta vacia.
este es el codigo
numero, nombre, apellido, edad, valor (numero, valor : integer y nombre apellido string)
la DB esta vacia, sin ningun registro, hecha en acces
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 persona, y continuo cargando los demas 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.
perfecto asta aca, cuando cargo todos los datos en los edit, presiono el boton GUARDAR ME SALTA ESTE ERROR
********** proyect1.exe raised exception class eoleeXCEOTION WITH MESSAGE
********** eL VALOR DE bof O eof ES TRUE O EL ACTUAL REGISTRO SE ELIMINO,
********** LA OEPRACION REQUIERE UN REGISTRO ACTUAL
Antes me aparecia este error
********** "is not a valided integer value"
Pero con ayuda de un usuario del foro ET, me corrigio este error, aora continuo con los errores, jaja...
Si abro el BD con acces y cargo un registro, este error no me aparece cuando inicio el programa, me salta solo cuando la BD esta vacia.
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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') or (ADOTable1.FieldByName('Numero').AsString = '') 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;
/ boton POST, GUARDAR
procedure TFAltaJud.Button2Click(Sender: TObject);
var
xx : integer;
begin
{ Guardar datos }
ADOTable1.Insert;
ADOTable1.FieldByName('Numero').AsString := Edit1.Text;
ADOTable1.FieldByName('nombre').AsString := Edit2.Text;
ADOTable1.FieldByName('apellido').AsString := Edit3.Text;
ADOTable1.FieldByName('valoe').AsString := Edit4.Text;
ADOTable1.Post;
// calculo el valor ultimo registro cargado, le sumo 1, y obtendo el siguiente valor concecutivo de registro y lo pongo en EDIT1.TEXT
ADOTable1.Last;
xx := StrToInt(ADOTable1.FieldByName('Numero').AsString) + 1;
edit1.text := IntToStr(xx);
// limpio los edit para carga de nuevos datos
// el edit1 ya tendra el nuevo valor de registro a introducir
Edit2.clear;
Edit3.clear;
Edit4.clear;
Edit2.setfocus;
end;
Valora esta pregunta


0