| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Lupo Ens

Registrado: 15 Ago 2005Mensajes: 30Ubicación: Prov, Buenos Aires - Argentina
|
Publicado: Vie 16 Dic, 2005 10:07 pm Asunto: (TQuery) El valor de Bof o Eof es true. |
|
|
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 ??  _________________ Il Lupo |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
|
| Volver arriba |
|
 |
laremi400 Master

Registrado: 12 May 2004Mensajes: 179
|
Publicado: Mar 20 Dic, 2005 8:28 am Asunto: Re: (TQuery) El valor de Bof o Eof es true. |
|
|
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 |
|
 |
Lupo Ens

Registrado: 15 Ago 2005Mensajes: 30Ubicación: Prov, Buenos Aires - Argentina
|
Publicado: Vie 23 Dic, 2005 4:12 am Asunto: |
|
|
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 |
|
 |
|