|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2003 Messages : 4 ![]() |
Voici mon problème:
J'ai réalisé une application client/serveur en delphi (avec donc plusieurs clients et un serveur de BD). Dans mon source delphi, j'appelle une procédure stockée qui devrait me retourner un tableau avec 3 colonnes. Au départ, j'avais essayé d'utiliser une table temporaire. Le problème c'est que lorsque mon client 1 n'utilise plus la procédure stockée, le temps qu'il aille lire le contenu de la table temporaire, un autre client 2 a pu exécuter la procédure stockée et modifier le contenu de la table temporaire... J'en suis donc venu à essayer d'écrire mes valeurs plutôt dans un tableau que dans une table, puis de renvoyer le tableau au programme delphi. Le problème, c'est que je n'arrive pas à trouver la syntaxe exacte pour le faire... Quelqu'un a une idée? |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() ![]() |
Je vois pas trop ou elle est le problème.
En faites, chaque fois que tu fais appel à ton procedure, elle te renvoi les données que tu veux que tu peux recupérer via un IbQuery ou une IbStoredProc. A toi de traiter après ces données. Sinon, donne plus d'infos A+
__________________
On progresse ..... |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mai 2003 Messages : 4 ![]() |
Oui, mais j'ai pas envie d'appeler 1000 fois ma procédure pour qu'elle me renvoie à chaque fois 3 valeurs. J'ai pas envie de surcharger mon réseau.
Je veux que ça soit la procédure stockée qui fasse les 1000 traitements et qui me renvoit en une seule fois un tableau avec les 1000 enregistrements... Je suis clair là? |
|
|
00
|
|
|
#4 |
|
Membre émérite
![]() ![]() |
Je commence à comprendre.
Si tu peux poster du code et nous explique ce que tu veux faire via la procedure stocké, ça nous sera d'une grande aide. A+
__________________
On progresse ..... |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : mai 2003 Messages : 4 ![]() |
Voila comment je fait aujourd'hui:
set term ^ ; create procedure proc_tab ( jour varchar(8) ) as declare variable NB_ATTENTE integer; declare variable NB_TRAITE integer; declare variable i integer; begin i=0; /* je vide le contenu de la table temporaire */ delete from TAB; while (i < 1000) do begin select count(*) from ol_article o where o.date_rdv = :jour and o.cpt = :i into :nb_attente; select count(*) from ol_article o where o.ol_status='51' and o.date_rdv=:jour and o.cpt= :i into :nb_traite; /* je remplis le contenue de la table temporaire */ insert into TAB (CPT, NB_ATTENTE, NB_TRAITE) VALUES (:i, :nb_attente, :nb_traite); i=i+1; end end ^ set term ; ^ Et je voudrai remplacer mon insert par l'ajout de mes données dans un tableau et de renvoyer le contenu de mon tableau quand ma procédure se termine (faire un returns (tab) ou qqch comme ça). Voila |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : mai 2003 Messages : 4 ![]() |
C'est:
jour varchar(8) à la place du smiley! |
|
|
00
|
|
|
#7 | ||||
|
Membre émérite
![]() ![]() |
Déjà j'opterais pour une procedure de ce genre :
Code :
Il suffit d'utiliser un IBquery au niveau de Delphi pour recuperer tes 1000 lignes via la requete Code :
A+
__________________
On progresse ..... |
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com