![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
El detalle es que el hace la comparación de otra forma...
Usa el operador != que sería el <> de Delphi... Código:
while (this->ADODataSet1->Eof != true) Saludos |
|
#2
|
|||
|
|||
|
Sale un cuadro de dialogo con este error:
"Project raised exception class EOleException with message "El valor de BOF o EOF es True, o el actual registro se elimino, la operacion solicitada requiere un registro actual, process stoped...." Os iba a poner la imagen del cuadro, pero imageshack no quiere que le suba nada xD, gracias . |
|
#3
|
||||
|
||||
|
Hola
Que bien, me estoy metiendo en camisa de once varas. Que pasaria si hicieramos esto, en la linea de While: Por algun lado es, el mensaje dice que encontro true, creo que lo confunde con un dato. Saludos |
|
#4
|
|||
|
|||
|
el !this->ADODataSet1->Eof es igual que el this->ADODataSet1->Eof!=true, es como el i++ o el i=i+1; aunque se escriban de forma diferente, funcionan igual, no es mas que una comodidad para el programador (vamos eso creo). Yo uso el !=true porque me gusta mas.
El mensage yo lo entiendo como si intentase cerrar con el objeto estando nulo o algo parecido, pero eso me parece imposible, joer que es una consulta y pueden existir algunas con 0 tuplas. Es que aunque no acceda al eof, este va a estar a true si la consulta no devuelve nada, no me valdria ni siquiera saber cuantas filas me devolvio el select. De momento por no pararme en esto y seguir avanzando lo que hago es un count de la consulta y si es 0 no la ejecuto, asi si funciona, pero es muy bestia tener que hacer dos consultas en vez de una. |
|
#5
|
|||
|
|||
|
Que es lo que haces dentro del while... creo que ahí puede estar el meollo del asunto...
Saludos... |
|
#6
|
|||
|
|||
|
Ahh oki, no llevo un buen dia no...
Pues dentro del while esta el acceso a cada elemento de la consulta y el next para que avance, si quito el next es bucle infinito y si quito la otra sentencia no puedo sacar los datos de la consulta xD. |
|
#7
|
||||
|
||||
|
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
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
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Edit en TADODataSet | scooterjgm | Conexión con bases de datos | 2 | 10-04-2006 09:46:36 |
| Trabajando con TADODataset | Novato | Conexión con bases de datos | 2 | 08-10-2005 23:57:27 |
| Duda | Delphius | Varios | 5 | 02-06-2005 07:40:29 |
| TADODataSet VS TADOQuery | Mauro.NET | Conexión con bases de datos | 1 | 24-05-2005 19:39:57 |
| objeto TADODataSet | Nidia H. Ochoa | OOP | 2 | 06-07-2004 22:48:12 |
|