Utilisation de IsEmpty()

Résolu
bootchoz Messages postés 88 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 17 septembre 2006 - 28 juil. 2006 à 11:54
bootchoz Messages postés 88 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 17 septembre 2006 - 31 juil. 2006 à 12:09
bonjour, je n'arrive pas à utiliser cette fonction.
je voudrais verifier si un select me renvoit une cellule vide. J'avais ecrit cela mais @var ne vaut jamais null meme quand ma table est vide !
si quelqu'un peut m'aiguiller ce serait sympa.
merci.
SET @var=(SELECT DISTINCT id_dem FROM table_virtuel)
 if(@var = NULL)
  SET @id_dem=((SELECT MAX(id_dem) FROM [demande])+1)
 else
  SET @id_dem=@var

3 réponses

bootchoz Messages postés 88 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 17 septembre 2006
31 juil. 2006 à 12:09
en fait, ce qui m'interesse n'est pas le nombre d'enregistrement de 'table_virtuel' mais la valeur de 'id_dem' qui est la pk d'une autre table nommée demande. Je vide 'table_virtuel' apres chaque validation des changements effectués par l'utilisateur. ca fonctionne en effet si @var=0 mais si @var=nbEnregistrements, il peut etre different de la valeur réelle de 'id_dem'. je ne suis surement pas tres explicite, excuse moi. voila ma new procedure stockee qui fonctionne.merci pour ton aide sim51
CREATE PROCEDURE InsertEtreAttribue @date_deb datetime, @date_exp datetime, @date_sup datetime, @wwid_pers varchar(50), @id_role bigint
AS
 DECLARE @id_pers bigint
 DECLARE @id_dem bigint
 DECLARE @var bigint


 SET @id_pers=(SELECT id_pers FROM personne WHERE [mailto:wwid_pers=@wwid_pers wwid_pers=@wwid_pers]) 


  SET @var=(SELECT DISTINCT id_dem FROM table_virtuel)
 if(@var = NULL)
  SET @id_dem=(SELECT MAX(id_dem)+1 FROM [demande])
 else
  SET @id_dem=@var


  UPDATE role
 SET [mailto:date_deb=@date_deb date_deb=@date_deb], [mailto:date_exp=@date_exp date_exp=@date_exp], [mailto:date_sup=@date_sup date_sup=@date_sup]
 WHERE [mailto:id_role=@id_role id_role=@id_role]


 INSERT INTO table_virtuel (id_dem, id_role, date_deb, date_exp, date_sup)
 VALUES (@id_dem, @id_role, @date_deb, @date_exp, @date_sup)
GO
3
bootchoz Messages postés 88 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 17 septembre 2006
28 juil. 2006 à 14:18
merci pour ta reactivité, mais ca ne fonctionne toujours pas. l'incrementation ne se fait pas.
0
bootchoz Messages postés 88 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 17 septembre 2006
31 juil. 2006 à 09:36
en fait je cherche a savoir s'il y a deja un enregistrement dans la table. si oui, j'attribue le meme id a l'enregistrement suivant, sinon, je vais rechercher dans une autre table le dernier id enregistré, je lui ajoute 1 pour retrouver la nouvelle valeur de l'id.c'est un peu tordu mais c'est la seule solution que j'ai trouvé pour resoudre mon truc.
0
Rejoignez-nous