Ha ez Oracle Pro*C lenne, akkor ilyesmit lehetne gányolni.
for (leave=0; kellene>0 && !leave; ) {
SELECT elado_id, egysegar, darab INTO :elado_id, :egysegar, :vanneki
FROM ajánlat ORDER BY egysegar;
if (sqlca.sqlcode) {
leave= 1;
continue;
}
if (vanneki > kellene) {
EXEC SQL UPDATE ajánlat SET mennyiség = mennyiség - :kellene
WHERE eladó_id=eladó_x AND mennyiség = :vanneki;
if (sqlca.sqlerrd[2]) {
kellene= 0;
} else {
goto UJRA;
}
} else {
EXEC SQL DELETE FROM ajánlat
WHERE eladó_id=eladó_x AND mennyiség = :vanneki;
if (sqlca.sqlerrd[2]) {
kellene -= vanneki;
} else {
goto UJRA;
}
}
}