Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

(TQuery) El valor de Bof o Eof es true.

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: (TQuery) El valor de Bof o Eof es true. Responder citando

Hola a todos, estuve buscando la respuesta en los post de este foro pero la verdad no la encontre... Mi problema es que al hacer una consulta en una base donde algunos registros estan vacios, cuando intento cerrar el query para realizar una nueva consulta me tirar este error "El valor de Bof o Eof es true, o el actual registro se elimino".
Mi codigo es este:

Código:

        QueryArt->Close();
        QueryArt->SQL->Clear();
        QueryArt->SQL->Add("SELECT CodArticulo FROM Articulos WHERE Rubro='" + Rubro[cboRubro->ItemIndex] + "' ORDER BY CodArticulo");
        QueryArt->Open();
        QueryArt->Last();
        if(!QueryArt->IsEmpty())
                txtCodArt->Text = QueryArt->FieldValues["CodArticulo"];
        else
                txtCodArt->Text = "0001";


El tema es que si yo saco el QueryArt->Close(), despues me tira un error diciendo que no puedo realizar la accion de Open() en un dataset ya abierto...

Alguna sugerencia ?? Sad
_________________
Il Lupo
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mensaje    Asunto: Responder citando

No se si tendrá relación con tu problema, pero por si acaso:

https://cppbuilder.es/viewtopic.php?t=8628
https://cppbuilder.es/viewtopic.php?t=6983
https://cppbuilder.es/viewtopic.php?t=4303
https://cppbuilder.es/viewtopic.php?t=3415
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Re: (TQuery) El valor de Bof o Eof es true. Responder citando

Hola!!

El Close() no lo puedes quitar. Lo tienes bien donde está. En los Query primero hay que cerrar, luego pasarle el SQL y luego abrir.
¿Por que haces un Last() despues de abrir?. Puede que ahí tengas el error. Eso te posiciona en el último registro que te ha devuelto el query.
Luego usas IsEmpty. Que no digo yo que esté mal. Pero si te sigue sin funcionar te recomendaria que usases Eof, que eso tengo comprobado que si que funciona. O también puedes usar Query->RecordCount.
A ver si te sirve.
Un saludo.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Antes que nada muchsa gracias a los dos !! la solucion a mi problema fue lograda con las actualizaciones del Builder que me facilito _Leo con sus link.
Por otro lado laremi400 te cuento un poco que era lo que queria hacer:
Luego de realizar la consulta yo precisaba obtener el ultimo registro, porque al haber ordenado la busqueda por el campo CodArticulo, me iba a dar los campos del articulo de mayor numero de codigo, me entendes ?
Despues, con el isEmpty pregunto si la consulta devolvio o no algun resultado, porque si la consulta no devolvio ningun registro, al realizar una operacion como "QueryArt->FieldValues["CodArticulo"];" me iba a dar una excepcion...
Ahora mi problema era justamente con el Close, si yo no cerraba el Query, cuando queria realizar una nueva consulta me decia que no la podia hacer porque el Query ya estaba abierto.. Por otro lado, si yo lo cerraba y la consulta estaba vacia, me daba otra excepcion que es la que puse como titulo.
Pero la solucion a todo esto, es actualizar el builder con esos archivos que se indican en los post que sugirio _leo. Saludos!!
_________________
Il Lupo
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.