Jeg har tidligere skrevet en masse pro*c og med tiden indset, at du ikke ønsker at tjekke returkoden for PREPARE-sætningen, da den aldrig returnerer nogen værdi. Her er hvad jeg mener:
PREPARE sqlca.sqlcode-værdien er returkoden for den sætning, der kørte umiddelbart FØR PREPARE-sætningen. Med andre ord, hvis du kontrollerer outputtet af PREPARE-sætningen og sætningen, der blev udført lige før PREPARE-sætningen mislykkedes, så mislykkes returkoden for prepareringen. Hvis det forrige udsagn lykkedes, ser PREPARE ud til at være lykkedes.
Med andre ord er værdien for prepare sqlca.sqlcode dybest set ingenting (den fejler aldrig af sig selv). Så hvis PREPARE nu mislykkes, skal du kontrollere sætningen, der blev udført lige før PREPARE-sætningen, og sikre dig, at du tjekker sqlca.sqlcode-værdien af den. Mit bud er, at den tidligere erklæring mislykkes, og den returnerede fejl vedrører den erklæring. Giver det mening?
-Jim