Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

C'est une erreur que j'ai jamais vue !!!

9 réponses
Avatar
MrChris
Salut !
Erreur du serveur dans l'application '/AspNetForums'.
----------------------------------------------------------------------------
----

Impossible de résoudre le classement en conflit de l'opération equal to.
Description : Une exception non gérée s'est produite au moment de
l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour
plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.Data.SqlClient.SqlException: Impossible de
résoudre le classement en conflit de l'opération equal to.

Erreur source:


Une exception non gérée s'est produite lors de l'exécution de la
demande Web actuelle. Les informations relatives à l'origine et
l'emplacement de l'exception peuvent être identifiées en utilisant la trace
de la pile d'exception ci-dessous.


Trace de la pile:


[SqlException: Impossible de résoudre le classement en conflit de
l'opération equal to.]
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream)
System.Data.SqlClient.SqlCommand.ExecuteReader()
AspNetForums.Data.SqlDataProvider.GetSiteStatistics() +109
AspNetForums.Components.Statistics.GetSiteStatistics() +121
AspNetForums.Controls.SiteStats.InitializeSkin(Control skin) +20
AspNetForums.Controls.SkinnedForumWebControl.CreateChildControls() +24
System.Web.UI.Control.EnsureChildControls()
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Page.ProcessRequestMain()





----------------------------------------------------------------------------
----

Informations sur la version : Version Microsoft .NET Framework
:1.1.4322.573; Version ASP.NET :1.1.4322.573

Des Infos ???
Comment la résoudre ???
Merci
MrChris

9 réponses

Avatar
Patrice Scribe
Voir ce que donne la requête exécutée directement via Query Analyzer.

A priori, la requête SQL essaie de comparer deux colonnes qui n'utilisent
pas le même "COLLATE" ("jeux de caractères"/tri/comparaison).

Cf la partie qui traite de ce sujet dans la doc en ligne et voir comment
résoudre le problème (changement de COLLATE pour remettre les choses
d'aplomb ou ajout d'une clause COLLATE dans la requête si la différence est
justifiée ?)



--

"MrChris" a écrit dans le
message de news:
Salut !
Erreur du serveur dans l'application '/AspNetForums'.
--------------------------------------------------------------------------


--
----

Impossible de résoudre le classement en conflit de l'opération equal to.
Description : Une exception non gérée s'est produite au moment de
l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour
plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.Data.SqlClient.SqlException: Impossible de
résoudre le classement en conflit de l'opération equal to.

Erreur source:


Une exception non gérée s'est produite lors de l'exécution de la
demande Web actuelle. Les informations relatives à l'origine et
l'emplacement de l'exception peuvent être identifiées en utilisant la


trace
de la pile d'exception ci-dessous.


Trace de la pile:


[SqlException: Impossible de résoudre le classement en conflit de
l'opération equal to.]
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream)
System.Data.SqlClient.SqlCommand.ExecuteReader()
AspNetForums.Data.SqlDataProvider.GetSiteStatistics() +109
AspNetForums.Components.Statistics.GetSiteStatistics() +121
AspNetForums.Controls.SiteStats.InitializeSkin(Control skin) +20
AspNetForums.Controls.SkinnedForumWebControl.CreateChildControls() +24
System.Web.UI.Control.EnsureChildControls()
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Page.ProcessRequestMain()





--------------------------------------------------------------------------


--
----

Informations sur la version : Version Microsoft .NET Framework
:1.1.4322.573; Version ASP.NET :1.1.4322.573

Des Infos ???
Comment la résoudre ???
Merci
MrChris




Avatar
Nicolas LETULLIER
Cette erreur est très certainement dûe à une difference de "collation" (en
anglais, rien à voir avec un casse-croute), entre les deux champs/tables de
ta jointure. Vois l'instruction COLLATE dans l'aide en ligne, pour
l'utiliser dans ta requête, ou fais un ALTER COLUMN du champ incriminé, si
c'est une erreur.

Nicolas.


"MrChris" a écrit dans le
message de news:
Salut !
Erreur du serveur dans l'application '/AspNetForums'.
--------------------------------------------------------------------------


--
----

Impossible de résoudre le classement en conflit de l'opération equal to.
Description : Une exception non gérée s'est produite au moment de
l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour
plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.Data.SqlClient.SqlException: Impossible de
résoudre le classement en conflit de l'opération equal to.

Erreur source:


Une exception non gérée s'est produite lors de l'exécution de la
demande Web actuelle. Les informations relatives à l'origine et
l'emplacement de l'exception peuvent être identifiées en utilisant la


trace
de la pile d'exception ci-dessous.


Trace de la pile:


[SqlException: Impossible de résoudre le classement en conflit de
l'opération equal to.]
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream)
System.Data.SqlClient.SqlCommand.ExecuteReader()
AspNetForums.Data.SqlDataProvider.GetSiteStatistics() +109
AspNetForums.Components.Statistics.GetSiteStatistics() +121
AspNetForums.Controls.SiteStats.InitializeSkin(Control skin) +20
AspNetForums.Controls.SkinnedForumWebControl.CreateChildControls() +24
System.Web.UI.Control.EnsureChildControls()
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Page.ProcessRequestMain()





