Transact
Transact_Fetch
(SWI &4FC07)
Rappatrie vers le client tout ou partie d'un jeu de résultats (contruit antérieurement par appel à Transact_Select
).
En entrée
- R0 = ID externe de session telque retouné par
Transact_CreateSession
;
- R1 = ID de curseur tel que retourné par appel à
Transact_Select
;
- R2 = Pointeur vers la zone de mémoire ou le moteur doit stocker les données lues (RMA ou espace application);
- R3 = Début de la zone concernée (offset calculé par rapport au début du fichier);
- R4 = Fin de la zone concernée (offset du dernier octet de la zone + 1);
En sortie
- R1 = Nombre d'octets effectivement lus;
- Tous les autres registres sont conservés.
Erreurs possibles
- &812B00 Busy (non encore impémenté dans cette release)
- &812B01 Unknown session
- &812B02 Unknown object
- &812B05 Invalid parameters
- &812B04 Not enough memory to service this request
- &812B03 Unknown cursor
- &812B09 No previous
SELECT
for this cursor
- &812B06 Invalid operation for this cursor mode (
FORWARD_ONLY
)
Notes additionnelles
- Un appel au SWI
Transact_Fetch
qui rappatrie fetch le dernier octet d'un jeu de résultat alors que le mode curseur est FORWARD_ONLY
n'entraine pas une réinitialisation du curseur (qui lui aurait permis d'être l'objet d'une future requête Transact_Select
). Un appel à Transact_AllDone
doit être encore effectué. Cette situation pourra toutefois évoluer dans une future release du moteur;
- L'application cliente doit s'assurer que un espace mémoire suffisant a été préalablement réservé pour y stocker les données (au moins R4 - R3 octets).
Si des données sont absentes du jeu de résultat, aucune erreur n'est signalée; l'application cliente doit alors vérifier que le nombre d'octets retournés est bien égal à R4 - R3 fournis en entrée.