Hola a todos, estoy haciendo una aplicacion que usa una base de datos en acces (no tengo mas remedio que usarla) e investigando como insertar/obtener datos de la bd me encontre con este objeto, pero algo debo hacer mal ya que si al hacer un select, este no devuelve ningun resultado, salta una excepcion a la hora de hacer el close.
Esto lo puedo evitar haciendo un count de la consulta antes, pero me parece una chapuza y por eso me paso por aqui porque no doy con otra solucion.
La linea de conexion no os la voy a soltar porque es larguisima, pero todo va ok salvo ese caso que os comento, os pongo el codigo.
Código:
this->ADOConnection1->Connected=true;
this->ADODataSet1->Connection=this->ADOConnection1;
this->ADODataSet1->ConnectionString=this->ADOConnection1->ConnectionString;
this->ADODataSet1->CommandText="Select * from tabla";
this->ADODataSet1->Active=true;
this->ADODataSet1->Open();
while (this->ADODataSet1->Eof!=true)
{
this->ADODataSet1->FieldByName("nombre")->AsString);
this->ADODataSet1->Next();
}
this->ADODataSet1->Close(); //Aqui da el error
El error viene a ser que con eof==true no puede hacer el close, cosa que no acabo de entender ya que una consulta se recorre hasta el final.
Si estais pensando porque no uso TADOQuery es porque no me ha hecho falta, con este objeto puedo hacer insert,update, delete y select sin problemas, salvo el que os comento claro esta.
Gracias a todos.