Bonjour
C'est bien compris que le "suspend" est utilisé dans les procédures stockés récupérant les (paramètres return)
Mais ce que je veux savoir :où va se passer ces résultats récupérés ?
Merci
Bonjour
C'est bien compris que le "suspend" est utilisé dans les procédures stockés récupérant les (paramètres return)
Mais ce que je veux savoir :où va se passer ces résultats récupérés ?
Merci
Bonsoir,
je ne comprend pas bien la question. On récupère le résultats via un SQL : SELECT * FROM UNEPROCEDURE[(paramètres)]via Delphi, cela dépend du set de composants utiliser soit une utilisera une Query, soit il existe un composant particulier TStoredProc, TZStoredProc etc...
qui fait en fait la même chose que la Query , c'est à dire ouvrir un ensemble résultat
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
Bonsoir
négligeant les ide(delphi,....) ; Les résultats obtenus est-ce qu'elles servent pour un stockage? je parle du sql
Salut à tous.
Dans une procédure stockée, vous pouvez indiquer par l'ordre "suspend" quelles sont les lignes qui seront restituées dans le select.
C'est au travers de ce select, qui fait référence à votre procédure strockée, que vous obtiendrez les lignes.
Il n'y a aucun stockage dans aucune table temporaire ou quoi que ce soit d'autre.
Vous faites ce que vous voulez avec ces lignes.Envoyé par gentilman_delphi
Rien ne vous empêches ensuite de les rediriger vers une table.
Vous n'êtes pas très clair sur la formulation de votre problème. Donnez-nous un exemple !
@+
Si vous êtes de mon aide, vous pouvez cliquer sur .
Mon site : http://www.jcz.fr
je dans l'ordre d'importance
je serais moins catégorique, comme pour un SELECT classique, il y a quand même un moment où l'ensemble de données est en mémoire avant d'être envoyé, masi c'est la cuisine interne FirebirdIl n'y a aucun stockage dans aucune table temporaire ou quoi que ce soit d'autre.
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
Bonjour,
Aussi de cet avis. Il me semble qu'une sorte de "mise en mémoire" des résultats s'impose indépendamment de la lecture par le client.
Prenons par exemple une procédure de la forme:
où 5000 enregistrements sont sélectionnés et où <traitement> effectue des modifications dans d'autres tables.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for select .... into .... do begin <traitement> suspend; end
Si le suspend attendait que le client ait lu un résultat avant d'effectuer le traitement suivant, si ce client ne lit que les 1000 premiers résultats, 4000 modifications ne seraient pas effectuées !
Les dataset ont souvent une capacité limitée qui parfois ne permet pas de lire la totalité des résultats.
André
Salut à tous.
Par stockage, je voulais signifier une ecriture sur un périphérique de stockage comme un disque dur.Envoyé par SergioMaster
En mémoire, ce n'est pas du stockage car la mémoire est dite volatile.
Nous sommes bien d'accord que les lignes sont en mémoire et donc disponible temporairement.
Comme tu dis, c'est de la cuisine FireBird. L'important, c'est que cela fonctionne !
Je suis désolé si je me suis mal exprimé.Envoyé par alanglet
Pour la suite de ton message "alanglet", ce dont tu parles concerne les verrous et donc dépend du paramétrage utilisé.
Rien empêche qu'une modification se fasse durant la lecture, sans que cela bloque qui que se soit.
@ gentilman_delphi : le "suspend" n'est qu'un marqueur pour indiquer que dans le traitement de la procédure stockée, on désire prendre à cet instant là, l'image des variables contenues dans la partie "returns".
Autrement dit, c'est comme si vous faisiez un "printf(col1, col2, ...)". Enfin, je le voie ainsi.
@+
Si vous êtes de mon aide, vous pouvez cliquer sur .
Mon site : http://www.jcz.fr
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager