re,
voici ma procédure. J'ai toujours un pb de Error converting data type varchar to bigint. est-ce que je loupe quelque chose?
CREATE PROCEDURE UpdateRole @wwid_pers varchar(50), @id_role bigint, @date_deb datetime, @date_exp datetime, @date_sup datetime,
@id_form varchar(50), @nom_role varchar(50), @code_role varchar(50)
AS
DECLARE @id_EN bigint
SET @id_EN=CONVERT( bigint, @id_form )
DECLARE @id_pers bigint
SET @id_pers=(SELECT personne.id_pers FROM personne WHERE wwid_pers=@wwid_pers)
DECLARE @id_dem bigint
DECLARE @var bigint
DECLARE @nom_form varchar(50)
SET @nom_form=(SELECT nom_form FROM formulaire WHERE id_form=@id_EN)
DECLARE @nom_logi varchar(50)
SET @nom_logi=(SELECT nom_logi FROM logiciel, formulaire WHERE formulaire.id_logi=logiciel.id_logi AND formulaire.nom_form=@id_EN)
DECLARE @nom_serv varchar(50)
SET @nom_serv=(SELECT nom_serv FROM service, formulaire WHERE formulaire.id_serv=service.id_serv AND formulaire.nom_form=@id_EN)
SET @var=(SELECT DISTINCT id_dem FROM table_virtuel)
if(@var is NULL)
SET @id_dem=((SELECT MAX(id_dem) FROM [demande])+1)
else
SET @id_dem=@var
if (@date_exp>@date_deb OR @date_exp=NULL)
begin
UPDATE etre_attribue
SET date_exp=@date_exp, id_dem=@id_dem
WHERE( id_pers=@id_pers AND id_role=@id_role)
if(@id_role NOT IN (select id_role from table_virtuel))
INSERT INTO table_virtuel(date_exp, id_role, id_dem, nom_form, nom_logi, nom_serv, nom_role, code_role)
VALUES(@date_exp, @id_role, @id_dem, @nom_form, @nom_logi, @nom_serv, @nom_role, @code_role)
else
UPDATE table_virtuel
SET date_exp=@date_exp, date_sup=@date_sup, id_dem=@id_dem, nom_form=@nom_form, nom_logi=@nom_logi,
nom_serv=@nom_serv, nom_role=@nom_role, code_role=@code_role
WHERE id_role=@id_role
end
if(@date_sup>@date_deb )
begin
UPDATE etre_attribue
SET date_sup=@date_sup, id_dem=@id_dem
WHERE( id_pers=@id_pers AND id_role=@id_role)
if(@id_role NOT IN (select id_role from table_virtuel))
INSERT INTO table_virtuel(date_sup, id_role, id_dem, nom_form, nom_logi, nom_serv, nom_role, code_role)
VALUES(@date_sup, @id_role, @id_dem, @nom_form, @nom_logi, @nom_serv, @nom_role, @code_role)
else
UPDATE table_virtuel
SET date_exp=@date_exp, date_sup=@date_sup, id_dem=@id_dem, nom_form=@nom_form, nom_logi=@nom_logi,
nom_serv=@nom_serv, nom_role=@nom_role, code_role=@code_role
WHERE id_role=@id_role
end
GO