lilux Hardware : ludvd Achats/Ventes : Ashe, kabyll, 1 utilisateur anonyme et 26 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

Aide: SQL statement - PRINT.

 
n°37644
chappy83
_+_+_+_
Posté le 15-03-2006 à 09:05:24  profilanswer
 

Bonjour,
 
Me revoila avec un probléme de fonction PRINT:
 

Code :
  1. CREATE PROCEDURE GET_ALL_DEPARTMENTS  AS
  2. DECLARE @DEP_ID INT, @DEP_NAME VARCHAR (50), @EMPL_DSID VARCHAR (50)
  3. DECLARE departments_cursor CURSOR
  4.  FOR SELECT DISTINCT DEP_ID, DEP_NAME FROM TBL_DEPARTMENT
  5.   OPEN departments_cursor
  6.  FETCH NEXT FROM departments_cursor
  7.   INTO @DEP_ID, @DEP_NAME
  8.  SELECT     dbo.TBL_EMPLOYEES.EMPL_DSID
  9.      FROM         dbo.TBL_DEPARTMENT INNER JOIN
  10.                            dbo.TBL_ENTITIES_RELATIONSHIP ON dbo.TBL_DEPARTMENT.DEP_ID = dbo.TBL_ENTITIES_RELATIONSHIP.ENT_RELSHIP_PARENT INNER JOIN
  11.                            dbo.TBL_EMPLOYEES ON dbo.TBL_ENTITIES_RELATIONSHIP.ENT_RELSHIP_CHILD = dbo.TBL_EMPLOYEES.EMPL_ID
  12.      WHERE     (dbo.TBL_ENTITIES_RELATIONSHIP.ENT_RELSHIP_PARENT = @DEP_ID)
  13.   PRINT 'ONDER DIT ' + @DEP_NAME + ' DEPARTEMENT ZIJN DE VOLGENDE GEBRUIKERS'
  14.  WHILE @@FETCH_STATUS = 0
  15.    BEGIN
  16.    PRINT @DEP_ID
  17.    PRINT @DEP_NAME
  18.    FETCH NEXT FROM departments_cursor
  19.    INTO @DEP_ID, @DEP_NAME
  20.      SELECT     dbo.TBL_EMPLOYEES.EMPL_DSID
  21.      FROM         dbo.TBL_DEPARTMENT INNER JOIN
  22.                            dbo.TBL_ENTITIES_RELATIONSHIP ON dbo.TBL_DEPARTMENT.DEP_ID = dbo.TBL_ENTITIES_RELATIONSHIP.ENT_RELSHIP_PARENT INNER JOIN
  23.                            dbo.TBL_EMPLOYEES ON dbo.TBL_ENTITIES_RELATIONSHIP.ENT_RELSHIP_CHILD = dbo.TBL_EMPLOYEES.EMPL_ID
  24.      WHERE     (dbo.TBL_ENTITIES_RELATIONSHIP.ENT_RELSHIP_PARENT = @DEP_ID)
  25.   END
  26.   CLOSE departments_cursor
  27.  DEALLOCATE departments_cursor
  28. GO


n°37645
chappy83
_+_+_+_
Posté le 15-03-2006 à 09:06:42  profilanswer
 

Donc le probléme ce situe sur la ligne 15,19,20. Impossible de afficher les print. Je teste ce SP dans le query analyser de MS Sql 2000.

n°37646
Ashe
reenignE esreveR
Posté le 15-03-2006 à 09:10:41  profilanswer
 

Le select entre le curseur et le while il sert a quoi?


---------------
Globe trotter/SDF - Namur, Belgique
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°37647
chappy83
_+_+_+_
Posté le 15-03-2006 à 09:13:41  profilanswer
 

Si je ne le met pas la, je n'ai pas de output du premier membrre du group, je recois que les second ...

n°37648
Ashe
reenignE esreveR
Posté le 15-03-2006 à 09:22:48  profilanswer
 

Ben wai mais pour debugger ton truc ce serait + simple de mettre que le strict necessaire (donc le curseur et son while), puis une fois que ca fonctionne tu rajoutes le reste...


---------------
Globe trotter/SDF - Namur, Belgique
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°37649
chappy83
_+_+_+_
Posté le 15-03-2006 à 09:24:58  profilanswer
 

Merci du conseil. Je vais chipoter et voir ce que sa donne.

n°37650
mup
Triple buse
Posté le 15-03-2006 à 09:29:31  profilanswer
 

Stou pourri comme tu codes ça, sans vouloir être méchant...
 
Tu ne peux pas faire plutôt déclarer un tupple, style rdepartments departments_cursor%rowtype pour ensuite y affecter chaque contenu de ligne de ton curseur ??
 
Parce que là c'est le bronx entre tes déclarations et le reste... :/
 
Exemple :  

Code :
  1. declare
  2.    curTarId number( 12 );
  3.    nexTarId number( 12 );
  4.    newTarId1 number( 12 );
  5.    newTarId2 number( 12 );
  6.    taux number( 10,5 );
  7.    monaie varchar2( 5 );
  8.    curIdA number( 12 );
  9.    curIdV number( 12 );
  10.    cursor crPrices is
  11.    select
  12.       ***
  13.    from
  14.       ***
  15.    where
  16.       ***
  17.    price crPrices%rowtype;
  18. begin
  19. --
  20. -- initialisation variables
  21. --
  22.    open crPrices;
  23.    loop
  24.       fetch crPrices into price;
  25.   exit when crPrices%notfound;
  26.       nexTarId := price.PTC_TARIFF_ID;
  27. --
  28. -- Moultes traitements
  29. --
  30.   curTarId := nexTarId;
  31.    end loop;
  32.    close crPrices; 
  33. end;


 
Edit : Virage de tout le traitement sinon il y en a 300 lignes... :ddr:


Message édité par mup le 15-03-2006 à 09:32:28

---------------
Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes... (Shadok)
n°37660
chappy83
_+_+_+_
Posté le 15-03-2006 à 11:05:16  profilanswer
 

Bon voila sa fonctionne mais il y a encore des problémes. Voici un 2 eme curseur que je veut introduire sur ce select mais il me donne une faute pour le FOR .
 

Code :
  1. DECLARE @EMPL_DSID_CURSOR CURSOR
  2. FOR SELECT DISTINCT dbo.TBL_EMPLOYEES.EMPL_DSID FROM dbo.TBL_DEPARTMENT
  3.         INNER JOIN dbo.TBL_ENTITIES_RELATIONSHIP ON dbo.TBL_DEPARTMENT.DEP_ID =        dbo.TBL_ENTITIES_RELATIONSHIP.ENT_RELSHIP_PARENT
  4. INNER JOIN dbo.TBL_EMPLOYEES ON dbo.TBL_ENTITIES_RELATIONSHIP.ENT_RELSHIP_CHILD = dbo.TBL_EMPLOYEES.EMPL_ID
  5. WHERE     (dbo.TBL_ENTITIES_RELATIONSHIP.ENT_RELSHIP_PARENT = @DEP_ID)
  6.         OPEN @EMPL_DSID_CURSOR
  7. FETCH NEXT FROM @EMPL_DSID_CURSOR
  8.         INTO @EMPL_DSID
  9. WHILE @@FETCH_STATUS = 0
  10.  BEGIN
  11.   FETCH NEXT FROM @EMPL_DSID_CURSOR
  12.   INTO @EMPL_DSID
  13.  END


Message édité par chappy83 le 15-03-2006 à 11:06:29
n°37663
Ashe
reenignE esreveR
Posté le 15-03-2006 à 11:08:49  profilanswer
 

2eme curseur neste dans le premier ou c'est apres?
edit: jme souviens plus mais en t-sql les declare doivent pas aller au debut de la SP comme en C89?


Message édité par Ashe le 15-03-2006 à 11:09:21

---------------
Globe trotter/SDF - Namur, Belgique
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°37666
sebx
boulet cherche canon
Posté le 15-03-2006 à 11:14:44  profilanswer
 

je crois pas non  :)


---------------
Célibataire & béhémiste de service
Gentil Organisateur des rencontres matbe
JH 27 ans, bon salaire, propriétaire, roulant en berline Allemande cherche femme pour mariage, bébés et + si affinités
n°37668
chappy83
_+_+_+_
Posté le 15-03-2006 à 11:16:08  profilanswer
 

2eme curseur neste dans le premier ou c'est apres?  
--> il est nesté dans le 2 eme,

n°37671
Ashe
reenignE esreveR
Posté le 15-03-2006 à 11:20:42  profilanswer
 

Ca risque un poil de poser probleme au niveau du @@fetch_status non?
('fin remarque vu qu'ils sont pas mis a jour en meme temps, at la limite pourquoi pas)
Sinon tu pourrais poster la SP complete?


Message édité par Ashe le 15-03-2006 à 11:21:40

---------------
Globe trotter/SDF - Namur, Belgique
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe

Aller à :
Ajouter une réponse