Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/08/2011, 14h48   #1
Invité de passage
 
Inscription : mars 2011
Messages : 12
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 12
Points : 4
Points : 4
Par défaut enorme probleme sql server 2008(Réponse serveur)

Bonjour,
Je me dirige vers vous espérant trouver un solution à mon énorme problème.
Je vous l'explique.
Je développe une application en utilisant c#, Sql server 2008, ExtJS sur une VM
Quand je lance plusieurs requetes, j'ai parfois des résultats incohérents. Par exemple. pour afficher dans un tableaux, j'utilise cette fonction
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//ConnectBDD cc = new ConnectBDD();
        SqlConnection sqlCon = new SqlConnection();
        sqlCon.ConnectionString = "Trusted_Connection=yes;Server=" + WebConfigurationManager.AppSettings["connBdMd_server"] + ";Initial Catalog=" + WebConfigurationManager.AppSettings["connBdMd_db"] + ";uid=" + WebConfigurationManager.AppSettings["connBdMd_user"] + ";password=" + WebConfigurationManager.AppSettings["connBdMd_pwd"];
 
        try
        {
            sqlCon.Open();
           // cc.open();
 
 
            SqlCommand query22 = new SqlCommand("select distinct OM.idOM, OM.libelleOM, OM.numFicheOM, OM.refOM, cast(OM.dateCreaOM as char(10)) dateCreaOM , cast(OM.dateValideOM as CHAR(10)) dateValidOM, "
                                    + "umd.nomUtilisateurMD libAuteur, histo.nomHistorisation libHistorisation, fraich.nomFraicheur libFraicheur, Statut.nomStatut libStatut, "
                                    + "OM.regleGestionOM, OM.regleObtentionOM, OM.uniteOM, FormatOM.nomFormatOM libFormat, SFD.libelleSFD libSFD, "
                                    + "TypeOM.nomTypeOM libType, TypeOM.idTypeOM , "
                                    + "case "
	                                    + "when OM.idTypeOM = 1 and OM.idThemeOM is not null "
		                                    + "then Theme.nomTheme "
	                                    + "when OM.idTypeOM = 2 and OM.idAxeOM is not null "
		                                    + "then Axe.nomAxe "
	                                    + "else null "
                                    + "end libThemeAxe "
                                    + "from OM "
                                    + "join OMHasApplication OMa on OMa.idOM = OM.idOM "
                                    + "join Application app on app.idApplication = OMa.idApplication "
                                    + "left join UtilisateurMD umd on umd.idUtilisateurMD = OM.idAuteurOM "
                                    + "left join Historisation histo on histo.idHistorisation = OM.idHistorisationOM "
                                    + "left join Fraicheur fraich on fraich.idFraicheur = OM.idFraicheurOM "
                                    + "left join Statut on Statut.idStatut = OM.idStatutOM "
                                    + "left join SFD on OM.idSFD = SFD.idSFD "
                                    + "left join FormatOM on FormatOM.idFormatOM = OM.idFormatOM "
                                    + "left join TypeOM on TypeOM.idTypeOM = OM.idTypeOM "
                                    + "left join Theme on Theme.idTheme = OM.idThemeOM "
                                    + "left join Axe on Axe.idAxe = OM.idAxeOM "
                                    + "where "
                                    + "OMa.idApplication in "
                                    + "( "
	                                    + "select gha.applicationIdApplication from UtilisateurMDHasGroupeMD uhg, GroupeMDHasApplication gha "
	                                    + "where uhg.utilisateurMDIdUtilisateurMD = " +  idUser + " and uhg.groupeMDIdGroupeMD = gha.groupeMDIdGroupeMD "
	                                    + "union "
	                                    + "select uha.applicationIdApplication  FROM UtilisateurMDHasApplication uha "
	                                    + "where uha.utilisateurMDIdUtilisateurMD = " + idUser + " "
                                    + ") "
                                    + "and (OM.idAuteurOM = " + idUser + " or OM.idStatutOM = 5) "
                                    + "order by OM.libelleOM", sqlCon /* cc.getConnection()*/);
 
            DataTable dt22 = new DataTable();
            dt22.LOAD(query22.ExecuteReader());
 
 
            Response.WRITE("{\"success\":true, \"results\":" + JsonConvert.SerializeObject(dt22) + "}");
        }
        catch (Exception e)
        {
            Response.WRITE("{\"failure\":true, \"message\":\"" + e.Message + "\"}");
        }
        finally
        {
            sqlCon.Close();
           // cc.close();
        }
