El código debería ser este:
Código:
this->ADODataSet1->Connection=this->ADOConnection1;
this->ADODataSet1->ConnectionString=this->ADOConnection1->ConnectionString;
this->ADOConnection1->Connected=true;
this->ADODataSet1->CommandText="Select * from tabla";
this->ADODataSet1->Open;
this-> ADODataSet1->First;
while (!this->ADODataSet1->Eof)
{
this->ADODataSet1->FieldByName("nombre")->AsString); // ¿que hace esto?
this->ADODataSet1->Next();
}
this->ADODataSet1->Close(); //Aqui da el error
No entiendo el error que da, no tiene sentido. En principio he modificado el orden de las líneas... más que otra cosa por lógica. Es mejor primero asignar la conexión y después abrirla.
Por otra parte, y dado el error extraño que muestra, me aseguro de ir al primer registro de la consulta con First.
Lo que desde luego me extraña es la "forma de sacar los datos de ese ADODATASET", porque la primera línea del bucle no hace nada. AsString es una función que devuelve el texto, pero el valor devuelto no lo recoges en una asignación, ni un ShowMessage ni nada por el estilo, podría incluso suponerse que el optimizador del compilador elimina esa línea de código tras compilar.
Algo deberás hacer con ese campo "nombre".
Saludos