| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
ikis Master


Registrado: 28 Dic 2002Mensajes: 703Ubicación: Madrid, España
|
Publicado: Mie 31 Dic, 2003 1:45 pm Asunto: Cannot perform this operation on a closed dataset |
|
|
Hola,
estoy trabajando con unas tablas Paradox con Builder 1 (por favor, sin comentarios) y al ejecutar estas inocentes líneas
| Código: |
//tarifas.............
bActive = MainForm->TarifasTable->Active;
if (!MainForm->TarifasTable->Active)
MainForm->TarifasTable->Active = true;
slTarifas->Clear();
MainForm->TarifasTable->First();
for (int i=0; !MainForm->TarifasTable->Eof; i++){
slTarifas->Add(MainForm->TarifasTable->FieldValues["Detalle"]);
MainForm->TarifasTable->Next();
}
MainForm->TarifasTable->Active = bActive;
//tarifas.............
|
obtengo el error
| Cita: |
Cannot perform this operation on a closed dataset
|
Ya he buscado por todas partes he intentando de todo sin éxito.
¿alguna idea? |
|
| Volver arriba |
|
 |
XyVy Master


Registrado: 25 Ago 2002Mensajes: 557Ubicación: Murcia (España)
|
Publicado: Mie 31 Dic, 2003 3:15 pm Asunto: |
|
|
La base de datos está activa y abierta la conexión no ? _________________ OJO!! Ya tenemos subforo de Bases de Datos!!
Gracias a los admins. |
|
| Volver arriba |
|
 |
Invitado
|
Publicado: Mie 31 Dic, 2003 3:41 pm Asunto: |
|
|
Puede funcionar asi, tambien, y te evitas el for...
| Código: |
//tarifas.............
bActive = MainForm->TarifasTable->Active;
if (!MainForm->TarifasTable->Active)
MainForm->TarifasTable->Active = true;
slTarifas->Clear();
MainForm->TarifasTable->First();
while(!!MainForm->TarifasTable->Eof){ //quitando el for
slTarifas->Add(MainForm->TarifasTable->FieldValues["Detalle"]);
MainForm->TarifasTable->Next();
}
MainForm->TarifasTable->Active = bActive;
//tarifas.............
|
y verifica tambien que tu tabla este abierta, es decir que tenga una tabla y un DataSource |
|
| Volver arriba |
|
 |
alfredo Master

Registrado: 13 Oct 2003Mensajes: 246Ubicación: Valencia Venezuela
|
Publicado: Mie 31 Dic, 2003 6:55 pm Asunto: |
|
|
Saludos Ikis, me parece recordar con Builder 1 en varias ocasiones no realizaba o evaluaba bien la sentencia if si no la escribia de un modo mas explicito, me explico:
| Código: | //Fallaba
Table->Open();
if(Table->Active)
ShowMessage("La Tabla esta Activa");
//No Fallaba
Table->Open();
if(Table->Active==true)
ShowMessage("La Tabla esta Activa");
| Ignoro por que, tal vez un bug. Haz la prueba sugerida a ver si es eso |
|
| Volver arriba |
|
 |
ikis Master


Registrado: 28 Dic 2002Mensajes: 703Ubicación: Madrid, España
|
Publicado: Vie 02 Ene, 2004 3:24 pm Asunto: |
|
|
Hola,
les comento la solución.
Pese a que la tabla no tenía ninguna relación con otra, no me fije en sus eventos, y en el OnCalcFields, hacía referencia a otra tabla, con lo que con activarla previamente todo anduvo muy bien, con el mismo código de arriba.
Feliz año |
|
| Volver arriba |
|
 |
|