Arjuna Aircraft Ident.: F-MBSD | Ben poste une de tes procédures que je vois comment tu retourne le résultat.
Idéalement, il faut faire soit :
Code :
- CREATE FUNCTION dbo.menuList (@usrlog as varchar(50))
- RETURNS table AS
- 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 :
- select * from dbo.menuList('MagicBuzz')
|
Et :
Code :
- 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)
- AS
- BEGIN
- select @newid = isnull(max(objnum), 0) + 1 from obj with (TABLOCKX) where typobj = upper(@typobj)
- 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)
- execute objActivate @usrlog, @objpar, @typpar
- END
- GO
|
(regarde le "@newid output" à la fin de la déclaration)
Appel :
Code :
- declare @prout as numeric
- execute dbo.objCreate 'MagicBuzz', 'ART', 'Article test', '<element><title>titrel</title><summary>Résumé</sumary></element>, null, null, null, null, null, 0, @prout output
- 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
|