J'ai la procédure de Informix suivantefonction Informix retourne sans raison
CREATE FUNCTION selectSollmandant(INOUT sollmandat SOLLMANDAT_ROW, inkassodatum INT8) RETURNING SMALLINT
DEFINE ret SMALLINT;
LET ret = 0;
trace "Entering select sollmandat " || sollmandat.vers_schein_nr;
PREPARE sollStmt FROM "SELECT s::SOLLMANDAT_ROW FROM sollmandat s WHERE vers_schein_nr = ? ORDER BY lfdnr desc";
DECLARE _sollmCsr CURSOR FOR sollStmt;
IF SQLCODE != 0 THEN
CALL print_to_proto("DECLARE letztZahlCsr " || SQLCODE);
RETURN 0;
END IF;
TRACE "log =========== 1";
OPEN _sollmCsr USING sollmandat.vers_schein_nr;
TRACE "log =========== 2" || SQLCODE;
IF SQLCODE != 0 THEN
TRACE "log =========== 3" || SQLCODE;
CALL print_to_proto("OPEN sollmandat " || SQLCODE);
RETURN 0;
END IF;
TRACE "sollmandant iban is =========== 4" || SQLCODE;
WHILE (1=1) LOOP .... end loop and return...
problème est que mon retour de la fonction avant d'atteindre la boucle while et il frappe jamais log2, log 3 ou log 4.
Can vous s'il vous plaît aidez-moi? Je ne vois pas ce qui me manque.
Merci pour l'aide.
Quelle version d'Informix est exécutée sur quelle plateforme? Devons-nous supposer que le code atteint "log 1" mais pas les messages de journal plus tard? La notation 'SELECT s :: SOLLMANDAT_ROW FROM ... 'est déroutante. Que pensez-vous qu'il fait? Voulez-vous dire 's.SOLLMANDAT_ROW'? Vous n'avez pas d'erreur de trapping (SUR EXCEPTION), donc si l'OPEN échoue à cause de cela, vous ne verrez pas le message 'log 2', –
Oh, euh - vous avez besoin de fournir un MCVE ([MCVE]) . Il semble que SOLLMANDAT_ROW soit un UDT dans la base de données. Mais vous ne nous avez pas montré ce que c'est. Vous n'avez pas montré la structure de la table 'sollmandat'. Vous ne nous avez pas fourni ce qui est nécessaire pour que cela fonctionne sur nos systèmes. Avez-vous exécuté le SQL seul - l'instruction SELECT devrait être exécutable dans DB-Access, je pense. Votre code m'a confondu à 100% (ce qui prend un peu de temps). S'il vous plaît nous fournir le MCVE. Est-ce que vous prévoyez de parcourir une variable? –