--------------------------------------------------------------------------


--
----

Informations sur la version : Version Microsoft .NET Framework
:1.1.4322.573; Version ASP.NET :1.1.4322.573

Des Infos ???
Comment la résoudre ???
Merci
MrChris




Avatar
MrChris
Merci, j'y vois un peu plus clair !!!

MrChris
Avatar
MrChris
Salut !
J'ai trouvé ou se situe l'erreur :

J'ai une table MaTable avec une colonne MaColonne de format binary 4.

J'ai cette erreur pour les cas suivant :

UPDATE MaTable SET MaColonne = (CONVERT(Int,MaColonne) & 0xFFFFFFF3)
UPDATE MaTable SET MaColonne = (MaColonne ^ 4)
UPDATE MaTable SET MaColonne = (MaColonne ^ 8)
UPDATE MaTable SET MaColonne = (MaColonne ^ 16)

Je ne cromprend pas encore grand chose à SQL, voyez vous un soucis ???
Savez vous ce que la première ligne veut dire traduite en français ???

MrChris
Avatar
Patrice Scribe
Techniquement, la colonne est convertie en entier, puis opération "et"
binaire avec FFFFFFFF3 (donc on aura un 1 là ou on a un 1 dans FFFFFFF3 en
binaire *et* dans la valeur originale, 0 sinon) et le tout est stockée à
nouveau dans la colonne.

Ensuite à voir quelle est la signification de chaque bit pour
l'application....

Qu'est ce que cela donne lorsque ces requêtes sont exécutées directement
dans Query Analyzer ? Je suis surpris que cela plante même si cela ne me
semble pas non plus une très bonne utilisation du type binary (un entier
plus usuel aurait fait l'affaire ?).

Patrice


--

"MrChris" a écrit dans le
message de news:
Salut !
J'ai trouvé ou se situe l'erreur :

J'ai une table MaTable avec une colonne MaColonne de format binary 4.

J'ai cette erreur pour les cas suivant :

UPDATE MaTable SET MaColonne = (CONVERT(Int,MaColonne) & 0xFFFFFFF3)
UPDATE MaTable SET MaColonne = (MaColonne ^ 4)
UPDATE MaTable SET MaColonne = (MaColonne ^ 8)
UPDATE MaTable SET MaColonne = (MaColonne ^ 16)

Je ne cromprend pas encore grand chose à SQL, voyez vous un soucis ???
Savez vous ce que la première ligne veut dire traduite en français ???

MrChris




Avatar
MrChris
Salut !

"Patrice Scribe" a écrit dans le message de
news:
Techniquement, la colonne est convertie en entier, puis opération "et"
binaire avec FFFFFFFF3 (donc on aura un 1 là ou on a un 1 dans FFFFFFF3 en
binaire *et* dans la valeur originale, 0 sinon) et le tout est stockée à
nouveau dans la colonne.

Ensuite à voir quelle est la signification de chaque bit pour
l'application....



En fait, j'ai téléchargé puis installé le forum asp.net
de http://www.asp.net/Forums/Download/
L'install s'est bien passé, mais à l'exécution, j'ai eu le message d'erreur
mentionné plus haut dans le fil de discussion.
La colonne MaColonne (nom original = Attributes) sert à flaguer
l'utilisateur pour savoir si il fait partie du top 25, 50, 100
UPDATE MaTable SET MaColonne = (CONVERT(Int,MaColonne) & 0xFFFFFFF3)
pour resetter la valeur
UPDATE MaTable SET MaColonne = (MaColonne ^ 4)
Top 25
UPDATE MaTable SET MaColonne = (MaColonne ^ 8)
Top 50
UPDATE MaTable SET MaColonne = (MaColonne ^ 16)
Top 100

Qu'est ce que cela donne lorsque ces requêtes sont exécutées directement
dans Query Analyzer ?



Ca plante, avec le même message d'erreur qu'avec ASP.NET (Impossible de
résoudre le classement en conflit de l'opération equal to.)

Je suis surpris que cela plante même si cela ne me
semble pas non plus une très bonne utilisation du type binary (un entier
plus usuel aurait fait l'affaire ?).



Je vais essayer de convertir la colonne, mais comme c'est un projet
assez gros, je ne pourrais pas connaître les impacts de ce changement.

Merci !!!
Avatar
MrChris
Pour ceux qui aiment se masturber la tête, voici la procédure complète :

DECLARE @Usercount int
DECLARE @LoopCounter int

SET NOCOUNT ON

CREATE Table #Top500Users (
Rank int IDENTITY (1, 1) NOT NULL,
UserName nvarchar(50)
)

-- Select into temp table
INSERT INTO #Top500Users (UserName)
SELECT TOP 500
UserName
FROM
Users
ORDER BY
TotalPosts DESC

-- How many users did we select?
SELECT @Usercount = count(*) FROM #Top500Users

-- Set the loop counter
SET @LoopCounter = 1

WHILE (@LoopCounter <= @Usercount)
BEGIN
-- clear the flags for top 25, 50, and 100
UPDATE Users
SET Attributes = (convert(int, Attributes) & 0xFFFFFFF3)
WHERE Username = (SELECT Username FROM #Top500Users WHERE Rank @LoopCounter)

-- top 25 poster
IF (@LoopCounter < 26)
UPDATE Users
SET Attributes = (Attributes ^ 4)
WHERE Username = (SELECT Username FROM #Top500Users WHERE Rank @LoopCounter)

-- top 50 poster
IF (@LoopCounter > 25) AND (@LoopCounter < 51)
UPDATE Users
SET Attributes = (Attributes ^ 8)
WHERE Username = (SELECT Username FROM #Top500Users WHERE Rank @LoopCounter)

-- top 100 poster
IF (@LoopCounter > 50) AND (@LoopCounter < 101)
BEGIN
UPDATE Users
SET Attributes = (Attributes ^ 16)
WHERE Username = (SELECT Username FROM #Top500Users WHERE Rank @LoopCounter)
END

-- increment the coutner
SET @LoopCounter = @LoopCounter + 1
END

Voila, c'est elle qui plante...

Mais quand je fais
UPDATE Users SET Attributes = (Attributes ^ 4)
tout seul ca marche...

Par Contre
select * from users where username (SELECT Username FROM #Top500Users WHERE Rank = @LoopCounter)
Ca plante, je soupsonne le problème de venir du premier signe = !!!

MrChris
Avatar
Patrice Scribe
Si le plantage est sur :

Par Contre
select * from users where username > (SELECT Username FROM #Top500Users WHERE Rank = @LoopCounter)
Ca plante, je soupsonne le problème de venir du premier signe = !!!



Cela me parait plus logique. Par exemple :
- base tempdb en français donc table temporaire en français
- base en anglais

D'où coup essai de comparaison entre la username en anglais de la table
users et username en français de la table tempdb.

Vérifie la propriété COLLATION_NAME de tes colonnes

SELECT Collation_Name FROM Information_Schema.Columns WHERE
Table_Name='users' AND Column_Name='username'




--

"MrChris" a écrit dans le
message de news:
Pour ceux qui aiment se masturber la tête, voici la procédure complète :

DECLARE @Usercount int
DECLARE @LoopCounter int

SET NOCOUNT ON

CREATE Table #Top500Users (
Rank int IDENTITY (1, 1) NOT NULL,
UserName nvarchar(50)
)

-- Select into temp table
INSERT INTO #Top500Users (UserName)
SELECT TOP 500
UserName
FROM
Users
ORDER BY
TotalPosts DESC

-- How many users did we select?
SELECT @Usercount = count(*) FROM #Top500Users

-- Set the loop counter
SET @LoopCounter = 1

WHILE (@LoopCounter <= @Usercount)
BEGIN
-- clear the flags for top 25, 50, and 100
UPDATE Users
SET Attributes = (convert(int, Attributes) & 0xFFFFFFF3)
WHERE Username = (SELECT Username FROM #Top500Users WHERE Rank > @LoopCounter)

-- top 25 poster
IF (@LoopCounter < 26)
UPDATE Users
SET Attributes = (Attributes ^ 4)
WHERE Username = (SELECT Username FROM #Top500Users WHERE Rank > @LoopCounter)

-- top 50 poster
IF (@LoopCounter > 25) AND (@LoopCounter < 51)
UPDATE Users
SET Attributes = (Attributes ^ 8)
WHERE Username = (SELECT Username FROM #Top500Users WHERE Rank > @LoopCounter)

-- top 100 poster
IF (@LoopCounter > 50) AND (@LoopCounter < 101)
BEGIN
UPDATE Users
SET Attributes = (Attributes ^ 16)
WHERE Username = (SELECT Username FROM #Top500Users WHERE Rank > @LoopCounter)
END

-- increment the coutner
SET @LoopCounter = @LoopCounter + 1
END

Voila, c'est elle qui plante...

Mais quand je fais
UPDATE Users SET Attributes = (Attributes ^ 4)
tout seul ca marche...

Par Contre
select * from users where username > (SELECT Username FROM #Top500Users WHERE Rank = @LoopCounter)
Ca plante, je soupsonne le problème de venir du premier signe = !!!

MrChris




Avatar
MrChris
Trop fort !
Chapeau bas !

Je n'aurais jamais trouvé ça tout seul !!!
SELECT Collation_Name FROM Information_Schema.Columns WHERE
Table_Name='users' AND Column_Name='username'
me renvoie rien !!!

Après un Alter Column avec collate à French_CI_AI
ça tourne pile poil !

Merci Beaucoup à tous !!!