Le resultat que je dois avoir est le suivant:
Code :
{"success":true, "results":[{"idOM":11,"libelleOM":"azertyuiop","numFicheOM":NULL,"refOM":"atyuiopmlkjhgfdsq","dateCreaOM":"2011-07-31","dateValidOM":NULL,"libAuteur":"aa","libHistorisation":"historisation 1","libFraicheur":"fraicheur 1","libStatut":"Brouillon","regleGestionOM":"dvb vcxbvc","regleObtentionOM":"xcvbxvcb","uniteOM":"argennnt !!","libFormat":"euros","libSFD":"HHHHHHHHHHHH","libType":"Critère d'analyse","idTypeOM":2,"libThemeAxe":"Axe 2 demo"},{"idOM":2,"libelleOM":"libellé","numFicheOM":NULL,"refOM":"","dateCreaOM":"2011-07-29","dateValidOM":NULL,"libAuteur":"LOPES","libHistorisation":"historisation 1","libFraicheur":"fraicheur 1","libStatut":"En production","regleGestionOM":"sdqfsdqfsqdf","regleObtentionOM":"fqsdfsdq","uniteOM":"fsdqfsdqf","libFormat":"2 decimale","libSFD":"SFD 3.1","libType":"Critère d'analyse","idTypeOM":2,"libThemeAxe":"Axe 2 demo"},{"idOM":12,"libelleOM":"OBJ ME CA pour les nuls","numFicheOM":NULL,"refOM":"","dateCreaOM":"2011-07-31","dateValidOM":NULL,"libAuteur":"aa","libHistorisation":NULL,"libFraicheur":NULL,"libStatut":"En cours","regleGestionOM":"xdxxx","regleObtentionOM":"xxx","uniteOM":"","libFormat":"2 decimale","libSFD":"HHHHHHHHHHHH","libType":"Critère d'analyse","idTypeOM":2,"libThemeAxe":NULL},{"idOM":14,"libelleOM":"OM LIER A TEST TOTO","numFicheOM":NULL,"refOM":"REF","dateCreaOM":"2011-08-01","dateValidOM":NULL,"libAuteur":"aa","libHistorisation":"historisation 1","libFraicheur":"fraicheur 1","libStatut":"En cours","regleGestionOM":"","regleObtentionOM":"","uniteOM":"ARGENT !!!!","libFormat":"euros","libSFD":"HHHHHHHHHHHH","libType":"Critère d'analyse","idTypeOM":2,"libThemeAxe":"Axe 2 demo"},{"idOM":13,"libelleOM":"petit objet","numFicheOM":NULL,"refOM":"","dateCreaOM":"2011-07-31","dateValidOM":NULL,"libAuteur":"aa","libHistorisation":NULL,"libFraicheur":NULL,"libStatut":"En cours","regleGestionOM":"","regleObtentionOM":"","uniteOM":"","libFormat":"2 decimale","libSFD":"HHHHHHHHHHHH","libType":"Indicateur","idTypeOM":1,"libThemeAxe":"Theme 1 "}]}
Le probleme est que parfois j'ai le resultat de cette requete ci-dessous
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 SqlCommand query = new SqlCommand();
        query.Connection = bdd.getConnection();
 
       query.CommandText = "Select idTypeOM FROM OM WHERE idOM = " + idOM;
 
        query.Connection.Open();// bdd.open();
 
        DataSet ds = new DataSet();
        ds.TABLES.ADD("data");
        ds.TABLES["data"].LOAD(query.ExecuteReader());
        IF (ds.TABLES["data"].Rows[0]["idTypeOM"] == "1")
        {...}
Quelqu'un pourrait mexpliquer comment sqlserver me renvoi des resultats des autres requêtes?
J'espère que j'étais clair.

Merci d'avance de vos réponses.
khaled_s est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 13h08   #2
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 724
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 724
Points : 6 845
Points : 6 845
Bonjour,

N'avez vous pas un dataset ou autre objet de ce genre qui ne serait pas initialisé correctement entre les 2 appels ?

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 17h07   #3
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
L'erreur ne vient évidemment pas de SQL SERVER mais de votre code qui est buggé!
Surveillez la manière dont sont effectués les appels ajax...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h20.


 
 
 
 
Partenaires

Hébergement Web