begin process at 2008 08 08 23:15:15
1 223 648 membres
406 nouveaux aujourd'hui
14 230 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : utilisation de IsEmpty() [ SQL Server, MSDE, SQL Express / Functions ] (bootchoz)

utilisation de IsEmpty() le 28/07/2006 11:54:23

bootchoz
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

Re : utilisation de IsEmpty() le 28/07/2006 13:20:19

sim51
Membre Club

Bonjour,

Il me semble que normalement le test est : if @var is null

Essaye avec ça, si cela ne marche pas ba je chercherais

Bonne continuation.

N'oubliez d'aller voir le règlement de C-S ici
N'oubliez pas de cliquer sur réponse acceptée si la réponse vous convient !!!

Re : utilisation de IsEmpty() le 28/07/2006 14:18:11

bootchoz

merci pour ta reactivité, mais ca ne fonctionne toujours pas. l'incrementation ne se fait pas.


Re : utilisation de IsEmpty() le 28/07/2006 16:47:49

sim51
Membre Club

re,

j'avais pas vu que @var était un tableau (@var =(SELECT DISTINCT id FROM table))
Mais je ne comprend pas ce que tu veux faire. Pourquoi fais tu un select distinct id from table ? Ce ne serait pas par hasard select count(distinct id) from table que tu veux ?

N'oubliez d'aller voir le règlement de C-S ici
N'oubliez pas de cliquer sur réponse acceptée si la réponse vous convient !!!

Re : utilisation de IsEmpty() le 31/07/2006 09:36:32

bootchoz
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.

Re : utilisation de IsEmpty() le 31/07/2006 11:46:05

sim51
Membre Club
Re,
Donc oui c'est bien ce que je pensais, je ne vois pas le pourquoi de l'utilisation de l'affectation de a variable.
Si ti veux savoir si ta table est vide ou pas il te suffit de fair cela :

SET @var=(SELECT COUNT DISTINCT id_dem FROM table_virtuel)

@var va donc te retourner le nombre d'enregistrement que la requete SELECT DISTINCT id_dem FROM table_virtuel contient.
Ensute pour les tests c'est tout simple :

IF(@var = 0)
  SET @id_dem=((SELECT MAX(id_dem) FROM [demande])+1)
ELSE
  SET @id_dem=@var

N'oubliez d'aller voir le règlement de C-S ici
N'oubliez pas de cliquer sur réponse acceptée si la réponse vous convient !!!

Re : utilisation de IsEmpty() le 31/07/2006 12:09:59

bootchoz
Réponse acceptée !

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 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 date_deb=@date_deb, date_exp=@date_exp, date_sup=@date_sup
 WHERE 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



Classé sous : set, var, select, id, dem

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS