Recuento de iteración Cero

Tengo una pequeña aplicación en Delphi y cuando trato de correr estos dos updates:

With DATAMODULE2.aperturaquery DO
Begin
Close;
Unprepare;
SQL.Clear;
SQL.Add('update(SELECT AUXIliar4.CANTIDAD FROM AUxiliar4 left outer join inventario on inventario.clave=auxiliar4.código where auxiliar4.existencia1='+quotedstr(edit2.Text)+' and ');
SQL.Add('inventario.clave=auxiliar4.código and AUXILIAR4.Rebajado=null AND CAJANUM='+QUOTEDSTR(EDIT15.TEXT)+')set auxiliar4.cantidad=auxiliar4.cantidad*inventario.cantidad2');
Prepare;
ExecSQL;
END;

With DATAMODULE2.query47 DO
Begin
Close;
Unprepare;
SQL.Clear;
SQL.Add('DELETE FROM VENDIDAS5;');
Prepare;
ExecSQL;
END;

La base de datos me da el siguiente error:

ORA-24333 recuento de iteración Cero.

Si me pudieras ayudar.

2 respuestas

Respuesta
1

No controlo mucho Delphi, pero creo que lo que intentas hacer es que se pueda modificar sobre un select con un join y encima outer, esto no se puede hacer.

Si, pero cuando corro este mismo query en SQl*Plus me función correctamente. No entiendo. ¿Por qué ocurre esto?.

Me puedes indicar exactamente la select que lanzas en sqlplus para entenderlo mejor.

Hola:

el query que corro en sql*plus es:

update(SELECT AUXIliar4.CANTIDAD FROM AUxiliar4 left outer join inventario on inventario.clave=auxiliar4.código where auxiliar4.existencia1='C' and );
inventario.clave=auxiliar4.código and AUXILIAR4.Rebajado=null AND CAJANUM='03')set CANTIDAD=2

No se porque porque haces un join y luego pones un outer.

no puedes hacer el update así ???

update auxiliar4 set cantidad = 2

where auxiliar4.existencia1='C' and
AUXILIAR4.Rebajado=null AND CAJANUM='03'

Y en el caso de que cajanum sea de la tabla inventario

update auxiliar4 set cantidad = 2
where auxiliar4.existencia1='C' and
AUXILIAR4.Rebajado=null AND

not exists (select 1 from inventario i where i.CAJANUM <>'03'

and i.clave = auxiliar4.código)

Respuesta
1

verifica el querey de la linea With DATAMODULE. Query47 DO

El error ora-24333 se da cuando trae cero registros el query

Entonces no puede iterar

Pon una validación que en caso de traer cero registros no entre a recorrer

Este ciclo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas