Bonjour à tous,
Je vais essayer d'être clair.
J'ai une proc stock qui me créé une table temporaire.
Cette procédure est composé de 3 curseurs. Le premier me
prends le numéro de l'utilisateur. Dans ce cursor ce
trouve un autre cursor qui suivant le numéro
d'utilisateur va chercher le ou les groupes pour cette
personne.
Je récupère les groupes de cette facon :
SET @groupesql = ' CONVERT(varchar,groupe_id) = ' +
CONVERT(varchar,@groupe_id) + ' or' + @groupesql
A la fin de cette seconde boucle, j'ouvre un troisième
cursor qui fais ceci :
--On va chercher les acces
Declare cursor_acces CURSOR
FOR SELECT DISTINCT acces.nom FROM acces INNER JOIN
acces_groupe ON acces.id = acces_groupe.acces_id WHERE
CONVERT(varchar,1) = CONVERT(varchar,1) + 'and' +
substring(@groupesql,1,len(@groupesql)-3)
OPEN cursor_acces
etc..
Le problème, c'est que quand j'enlève " + 'and' +
substring(@groupesql,1,len(@groupesql)-3)" la requete
fonctionne sinon, elle ne renvoie aucun résultat alors
que quand je l'affiche et que je l'exécute, tout
fonctionne...
A l'aide :)
Portekoi
Bonjour à tous,
Je vais essayer d'être clair.
J'ai une proc stock qui me créé une table temporaire.
Cette procédure est composé de 3 curseurs. Le premier me
prends le numéro de l'utilisateur. Dans ce cursor ce
trouve un autre cursor qui suivant le numéro
d'utilisateur va chercher le ou les groupes pour cette
personne.
Je récupère les groupes de cette facon :
SET @groupesql = ' CONVERT(varchar,groupe_id) = ' +
CONVERT(varchar,@groupe_id) + ' or' + @groupesql
A la fin de cette seconde boucle, j'ouvre un troisième
cursor qui fais ceci :
--On va chercher les acces
Declare cursor_acces CURSOR
FOR SELECT DISTINCT acces.nom FROM acces INNER JOIN
acces_groupe ON acces.id = acces_groupe.acces_id WHERE
CONVERT(varchar,1) = CONVERT(varchar,1) + 'and' +
substring(@groupesql,1,len(@groupesql)-3)
OPEN cursor_acces
etc..
Le problème, c'est que quand j'enlève " + 'and' +
substring(@groupesql,1,len(@groupesql)-3)" la requete
fonctionne sinon, elle ne renvoie aucun résultat alors
que quand je l'affiche et que je l'exécute, tout
fonctionne...
A l'aide :)
Portekoi
Bonjour à tous,
Je vais essayer d'être clair.
J'ai une proc stock qui me créé une table temporaire.
Cette procédure est composé de 3 curseurs. Le premier me
prends le numéro de l'utilisateur. Dans ce cursor ce
trouve un autre cursor qui suivant le numéro
d'utilisateur va chercher le ou les groupes pour cette
personne.
Je récupère les groupes de cette facon :
SET @groupesql = ' CONVERT(varchar,groupe_id) = ' +
CONVERT(varchar,@groupe_id) + ' or' + @groupesql
A la fin de cette seconde boucle, j'ouvre un troisième
cursor qui fais ceci :
--On va chercher les acces
Declare cursor_acces CURSOR
FOR SELECT DISTINCT acces.nom FROM acces INNER JOIN
acces_groupe ON acces.id = acces_groupe.acces_id WHERE
CONVERT(varchar,1) = CONVERT(varchar,1) + 'and' +
substring(@groupesql,1,len(@groupesql)-3)
OPEN cursor_acces
etc..
Le problème, c'est que quand j'enlève " + 'and' +
substring(@groupesql,1,len(@groupesql)-3)" la requete
fonctionne sinon, elle ne renvoie aucun résultat alors
que quand je l'affiche et que je l'exécute, tout
fonctionne...
A l'aide :)
Portekoi
Voici le code la proc stock :
--La procédure doit me retourner
id - login - agence - acces* - nom_prenom - groupe* -
--* acces ou groupe doivent etre de la forme :
_audit_agence_admin
CREATE PROCEDURE [acces_utilisateur] AS
--déclaratin des variables
DECLARE @groupe varchar(50)
DECLARE @id int,@login varchar(50), @acces varchar(50),
@agence varchar(5), @nom_prenom varchar (100),@email
varchar (150)
DECLARE @groupesql varchar(200), @groupe_id int
declare @groupe_ varchar (150)
declare @SQL varchar (150)
declare @acces_ varchar (150)
--fin de la déclaration
--initialisation
set @groupe_ = ''
SET @groupesql = ''
SET @acces_ = ''
--création de la table temporaire
CREATE TABLE #Table_temporaire (id INT PRIMARY KEY, login
varchar(50), agence varchar(50), acces varchar(150),
nom_prenom varchar (150), groupe varchar (150), email
varchar (150))
DECLARE cursor_1 CURSOR
FOR SELECT DISTINCT utilisateur.id, utilisateur.login,
SUBSTRING(agence.nom, 1, 3) AS agence,
utilisateur.nom_prenom, utilisateur.email
FROM agence_utilisateur INNER JOIN
utilisateur ON agence_utilisateur.utilisateur_id =
utilisateur.id INNER JOIN
agence ON agence_utilisateur.agence_id = agence.id
OPEN cursor_1
FETCH next from cursor_1
INTO @id, @login, @agence, @nom_prenom, @email
WHILE @@Fetch_STATUS = 0
BEGIN
--On va chercher les groupes
Declare cursor_groupe CURSOR
For SELECT DISTINCT groupe.nom, groupe.id FROM groupe
INNER JOIN groupe_utilisateur ON groupe.id =
groupe_utilisateur.groupe_id WHERE
groupe_utilisateur.utilisateur_id = @id
OPEN cursor_groupe
Fetch next from cursor_groupe
INTO @groupe, @groupe_id
WHILE @@Fetch_STATUS = 0
BEGIN
SET @groupe_ = @groupe_ + '_' + @groupe
SET @groupesql = ' CONVERT(varchar,groupe_id) = ' +
CONVERT(varchar,@groupe_id) + ' or' + @groupesql
Fetch next from cursor_groupe
INTO @groupe, @groupe_id
END
CLOSE cursor_groupe;
DEALLOCATE cursor_groupe;
--On va chercher les acces
Declare cursor_acces CURSOR
FOR SELECT DISTINCT acces.nom FROM acces INNER JOIN
acces_groupe ON acces.id = acces_groupe.acces_id WHERE
CONVERT(varchar,1) = CONVERT(varchar,1) + 'and' +
substring(@groupesql,1,len(@groupesql)-3)
-- + CONVERT(varchar,1) = CONVERT(varchar,1) + 'and' +
substring(@groupesql,1,len(@groupesql)-3)
OPEN cursor_acces
Fetch next from cursor_acces
INTO @acces
WHILE @@Fetch_STATUS = 0
BEGIN
SET @acces_ = @acces_ + '_' + @acces
print 'coucou'
Fetch next from cursor_acces
INTO @acces
END
CLOSE cursor_acces;
DEALLOCATE cursor_acces;
--(@@FETCH_STATUS <> -1
--SET @SQL = "SELECT DISTINCT acces.nom FROM acces INNER
JOIN acces_groupe ON acces.id = acces_groupe.acces_id
WHERE " + CONVERT(varchar,1) + "=" + CONVERT(varchar,1)
+ 'and' + substring(@groupesql,1,len(@groupesql)-3)
INSERT INTO #table_temporaire VALUES (@id, @login,
@agence, @acces_, @nom_prenom, SUBSTRING(@groupe_,2,len
(@groupe_)),@email)
set @groupe_ = ''
set @acces_ = ''
set @groupesql=''
FETCH next from cursor_1
INTO @id, @login, @agence, @nom_prenom, @email
END
CLOSE cursor_1;
DEALLOCATE cursor_1;
SELECT * from #table_temporaire
GO
Je débute totalement.... en asp, j'utilise le do while
rs.eof, mais je n'y arrive pas en Transac :(
Et oui je suis [NAIN]Portekoi d'un clan de jeu en ligne :)
A toute
Damien :)
Voici le code la proc stock :
--La procédure doit me retourner
id - login - agence - acces* - nom_prenom - groupe* -
--* acces ou groupe doivent etre de la forme :
_audit_agence_admin
CREATE PROCEDURE [acces_utilisateur] AS
--déclaratin des variables
DECLARE @groupe varchar(50)
DECLARE @id int,@login varchar(50), @acces varchar(50),
@agence varchar(5), @nom_prenom varchar (100),@email
varchar (150)
DECLARE @groupesql varchar(200), @groupe_id int
declare @groupe_ varchar (150)
declare @SQL varchar (150)
declare @acces_ varchar (150)
--fin de la déclaration
--initialisation
set @groupe_ = ''
SET @groupesql = ''
SET @acces_ = ''
--création de la table temporaire
CREATE TABLE #Table_temporaire (id INT PRIMARY KEY, login
varchar(50), agence varchar(50), acces varchar(150),
nom_prenom varchar (150), groupe varchar (150), email
varchar (150))
DECLARE cursor_1 CURSOR
FOR SELECT DISTINCT utilisateur.id, utilisateur.login,
SUBSTRING(agence.nom, 1, 3) AS agence,
utilisateur.nom_prenom, utilisateur.email
FROM agence_utilisateur INNER JOIN
utilisateur ON agence_utilisateur.utilisateur_id =
utilisateur.id INNER JOIN
agence ON agence_utilisateur.agence_id = agence.id
OPEN cursor_1
FETCH next from cursor_1
INTO @id, @login, @agence, @nom_prenom, @email
WHILE @@Fetch_STATUS = 0
BEGIN
--On va chercher les groupes
Declare cursor_groupe CURSOR
For SELECT DISTINCT groupe.nom, groupe.id FROM groupe
INNER JOIN groupe_utilisateur ON groupe.id =
groupe_utilisateur.groupe_id WHERE
groupe_utilisateur.utilisateur_id = @id
OPEN cursor_groupe
Fetch next from cursor_groupe
INTO @groupe, @groupe_id
WHILE @@Fetch_STATUS = 0
BEGIN
SET @groupe_ = @groupe_ + '_' + @groupe
SET @groupesql = ' CONVERT(varchar,groupe_id) = ' +
CONVERT(varchar,@groupe_id) + ' or' + @groupesql
Fetch next from cursor_groupe
INTO @groupe, @groupe_id
END
CLOSE cursor_groupe;
DEALLOCATE cursor_groupe;
--On va chercher les acces
Declare cursor_acces CURSOR
FOR SELECT DISTINCT acces.nom FROM acces INNER JOIN
acces_groupe ON acces.id = acces_groupe.acces_id WHERE
CONVERT(varchar,1) = CONVERT(varchar,1) + 'and' +
substring(@groupesql,1,len(@groupesql)-3)
-- + CONVERT(varchar,1) = CONVERT(varchar,1) + 'and' +
substring(@groupesql,1,len(@groupesql)-3)
OPEN cursor_acces
Fetch next from cursor_acces
INTO @acces
WHILE @@Fetch_STATUS = 0
BEGIN
SET @acces_ = @acces_ + '_' + @acces
print 'coucou'
Fetch next from cursor_acces
INTO @acces
END
CLOSE cursor_acces;
DEALLOCATE cursor_acces;
--(@@FETCH_STATUS <> -1
--SET @SQL = "SELECT DISTINCT acces.nom FROM acces INNER
JOIN acces_groupe ON acces.id = acces_groupe.acces_id
WHERE " + CONVERT(varchar,1) + "=" + CONVERT(varchar,1)
+ 'and' + substring(@groupesql,1,len(@groupesql)-3)
INSERT INTO #table_temporaire VALUES (@id, @login,
@agence, @acces_, @nom_prenom, SUBSTRING(@groupe_,2,len
(@groupe_)),@email)
set @groupe_ = ''
set @acces_ = ''
set @groupesql=''
FETCH next from cursor_1
INTO @id, @login, @agence, @nom_prenom, @email
END
CLOSE cursor_1;
DEALLOCATE cursor_1;
SELECT * from #table_temporaire
GO
Je débute totalement.... en asp, j'utilise le do while
rs.eof, mais je n'y arrive pas en Transac :(
Et oui je suis [NAIN]Portekoi d'un clan de jeu en ligne :)
A toute
Damien :)
Voici le code la proc stock :
--La procédure doit me retourner
id - login - agence - acces* - nom_prenom - groupe* -
--* acces ou groupe doivent etre de la forme :
_audit_agence_admin
CREATE PROCEDURE [acces_utilisateur] AS
--déclaratin des variables
DECLARE @groupe varchar(50)
DECLARE @id int,@login varchar(50), @acces varchar(50),
@agence varchar(5), @nom_prenom varchar (100),@email
varchar (150)
DECLARE @groupesql varchar(200), @groupe_id int
declare @groupe_ varchar (150)
declare @SQL varchar (150)
declare @acces_ varchar (150)
--fin de la déclaration
--initialisation
set @groupe_ = ''
SET @groupesql = ''
SET @acces_ = ''
--création de la table temporaire
CREATE TABLE #Table_temporaire (id INT PRIMARY KEY, login
varchar(50), agence varchar(50), acces varchar(150),
nom_prenom varchar (150), groupe varchar (150), email
varchar (150))
DECLARE cursor_1 CURSOR
FOR SELECT DISTINCT utilisateur.id, utilisateur.login,
SUBSTRING(agence.nom, 1, 3) AS agence,
utilisateur.nom_prenom, utilisateur.email
FROM agence_utilisateur INNER JOIN
utilisateur ON agence_utilisateur.utilisateur_id =
utilisateur.id INNER JOIN
agence ON agence_utilisateur.agence_id = agence.id
OPEN cursor_1
FETCH next from cursor_1
INTO @id, @login, @agence, @nom_prenom, @email
WHILE @@Fetch_STATUS = 0
BEGIN
--On va chercher les groupes
Declare cursor_groupe CURSOR
For SELECT DISTINCT groupe.nom, groupe.id FROM groupe
INNER JOIN groupe_utilisateur ON groupe.id =
groupe_utilisateur.groupe_id WHERE
groupe_utilisateur.utilisateur_id = @id
OPEN cursor_groupe
Fetch next from cursor_groupe
INTO @groupe, @groupe_id
WHILE @@Fetch_STATUS = 0
BEGIN
SET @groupe_ = @groupe_ + '_' + @groupe
SET @groupesql = ' CONVERT(varchar,groupe_id) = ' +
CONVERT(varchar,@groupe_id) + ' or' + @groupesql
Fetch next from cursor_groupe
INTO @groupe, @groupe_id
END
CLOSE cursor_groupe;
DEALLOCATE cursor_groupe;
--On va chercher les acces
Declare cursor_acces CURSOR
FOR SELECT DISTINCT acces.nom FROM acces INNER JOIN
acces_groupe ON acces.id = acces_groupe.acces_id WHERE
CONVERT(varchar,1) = CONVERT(varchar,1) + 'and' +
substring(@groupesql,1,len(@groupesql)-3)
-- + CONVERT(varchar,1) = CONVERT(varchar,1) + 'and' +
substring(@groupesql,1,len(@groupesql)-3)
OPEN cursor_acces
Fetch next from cursor_acces
INTO @acces
WHILE @@Fetch_STATUS = 0
BEGIN
SET @acces_ = @acces_ + '_' + @acces
print 'coucou'
Fetch next from cursor_acces
INTO @acces
END
CLOSE cursor_acces;
DEALLOCATE cursor_acces;
--(@@FETCH_STATUS <> -1
--SET @SQL = "SELECT DISTINCT acces.nom FROM acces INNER
JOIN acces_groupe ON acces.id = acces_groupe.acces_id
WHERE " + CONVERT(varchar,1) + "=" + CONVERT(varchar,1)
+ 'and' + substring(@groupesql,1,len(@groupesql)-3)
INSERT INTO #table_temporaire VALUES (@id, @login,
@agence, @acces_, @nom_prenom, SUBSTRING(@groupe_,2,len
(@groupe_)),@email)
set @groupe_ = ''
set @acces_ = ''
set @groupesql=''
FETCH next from cursor_1
INTO @id, @login, @agence, @nom_prenom, @email
END
CLOSE cursor_1;
DEALLOCATE cursor_1;
SELECT * from #table_temporaire
GO
Je débute totalement.... en asp, j'utilise le do while
rs.eof, mais je n'y arrive pas en Transac :(
Et oui je suis [NAIN]Portekoi d'un clan de jeu en ligne :)
A toute
Damien :)
-----Message d'origine-----
De ma vie je n'ai jamais vu un code aussi débile. Excuse
direct, mais vraiment là je pensais avoir déjà touché le
à ce point c'est épouvantable.
Grosso modo voici une requête qui remplace tout ton code.
A toi de trouver par quoi remplacer les ???. Je ne peut
l'absence d'un jeu d'essai difficile de faire plus
SELECT DISTINCT U.id,
U.login,
SUBSTRING(A.nom, 1, 3) AS agence,
-- l'acces
???,
U.nom_prenom,
-- le groupe
???,
U.email
FROM agence_utilisateur AU
INNER JOIN utilisateur U
ON AU.utilisateur_id = U.id
INNER JOIN agence A
ON AU.agence_id = A.id
INNER JOIN groupe_utilisateur GU
ON GU.utilisateur_id = U.id
INNER JOIN groupe G
ON G.id = GU.groupe_id
INNER JOIN acces AXS
ON AXS.id = AG.acces_id
INNER JOIN acces_groupe AG
ON AXS.id = AG.acces_id
Quelques conseils : apprendre le SQL et indenter tes
comme écriture de merde.. Chapeau !
A +
a écrit:Voici le code la proc stock :
--La procédure doit me retourner
id - login - agence - acces* - nom_prenom - groupe* -
--* acces ou groupe doivent etre de la forme :
_audit_agence_admin
CREATE PROCEDURE [acces_utilisateur] AS
--déclaratin des variables
DECLARE @groupe varchar(50)
DECLARE @id int,@login varchar(50), @acces varchar
@agence varchar(5), @nom_prenom varchar (100),@email
varchar (150)
DECLARE @groupesql varchar(200), @groupe_id int
declare @groupe_ varchar (150)
declare @SQL varchar (150)
declare @acces_ varchar (150)
--fin de la déclaration
--initialisation
set @groupe_ = ''
SET @groupesql = ''
SET @acces_ = ''
--création de la table temporaire
CREATE TABLE #Table_temporaire (id INT PRIMARY KEY,
varchar(50), agence varchar(50), acces varchar(150),
nom_prenom varchar (150), groupe varchar (150), email
varchar (150))
DECLARE cursor_1 CURSOR
FOR SELECT DISTINCT utilisateur.id,
SUBSTRING(agence.nom, 1, 3) AS agence,
utilisateur.nom_prenom, utilisateur.email
FROM agence_utilisateur INNER JOIN
utilisateur ON agence_utilisateur.utilisateur_id =
utilisateur.id INNER JOIN
agence ON agence_utilisateur.agence_id = agence.id
OPEN cursor_1
FETCH next from cursor_1
INTO @id, @login, @agence, @nom_prenom, @email
WHILE @@Fetch_STATUS = 0
BEGIN
--On va chercher les groupes
Declare cursor_groupe CURSOR
For SELECT DISTINCT groupe.nom, groupe.id FROM groupe
INNER JOIN groupe_utilisateur ON groupe.id =
groupe_utilisateur.groupe_id WHERE
groupe_utilisateur.utilisateur_id = @id
OPEN cursor_groupe
Fetch next from cursor_groupe
INTO @groupe, @groupe_id
WHILE @@Fetch_STATUS = 0
BEGIN
SET @groupe_ = @groupe_ + '_' + @groupe
SET @groupesql = ' CONVERT(varchar,groupe_id) = ' +
CONVERT(varchar,@groupe_id) + ' or' + @groupesql
Fetch next from cursor_groupe
INTO @groupe, @groupe_id
END
CLOSE cursor_groupe;
DEALLOCATE cursor_groupe;
--On va chercher les acces
Declare cursor_acces CURSOR
FOR SELECT DISTINCT acces.nom FROM acces INNER JOIN
acces_groupe ON acces.id = acces_groupe.acces_id WHERE
CONVERT(varchar,1) = CONVERT(varchar,1) + 'and' +
substring(@groupesql,1,len(@groupesql)-3)
-- + CONVERT(varchar,1) = CONVERT(varchar,1) + 'and'
substring(@groupesql,1,len(@groupesql)-3)
OPEN cursor_acces
Fetch next from cursor_acces
INTO @acces
WHILE @@Fetch_STATUS = 0
BEGIN
SET @acces_ = @acces_ + '_' + @acces
print 'coucou'
Fetch next from cursor_acces
INTO @acces
END
CLOSE cursor_acces;
DEALLOCATE cursor_acces;
--(@@FETCH_STATUS <> -1
--SET @SQL = "SELECT DISTINCT acces.nom FROM acces
JOIN acces_groupe ON acces.id = acces_groupe.acces_id
WHERE " + CONVERT(varchar,1) + "=" + CONVERT
+ 'and' + substring(@groupesql,1,len(@groupesql)-3)
INSERT INTO #table_temporaire VALUES (@id, @login,
@agence, @acces_, @nom_prenom, SUBSTRING(@groupe_,2,len
(@groupe_)),@email)
set @groupe_ = ''
set @acces_ = ''
set @groupesql=''
FETCH next from cursor_1
INTO @id, @login, @agence, @nom_prenom, @email
END
CLOSE cursor_1;
DEALLOCATE cursor_1;
SELECT * from #table_temporaire
GO
Je débute totalement.... en asp, j'utilise le do while
rs.eof, mais je n'y arrive pas en Transac :(
Et oui je suis [NAIN]Portekoi d'un clan de jeu en
A toute
Damien :)
--
Frédéric BROUARD, MVP SQL Server. Expert SQL /
Livre SQL - col. Référence :
Le site du SQL, pour débutants et pros :
************************ www.datasapiens.com
.
-----Message d'origine-----
De ma vie je n'ai jamais vu un code aussi débile. Excuse
direct, mais vraiment là je pensais avoir déjà touché le
à ce point c'est épouvantable.
Grosso modo voici une requête qui remplace tout ton code.
A toi de trouver par quoi remplacer les ???. Je ne peut
l'absence d'un jeu d'essai difficile de faire plus
SELECT DISTINCT U.id,
U.login,
SUBSTRING(A.nom, 1, 3) AS agence,
-- l'acces
???,
U.nom_prenom,
-- le groupe
???,
U.email
FROM agence_utilisateur AU
INNER JOIN utilisateur U
ON AU.utilisateur_id = U.id
INNER JOIN agence A
ON AU.agence_id = A.id
INNER JOIN groupe_utilisateur GU
ON GU.utilisateur_id = U.id
INNER JOIN groupe G
ON G.id = GU.groupe_id
INNER JOIN acces AXS
ON AXS.id = AG.acces_id
INNER JOIN acces_groupe AG
ON AXS.id = AG.acces_id
Quelques conseils : apprendre le SQL et indenter tes
comme écriture de merde.. Chapeau !
A +
anonymous@discussions.microsoft.com a écrit:
Voici le code la proc stock :
--La procédure doit me retourner
id - login - agence - acces* - nom_prenom - groupe* -
--* acces ou groupe doivent etre de la forme :
_audit_agence_admin
CREATE PROCEDURE [acces_utilisateur] AS
--déclaratin des variables
DECLARE @groupe varchar(50)
DECLARE @id int,@login varchar(50), @acces varchar
@agence varchar(5), @nom_prenom varchar (100),@email
varchar (150)
DECLARE @groupesql varchar(200), @groupe_id int
declare @groupe_ varchar (150)
declare @SQL varchar (150)
declare @acces_ varchar (150)
--fin de la déclaration
--initialisation
set @groupe_ = ''
SET @groupesql = ''
SET @acces_ = ''
--création de la table temporaire
CREATE TABLE #Table_temporaire (id INT PRIMARY KEY,
varchar(50), agence varchar(50), acces varchar(150),
nom_prenom varchar (150), groupe varchar (150), email
varchar (150))
DECLARE cursor_1 CURSOR
FOR SELECT DISTINCT utilisateur.id,
SUBSTRING(agence.nom, 1, 3) AS agence,
utilisateur.nom_prenom, utilisateur.email
FROM agence_utilisateur INNER JOIN
utilisateur ON agence_utilisateur.utilisateur_id =
utilisateur.id INNER JOIN
agence ON agence_utilisateur.agence_id = agence.id
OPEN cursor_1
FETCH next from cursor_1
INTO @id, @login, @agence, @nom_prenom, @email
WHILE @@Fetch_STATUS = 0
BEGIN
--On va chercher les groupes
Declare cursor_groupe CURSOR
For SELECT DISTINCT groupe.nom, groupe.id FROM groupe
INNER JOIN groupe_utilisateur ON groupe.id =
groupe_utilisateur.groupe_id WHERE
groupe_utilisateur.utilisateur_id = @id
OPEN cursor_groupe
Fetch next from cursor_groupe
INTO @groupe, @groupe_id
WHILE @@Fetch_STATUS = 0
BEGIN
SET @groupe_ = @groupe_ + '_' + @groupe
SET @groupesql = ' CONVERT(varchar,groupe_id) = ' +
CONVERT(varchar,@groupe_id) + ' or' + @groupesql
Fetch next from cursor_groupe
INTO @groupe, @groupe_id
END
CLOSE cursor_groupe;
DEALLOCATE cursor_groupe;
--On va chercher les acces
Declare cursor_acces CURSOR
FOR SELECT DISTINCT acces.nom FROM acces INNER JOIN
acces_groupe ON acces.id = acces_groupe.acces_id WHERE
CONVERT(varchar,1) = CONVERT(varchar,1) + 'and' +
substring(@groupesql,1,len(@groupesql)-3)
-- + CONVERT(varchar,1) = CONVERT(varchar,1) + 'and'
substring(@groupesql,1,len(@groupesql)-3)
OPEN cursor_acces
Fetch next from cursor_acces
INTO @acces
WHILE @@Fetch_STATUS = 0
BEGIN
SET @acces_ = @acces_ + '_' + @acces
print 'coucou'
Fetch next from cursor_acces
INTO @acces
END
CLOSE cursor_acces;
DEALLOCATE cursor_acces;
--(@@FETCH_STATUS <> -1
--SET @SQL = "SELECT DISTINCT acces.nom FROM acces
JOIN acces_groupe ON acces.id = acces_groupe.acces_id
WHERE " + CONVERT(varchar,1) + "=" + CONVERT
+ 'and' + substring(@groupesql,1,len(@groupesql)-3)
INSERT INTO #table_temporaire VALUES (@id, @login,
@agence, @acces_, @nom_prenom, SUBSTRING(@groupe_,2,len
(@groupe_)),@email)
set @groupe_ = ''
set @acces_ = ''
set @groupesql=''
FETCH next from cursor_1
INTO @id, @login, @agence, @nom_prenom, @email
END
CLOSE cursor_1;
DEALLOCATE cursor_1;
SELECT * from #table_temporaire
GO
Je débute totalement.... en asp, j'utilise le do while
rs.eof, mais je n'y arrive pas en Transac :(
Et oui je suis [NAIN]Portekoi d'un clan de jeu en
A toute
Damien :)
--
Frédéric BROUARD, MVP SQL Server. Expert SQL /
Livre SQL - col. Référence :
Le site du SQL, pour débutants et pros :
************************ www.datasapiens.com
.
-----Message d'origine-----
De ma vie je n'ai jamais vu un code aussi débile. Excuse
direct, mais vraiment là je pensais avoir déjà touché le
à ce point c'est épouvantable.
Grosso modo voici une requête qui remplace tout ton code.
A toi de trouver par quoi remplacer les ???. Je ne peut
l'absence d'un jeu d'essai difficile de faire plus
SELECT DISTINCT U.id,
U.login,
SUBSTRING(A.nom, 1, 3) AS agence,
-- l'acces
???,
U.nom_prenom,
-- le groupe
???,
U.email
FROM agence_utilisateur AU
INNER JOIN utilisateur U
ON AU.utilisateur_id = U.id
INNER JOIN agence A
ON AU.agence_id = A.id
INNER JOIN groupe_utilisateur GU
ON GU.utilisateur_id = U.id
INNER JOIN groupe G
ON G.id = GU.groupe_id
INNER JOIN acces AXS
ON AXS.id = AG.acces_id
INNER JOIN acces_groupe AG
ON AXS.id = AG.acces_id
Quelques conseils : apprendre le SQL et indenter tes
comme écriture de merde.. Chapeau !
A +
a écrit:Voici le code la proc stock :
--La procédure doit me retourner
id - login - agence - acces* - nom_prenom - groupe* -
--* acces ou groupe doivent etre de la forme :
_audit_agence_admin
CREATE PROCEDURE [acces_utilisateur] AS
--déclaratin des variables
DECLARE @groupe varchar(50)
DECLARE @id int,@login varchar(50), @acces varchar
@agence varchar(5), @nom_prenom varchar (100),@email
varchar (150)
DECLARE @groupesql varchar(200), @groupe_id int
declare @groupe_ varchar (150)
declare @SQL varchar (150)
declare @acces_ varchar (150)
--fin de la déclaration
--initialisation
set @groupe_ = ''
SET @groupesql = ''
SET @acces_ = ''
--création de la table temporaire
CREATE TABLE #Table_temporaire (id INT PRIMARY KEY,
varchar(50), agence varchar(50), acces varchar(150),
nom_prenom varchar (150), groupe varchar (150), email
varchar (150))
DECLARE cursor_1 CURSOR
FOR SELECT DISTINCT utilisateur.id,
SUBSTRING(agence.nom, 1, 3) AS agence,
utilisateur.nom_prenom, utilisateur.email
FROM agence_utilisateur INNER JOIN
utilisateur ON agence_utilisateur.utilisateur_id =
utilisateur.id INNER JOIN
agence ON agence_utilisateur.agence_id = agence.id
OPEN cursor_1
FETCH next from cursor_1
INTO @id, @login, @agence, @nom_prenom, @email
WHILE @@Fetch_STATUS = 0
BEGIN
--On va chercher les groupes
Declare cursor_groupe CURSOR
For SELECT DISTINCT groupe.nom, groupe.id FROM groupe
INNER JOIN groupe_utilisateur ON groupe.id =
groupe_utilisateur.groupe_id WHERE
groupe_utilisateur.utilisateur_id = @id
OPEN cursor_groupe
Fetch next from cursor_groupe
INTO @groupe, @groupe_id
WHILE @@Fetch_STATUS = 0
BEGIN
SET @groupe_ = @groupe_ + '_' + @groupe
SET @groupesql = ' CONVERT(varchar,groupe_id) = ' +
CONVERT(varchar,@groupe_id) + ' or' + @groupesql
Fetch next from cursor_groupe
INTO @groupe, @groupe_id
END
CLOSE cursor_groupe;
DEALLOCATE cursor_groupe;
--On va chercher les acces
Declare cursor_acces CURSOR
FOR SELECT DISTINCT acces.nom FROM acces INNER JOIN
acces_groupe ON acces.id = acces_groupe.acces_id WHERE
CONVERT(varchar,1) = CONVERT(varchar,1) + 'and' +
substring(@groupesql,1,len(@groupesql)-3)
-- + CONVERT(varchar,1) = CONVERT(varchar,1) + 'and'
substring(@groupesql,1,len(@groupesql)-3)
OPEN cursor_acces
Fetch next from cursor_acces
INTO @acces
WHILE @@Fetch_STATUS = 0
BEGIN
SET @acces_ = @acces_ + '_' + @acces
print 'coucou'
Fetch next from cursor_acces
INTO @acces
END
CLOSE cursor_acces;
DEALLOCATE cursor_acces;
--(@@FETCH_STATUS <> -1
--SET @SQL = "SELECT DISTINCT acces.nom FROM acces
JOIN acces_groupe ON acces.id = acces_groupe.acces_id
WHERE " + CONVERT(varchar,1) + "=" + CONVERT
+ 'and' + substring(@groupesql,1,len(@groupesql)-3)
INSERT INTO #table_temporaire VALUES (@id, @login,
@agence, @acces_, @nom_prenom, SUBSTRING(@groupe_,2,len
(@groupe_)),@email)
set @groupe_ = ''
set @acces_ = ''
set @groupesql=''
FETCH next from cursor_1
INTO @id, @login, @agence, @nom_prenom, @email
END
CLOSE cursor_1;
DEALLOCATE cursor_1;
SELECT * from #table_temporaire
GO
Je débute totalement.... en asp, j'utilise le do while
rs.eof, mais je n'y arrive pas en Transac :(
Et oui je suis [NAIN]Portekoi d'un clan de jeu en
A toute
Damien :)
--
Frédéric BROUARD, MVP SQL Server. Expert SQL /
Livre SQL - col. Référence :
Le site du SQL, pour débutants et pros :
************************ www.datasapiens.com
.
-----Message d'origine-----
De ma vie je n'ai jamais vu un code aussi débile. Excuse
direct, mais vraiment là je pensais avoir déjà touché le
à ce point c'est épouvantable.
Grosso modo voici une requête qui remplace tout ton code.
A toi de trouver par quoi remplacer les ???. Je ne peut
l'absence d'un jeu d'essai difficile de faire plus
SELECT DISTINCT U.id,
U.login,
SUBSTRING(A.nom, 1, 3) AS agence,
-- l'acces
???,
U.nom_prenom,
-- le groupe
???,
U.email
FROM agence_utilisateur AU
INNER JOIN utilisateur U
ON AU.utilisateur_id = U.id
INNER JOIN agence A
ON AU.agence_id = A.id
INNER JOIN groupe_utilisateur GU
ON GU.utilisateur_id = U.id
INNER JOIN groupe G
ON G.id = GU.groupe_id
INNER JOIN acces AXS
ON AXS.id = AG.acces_id
INNER JOIN acces_groupe AG
ON AXS.id = AG.acces_id
Quelques conseils : apprendre le SQL et indenter tes
comme écriture de merde.. Chapeau !
A +
a écrit:Voici le code la proc stock :
--La procédure doit me retourner
id - login - agence - acces* - nom_prenom - groupe* -
--* acces ou groupe doivent etre de la forme :
_audit_agence_admin
CREATE PROCEDURE [acces_utilisateur] AS
--déclaratin des variables
DECLARE @groupe varchar(50)
DECLARE @id int,@login varchar(50), @acces varchar
@agence varchar(5), @nom_prenom varchar (100),@email
varchar (150)
DECLARE @groupesql varchar(200), @groupe_id int
declare @groupe_ varchar (150)
declare @SQL varchar (150)
declare @acces_ varchar (150)
--fin de la déclaration
--initialisation
set @groupe_ = ''
SET @groupesql = ''
SET @acces_ = ''
--création de la table temporaire
CREATE TABLE #Table_temporaire (id INT PRIMARY KEY,
varchar(50), agence varchar(50), acces varchar(150),
nom_prenom varchar (150), groupe varchar (150), email
varchar (150))
DECLARE cursor_1 CURSOR
FOR SELECT DISTINCT utilisateur.id,
SUBSTRING(agence.nom, 1, 3) AS agence,
utilisateur.nom_prenom, utilisateur.email
FROM agence_utilisateur INNER JOIN
utilisateur ON agence_utilisateur.utilisateur_id >> utilisateur.id INNER JOIN
agence ON agence_utilisateur.agence_id = agence.id
OPEN cursor_1
FETCH next from cursor_1
INTO @id, @login, @agence, @nom_prenom, @email
WHILE @@Fetch_STATUS = 0
BEGIN
--On va chercher les groupes
Declare cursor_groupe CURSOR
For SELECT DISTINCT groupe.nom, groupe.id FROM groupe
INNER JOIN groupe_utilisateur ON groupe.id >> groupe_utilisateur.groupe_id WHERE
groupe_utilisateur.utilisateur_id = @id
OPEN cursor_groupe
Fetch next from cursor_groupe
INTO @groupe, @groupe_id
WHILE @@Fetch_STATUS = 0
BEGIN
SET @groupe_ = @groupe_ + '_' + @groupe
SET @groupesql = ' CONVERT(varchar,groupe_id) = ' +
CONVERT(varchar,@groupe_id) + ' or' + @groupesql
Fetch next from cursor_groupe
INTO @groupe, @groupe_id
END
CLOSE cursor_groupe;
DEALLOCATE cursor_groupe;
--On va chercher les acces
Declare cursor_acces CURSOR
FOR SELECT DISTINCT acces.nom FROM acces INNER JOIN
acces_groupe ON acces.id = acces_groupe.acces_id WHERE
CONVERT(varchar,1) = CONVERT(varchar,1) + 'and' +
substring(@groupesql,1,len(@groupesql)-3)
-- + CONVERT(varchar,1) = CONVERT(varchar,1) + 'and'
substring(@groupesql,1,len(@groupesql)-3)
OPEN cursor_acces
Fetch next from cursor_acces
INTO @acces
WHILE @@Fetch_STATUS = 0
BEGIN
SET @acces_ = @acces_ + '_' + @acces
print 'coucou'
Fetch next from cursor_acces
INTO @acces
END
CLOSE cursor_acces;
DEALLOCATE cursor_acces;
--(@@FETCH_STATUS <> -1
--SET @SQL = "SELECT DISTINCT acces.nom FROM acces
JOIN acces_groupe ON acces.id = acces_groupe.acces_id
WHERE " + CONVERT(varchar,1) + "=" + CONVERT
+ 'and' + substring(@groupesql,1,len(@groupesql)-3)
INSERT INTO #table_temporaire VALUES (@id, @login,
@agence, @acces_, @nom_prenom, SUBSTRING(@groupe_,2,len
(@groupe_)),@email)
set @groupe_ = ''
set @acces_ = ''
set @groupesql=''
FETCH next from cursor_1
INTO @id, @login, @agence, @nom_prenom, @email
END
CLOSE cursor_1;
DEALLOCATE cursor_1;
SELECT * from #table_temporaire
GO
Je débute totalement.... en asp, j'utilise le do while
rs.eof, mais je n'y arrive pas en Transac :(
Et oui je suis [NAIN]Portekoi d'un clan de jeu en
A toute
Damien :)
--
Frédéric BROUARD, MVP SQL Server. Expert SQL /
Livre SQL - col. Référence :
Le site du SQL, pour débutants et pros :
************************ www.datasapiens.com
.
-----Message d'origine-----
De ma vie je n'ai jamais vu un code aussi débile. Excuse
direct, mais vraiment là je pensais avoir déjà touché le
à ce point c'est épouvantable.
Grosso modo voici une requête qui remplace tout ton code.
A toi de trouver par quoi remplacer les ???. Je ne peut
l'absence d'un jeu d'essai difficile de faire plus
SELECT DISTINCT U.id,
U.login,
SUBSTRING(A.nom, 1, 3) AS agence,
-- l'acces
???,
U.nom_prenom,
-- le groupe
???,
U.email
FROM agence_utilisateur AU
INNER JOIN utilisateur U
ON AU.utilisateur_id = U.id
INNER JOIN agence A
ON AU.agence_id = A.id
INNER JOIN groupe_utilisateur GU
ON GU.utilisateur_id = U.id
INNER JOIN groupe G
ON G.id = GU.groupe_id
INNER JOIN acces AXS
ON AXS.id = AG.acces_id
INNER JOIN acces_groupe AG
ON AXS.id = AG.acces_id
Quelques conseils : apprendre le SQL et indenter tes
comme écriture de merde.. Chapeau !
A +
anonymous@discussions.microsoft.com a écrit:
Voici le code la proc stock :
--La procédure doit me retourner
id - login - agence - acces* - nom_prenom - groupe* -
--* acces ou groupe doivent etre de la forme :
_audit_agence_admin
CREATE PROCEDURE [acces_utilisateur] AS
--déclaratin des variables
DECLARE @groupe varchar(50)
DECLARE @id int,@login varchar(50), @acces varchar
@agence varchar(5), @nom_prenom varchar (100),@email
varchar (150)
DECLARE @groupesql varchar(200), @groupe_id int
declare @groupe_ varchar (150)
declare @SQL varchar (150)
declare @acces_ varchar (150)
--fin de la déclaration
--initialisation
set @groupe_ = ''
SET @groupesql = ''
SET @acces_ = ''
--création de la table temporaire
CREATE TABLE #Table_temporaire (id INT PRIMARY KEY,
varchar(50), agence varchar(50), acces varchar(150),
nom_prenom varchar (150), groupe varchar (150), email
varchar (150))
DECLARE cursor_1 CURSOR
FOR SELECT DISTINCT utilisateur.id,
SUBSTRING(agence.nom, 1, 3) AS agence,
utilisateur.nom_prenom, utilisateur.email
FROM agence_utilisateur INNER JOIN
utilisateur ON agence_utilisateur.utilisateur_id >> utilisateur.id INNER JOIN
agence ON agence_utilisateur.agence_id = agence.id
OPEN cursor_1
FETCH next from cursor_1
INTO @id, @login, @agence, @nom_prenom, @email
WHILE @@Fetch_STATUS = 0
BEGIN
--On va chercher les groupes
Declare cursor_groupe CURSOR
For SELECT DISTINCT groupe.nom, groupe.id FROM groupe
INNER JOIN groupe_utilisateur ON groupe.id >> groupe_utilisateur.groupe_id WHERE
groupe_utilisateur.utilisateur_id = @id
OPEN cursor_groupe
Fetch next from cursor_groupe
INTO @groupe, @groupe_id
WHILE @@Fetch_STATUS = 0
BEGIN
SET @groupe_ = @groupe_ + '_' + @groupe
SET @groupesql = ' CONVERT(varchar,groupe_id) = ' +
CONVERT(varchar,@groupe_id) + ' or' + @groupesql
Fetch next from cursor_groupe
INTO @groupe, @groupe_id
END
CLOSE cursor_groupe;
DEALLOCATE cursor_groupe;
--On va chercher les acces
Declare cursor_acces CURSOR
FOR SELECT DISTINCT acces.nom FROM acces INNER JOIN
acces_groupe ON acces.id = acces_groupe.acces_id WHERE
CONVERT(varchar,1) = CONVERT(varchar,1) + 'and' +
substring(@groupesql,1,len(@groupesql)-3)
-- + CONVERT(varchar,1) = CONVERT(varchar,1) + 'and'
substring(@groupesql,1,len(@groupesql)-3)
OPEN cursor_acces
Fetch next from cursor_acces
INTO @acces
WHILE @@Fetch_STATUS = 0
BEGIN
SET @acces_ = @acces_ + '_' + @acces
print 'coucou'
Fetch next from cursor_acces
INTO @acces
END
CLOSE cursor_acces;
DEALLOCATE cursor_acces;
--(@@FETCH_STATUS <> -1
--SET @SQL = "SELECT DISTINCT acces.nom FROM acces
JOIN acces_groupe ON acces.id = acces_groupe.acces_id
WHERE " + CONVERT(varchar,1) + "=" + CONVERT
+ 'and' + substring(@groupesql,1,len(@groupesql)-3)
INSERT INTO #table_temporaire VALUES (@id, @login,
@agence, @acces_, @nom_prenom, SUBSTRING(@groupe_,2,len
(@groupe_)),@email)
set @groupe_ = ''
set @acces_ = ''
set @groupesql=''
FETCH next from cursor_1
INTO @id, @login, @agence, @nom_prenom, @email
END
CLOSE cursor_1;
DEALLOCATE cursor_1;
SELECT * from #table_temporaire
GO
Je débute totalement.... en asp, j'utilise le do while
rs.eof, mais je n'y arrive pas en Transac :(
Et oui je suis [NAIN]Portekoi d'un clan de jeu en
A toute
Damien :)
--
Frédéric BROUARD, MVP SQL Server. Expert SQL /
Livre SQL - col. Référence :
Le site du SQL, pour débutants et pros :
************************ www.datasapiens.com
.
-----Message d'origine-----
De ma vie je n'ai jamais vu un code aussi débile. Excuse
direct, mais vraiment là je pensais avoir déjà touché le
à ce point c'est épouvantable.
Grosso modo voici une requête qui remplace tout ton code.
A toi de trouver par quoi remplacer les ???. Je ne peut
l'absence d'un jeu d'essai difficile de faire plus
SELECT DISTINCT U.id,
U.login,
SUBSTRING(A.nom, 1, 3) AS agence,
-- l'acces
???,
U.nom_prenom,
-- le groupe
???,
U.email
FROM agence_utilisateur AU
INNER JOIN utilisateur U
ON AU.utilisateur_id = U.id
INNER JOIN agence A
ON AU.agence_id = A.id
INNER JOIN groupe_utilisateur GU
ON GU.utilisateur_id = U.id
INNER JOIN groupe G
ON G.id = GU.groupe_id
INNER JOIN acces AXS
ON AXS.id = AG.acces_id
INNER JOIN acces_groupe AG
ON AXS.id = AG.acces_id
Quelques conseils : apprendre le SQL et indenter tes
comme écriture de merde.. Chapeau !
A +
a écrit:Voici le code la proc stock :
--La procédure doit me retourner
id - login - agence - acces* - nom_prenom - groupe* -
--* acces ou groupe doivent etre de la forme :
_audit_agence_admin
CREATE PROCEDURE [acces_utilisateur] AS
--déclaratin des variables
DECLARE @groupe varchar(50)
DECLARE @id int,@login varchar(50), @acces varchar
@agence varchar(5), @nom_prenom varchar (100),@email
varchar (150)
DECLARE @groupesql varchar(200), @groupe_id int
declare @groupe_ varchar (150)
declare @SQL varchar (150)
declare @acces_ varchar (150)
--fin de la déclaration
--initialisation
set @groupe_ = ''
SET @groupesql = ''
SET @acces_ = ''
--création de la table temporaire
CREATE TABLE #Table_temporaire (id INT PRIMARY KEY,
varchar(50), agence varchar(50), acces varchar(150),
nom_prenom varchar (150), groupe varchar (150), email
varchar (150))
DECLARE cursor_1 CURSOR
FOR SELECT DISTINCT utilisateur.id,
SUBSTRING(agence.nom, 1, 3) AS agence,
utilisateur.nom_prenom, utilisateur.email
FROM agence_utilisateur INNER JOIN
utilisateur ON agence_utilisateur.utilisateur_id >> utilisateur.id INNER JOIN
agence ON agence_utilisateur.agence_id = agence.id
OPEN cursor_1
FETCH next from cursor_1
INTO @id, @login, @agence, @nom_prenom, @email
WHILE @@Fetch_STATUS = 0
BEGIN
--On va chercher les groupes
Declare cursor_groupe CURSOR
For SELECT DISTINCT groupe.nom, groupe.id FROM groupe
INNER JOIN groupe_utilisateur ON groupe.id >> groupe_utilisateur.groupe_id WHERE
groupe_utilisateur.utilisateur_id = @id
OPEN cursor_groupe
Fetch next from cursor_groupe
INTO @groupe, @groupe_id
WHILE @@Fetch_STATUS = 0
BEGIN
SET @groupe_ = @groupe_ + '_' + @groupe
SET @groupesql = ' CONVERT(varchar,groupe_id) = ' +
CONVERT(varchar,@groupe_id) + ' or' + @groupesql
Fetch next from cursor_groupe
INTO @groupe, @groupe_id
END
CLOSE cursor_groupe;
DEALLOCATE cursor_groupe;
--On va chercher les acces
Declare cursor_acces CURSOR
FOR SELECT DISTINCT acces.nom FROM acces INNER JOIN
acces_groupe ON acces.id = acces_groupe.acces_id WHERE
CONVERT(varchar,1) = CONVERT(varchar,1) + 'and' +
substring(@groupesql,1,len(@groupesql)-3)
-- + CONVERT(varchar,1) = CONVERT(varchar,1) + 'and'
substring(@groupesql,1,len(@groupesql)-3)
OPEN cursor_acces
Fetch next from cursor_acces
INTO @acces
WHILE @@Fetch_STATUS = 0
BEGIN
SET @acces_ = @acces_ + '_' + @acces
print 'coucou'
Fetch next from cursor_acces
INTO @acces
END
CLOSE cursor_acces;
DEALLOCATE cursor_acces;
--(@@FETCH_STATUS <> -1
--SET @SQL = "SELECT DISTINCT acces.nom FROM acces
JOIN acces_groupe ON acces.id = acces_groupe.acces_id
WHERE " + CONVERT(varchar,1) + "=" + CONVERT
+ 'and' + substring(@groupesql,1,len(@groupesql)-3)
INSERT INTO #table_temporaire VALUES (@id, @login,
@agence, @acces_, @nom_prenom, SUBSTRING(@groupe_,2,len
(@groupe_)),@email)
set @groupe_ = ''
set @acces_ = ''
set @groupesql=''
FETCH next from cursor_1
INTO @id, @login, @agence, @nom_prenom, @email
END
CLOSE cursor_1;
DEALLOCATE cursor_1;
SELECT * from #table_temporaire
GO
Je débute totalement.... en asp, j'utilise le do while
rs.eof, mais je n'y arrive pas en Transac :(
Et oui je suis [NAIN]Portekoi d'un clan de jeu en
A toute
Damien :)
--
Frédéric BROUARD, MVP SQL Server. Expert SQL /
Livre SQL - col. Référence :
Le site du SQL, pour débutants et pros :
************************ www.datasapiens.com
.
J'ajoute ceci : Je n'ai fais que reprendre le code qui ce
trouve sur cette page :
http://www.laltruiste.com/document.php?
url=http://www.laltruiste.com/courssql/cmd_curseur.html
Pour ce qui est de la structure de ma base, voici les
tables :
acces // Liste les accès possible
acces_groupe // croisement d'un id accès et d'un id groupe
agence // liste des agences
agence_utilisateur // croisement d'un id utilisateur et
d'un id agence
groupe // Liste les groupes
groupe_utilisateur // Croise les groupes avec les
utilisateurs ( admin-agence etc... )
utilisateur liste les utilisateurs
Voilà mon schéma de base. J'ai biensur fais un diagramme
sous Sql server et tout fonctionne très bien.
Ce que je veux, c'est récupérer les accès et les groupes
en une seule requete. j'avais donc pensé à une procédure
stockée afin de boucler et ainsi récupérer les différents
accès pour un groupe. Pareil pour les groupes, un
utilisateur peut appartenir à plusieurs groupes, donc
récupérer tous les groupes dans cette même requete.
Si tu trouves quelque chose de moins "débile" je suis
preneur.
Portekoi
PS : J'ai pas tilté tout de suite, mais j'ai acheté un de
tes livres.
PS2 : Désolé pour mon post précédent mais j'ai vraiment
l'impression que tu n'as pas compris ma demande, d'ou ta
réponse 'débile' si je puis dire.
J'ajoute ceci : Je n'ai fais que reprendre le code qui ce
trouve sur cette page :
http://www.laltruiste.com/document.php?
url=http://www.laltruiste.com/courssql/cmd_curseur.html
Pour ce qui est de la structure de ma base, voici les
tables :
acces // Liste les accès possible
acces_groupe // croisement d'un id accès et d'un id groupe
agence // liste des agences
agence_utilisateur // croisement d'un id utilisateur et
d'un id agence
groupe // Liste les groupes
groupe_utilisateur // Croise les groupes avec les
utilisateurs ( admin-agence etc... )
utilisateur liste les utilisateurs
Voilà mon schéma de base. J'ai biensur fais un diagramme
sous Sql server et tout fonctionne très bien.
Ce que je veux, c'est récupérer les accès et les groupes
en une seule requete. j'avais donc pensé à une procédure
stockée afin de boucler et ainsi récupérer les différents
accès pour un groupe. Pareil pour les groupes, un
utilisateur peut appartenir à plusieurs groupes, donc
récupérer tous les groupes dans cette même requete.
Si tu trouves quelque chose de moins "débile" je suis
preneur.
Portekoi
PS : J'ai pas tilté tout de suite, mais j'ai acheté un de
tes livres.
PS2 : Désolé pour mon post précédent mais j'ai vraiment
l'impression que tu n'as pas compris ma demande, d'ou ta
réponse 'débile' si je puis dire.
J'ajoute ceci : Je n'ai fais que reprendre le code qui ce
trouve sur cette page :
http://www.laltruiste.com/document.php?
url=http://www.laltruiste.com/courssql/cmd_curseur.html
Pour ce qui est de la structure de ma base, voici les
tables :
acces // Liste les accès possible
acces_groupe // croisement d'un id accès et d'un id groupe
agence // liste des agences
agence_utilisateur // croisement d'un id utilisateur et
d'un id agence
groupe // Liste les groupes
groupe_utilisateur // Croise les groupes avec les
utilisateurs ( admin-agence etc... )
utilisateur liste les utilisateurs
Voilà mon schéma de base. J'ai biensur fais un diagramme
sous Sql server et tout fonctionne très bien.
Ce que je veux, c'est récupérer les accès et les groupes
en une seule requete. j'avais donc pensé à une procédure
stockée afin de boucler et ainsi récupérer les différents
accès pour un groupe. Pareil pour les groupes, un
utilisateur peut appartenir à plusieurs groupes, donc
récupérer tous les groupes dans cette même requete.
Si tu trouves quelque chose de moins "débile" je suis
preneur.
Portekoi
PS : J'ai pas tilté tout de suite, mais j'ai acheté un de
tes livres.
PS2 : Désolé pour mon post précédent mais j'ai vraiment
l'impression que tu n'as pas compris ma demande, d'ou ta
réponse 'débile' si je puis dire.