Bonjour,
Existe t-il une fonction spécifique en php PDO pour récupérer la valeur retourner par "return" d'une procédure stockée exécuter?
Cela fait plusieurs jour et je suis vraiment bloquée :(
Mon code PHP
[code]
// Connexion à la base de données
$DB = new DB;
// Chaine procédure SQL avec passage de variable
$req = "ut_DocSupprim $iIdDoc";
// Exécution procédure, la procédure s'exécute bien
$exec = $DB->query($req);
[/code]
Ma procédure SQL de 3km de long :p :
[code]
USE [maBase]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Procedure [dbo].[ut_DocSupprim]
(
@IdDoc int = null
)
As
/ set nocount on /
declare @nb int,
@IdVer int,
@Titre varchar(100),
@Rev smallint,
@Sql varchar (255),
@chaineFin varchar(200)
set @chaineFin = 'test'
SELECT @nb= count(*)
FROM Documents
WHERE (IdDoc = @IdDoc)
if @nb=0
begin
select 'Document inexistant'
return @chaineFin
end
SELECT @Titre=DocTitre
FROM Documents
WHERE (IdDoc = @IdDoc)
SELECT @nb= count(*)
FROM Menu
WHERE (IdDoc = @IdDoc)
if @nb>0
begin
select 'Suppression impossible, le document '''+@Titre+''' est lié à un menu'
return @chaineFin
end
--suppression de la dernière version du document
SELECT top 1 @IdVer=IdVer
FROM DocVersions
WHERE (IdDoc = @IdDoc)
ORDER BY DocRev DESC
set @Sql = 'DELETE FROM Form_Cases WHERE IdVer = ' + convert(varchar(10),@Idver)
--execute (@Sql)
set @Sql = 'DELETE FROM DocVersions WHERE IdVer = ' + convert(varchar(10),@Idver)
--execute (@Sql)
SELECT @nb= count(*)
FROM DocVersions
WHERE (IdDoc = @IdDoc)
if @nb=0
-- suppression du document s'il ne reste plus aucune version
begin
--si le doc est réservé à des groupes, il faut supprimer les réservations
SELECT @nb= count(*)
FROM BS_GROUPE_DOCUMENT
WHERE (IdDoc = @IdDoc)
if @nb>0
begin
set @Sql = 'DELETE FROM BS_GROUPE_DOCUMENT WHERE IdDoc = ' + convert(varchar(10),@IdDoc)
--execute (@Sql)
end
--suppression du document
set @Sql = 'DELETE FROM Documents WHERE IdDoc = ' + convert(varchar(10),@IdDoc)
--execute (@Sql)
select 'Document '''+@Titre+''' supprimé.'
end
else
-- s'il reste encore une version, mise à jour de la table document
begin
SELECT top 1 @Rev=DocRev
FROM DocVersions
WHERE (IdDoc = @IdDoc)
ORDER BY DocRev DESC
UPDATE Documents set DocRev=@Rev, Valid_Date=NULL, Valid_Id=NULL
FROM Documents
WHERE(IdDoc = @IdDoc)
select 'Dernière version du document '''+@Titre+''' supprimée.'
end
return @chaineFin
[/code]
Je précise avant de me faire huer que se n'est pas moi qui ai écrit ce code :).
Merci