comment utiliser les enregistrements provenant d'un procédure stockée

comment utiliser les enregistrements provenant d'un procédure stockée - SQL/NoSQL - Programmation

Marsh Posté le 14-01-2005 à 16:20:42    

j'ai des procédures stockées qui cherchent des enregistrements dans des bases de données SQL-Server.
dans l'analyse de requête, je ne sais pas comment les utiliser.
peut on nommer le resultat de mes enregistrements ?
 
du style  
r=exec "nom de ma procédure stockée n°1"
s=exec "nom de ma procédure stockée n°2"
t=exec "nom de ma procédure stockée n°3"
 
puis faire mes select etc.... en utilisant les valeurs r, s et t.
merci

Reply

Marsh Posté le 14-01-2005 à 16:20:42   

Reply

Marsh Posté le 14-01-2005 à 16:54:54    

comment faire pour imbriquer ces procédures stockées entre elles ?

Reply

Marsh Posté le 14-01-2005 à 19:46:48    

Poste les headers de tes procédures stockées déjà, on pourra plus facilement t'aider.

Reply

Marsh Posté le 14-01-2005 à 23:12:44    

ok
je retourne lundi au boulot
merci d'avance

Reply

Marsh Posté le 17-01-2005 à 09:55:15    

bon on est lundi et j'ai toujours pas trouvé la solution.
merci d'avance pour une aide.

Reply

Marsh Posté le 17-01-2005 à 10:03:10    

Ben poste une de tes procédures que je vois comment tu retourne le résultat.
 
Idéalement, il faut faire soit :

Code :
  1. CREATE FUNCTION dbo.menuList (@usrlog as varchar(50)) 
  2. RETURNS table AS 
  3. return (select typ.typobj, typ.typnam from typ, rgt where rgt.usrlog = upper(@usrlog) and typ.typobj = rgt.typobj)


Si tu veux retourner des données sous forme d'une "table". (tu peux ensuite faire des filtres, jointures, etc. sur le résultat)
 
Appel :  

Code :
  1. select * from dbo.menuList('MagicBuzz')


 
Et :

Code :
  1. CREATE PROCEDURE dbo.objCreate (@usrlog as varchar(50), @typobj as char(3), @objnam as varchar(50), @objxml as ntext, @dtebeg as datetime, @dteend as datetime, @objpar as numeric, @typpar as char(3), @objpos as smallint, @objhom as bit, @newid as numeric output)
  2. AS
  3. BEGIN
  4.    select @newid = isnull(max(objnum), 0) + 1 from obj with (TABLOCKX) where typobj = upper(@typobj)
  5.    insert into obj (typobj, objnum, objnam, objxml, usrcre, dtecre, dtebeg, dteend, objsta, objpar, typpar, objpos, objhom) values (upper(@typobj), @newid, @objnam, @objxml, upper(@usrlog), getDate(), @dtebeg, @dteend, 'C', @objpar, upper(@typpar), @objpos, @objhom)
  6.    execute objActivate @usrlog, @objpar, @typpar
  7. END
  8. GO


(regarde le "@newid output" à la fin de la déclaration)
 
Appel :

Code :
  1. declare @prout as numeric
  2. execute dbo.objCreate 'MagicBuzz', 'ART', 'Article test', '<element><title>titrel</title><summary>Résumé</sumary></element>, null, null, null, null, null, 0, @prout output
  3. select @prout


 
=> Retourne la variable @newid
 
Avec cette syntaxe, tu peux indiquer plusieurs variables "output", comme ça une même PS peut retourner plusieurs variables.


Message édité par Arjuna le 17-01-2005 à 10:04:50
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed