IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Problème avec Heterogeneous queries require the ANSI_NULLS


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 107
    Par défaut Problème avec Heterogeneous queries require the ANSI_NULLS
    Bonjour

    je rencontre un problème avec la gestion des ANSI_NULLS et ANSI_WARNINGS depuis php (v 5.2).

    mon serveur sql est SQLServer 2008.

    ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    SELECT Nom_Naissance, Nom, Prenom, NumeroBadge, 
    Nom_Entreprise, 
    LEFT(Prenom, 1) + LEFT(Nom, 1) + NumeroBadge AS CodeEmploye, 
    Nom+' '+Prenom+' '+NumeroBadge as Identite 
    FROM ( 
    SELECT CASE WHEN isnull(Nom_Epoux, '') <> '' THEN Nom_Epoux ELSE Nom_Naissance END AS Nom, 
    CASE 
    WHEN len(ltrim(rtrim(Numero_Badge))) > 0 THEN LEFT('000000', 6 - len(ltrim(rtrim(Numero_Badge)))) + ltrim(rtrim(Numero_Badge)) 
    ELSE '000000' END AS NumeroBadge, 
    Numero_Badge,Nom_Naissance, Prenom,Nom_Entreprise 
     
    FROM Serveur.PEGASE.dbo.v_Personne 
    ) AS V 
    ORDER BY Nom asc,Prenom asc
    me retourne le message :

    Les requêtes hétérogènes requièrent les options ANSI_NULLS et ANSI_WARNINGS pour être définies pour la connexion. Cela assure la cohérence sémantique de la requête. Activez ces options et réexécutez la requête.

    Pas de problème, j'ajoute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SET ANSI_NULLS ON
    SET ANSI_WARNINGS ON
    GO
     
    requete précédente
    GO
     
    SET ANSI_NULLS OFF
    SET ANSI_WARNINGS OFF
    GO
    Et cela fonctionne très bien.

    Cela se corse si je lance ma requête depuis PHP (avec mssql):

    J'obtiens :
    Could not query the Microsoft SQL server: Incorrect syntax near 'GO'.

    Je transforme ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SET ANSI_NULLS ON ;
    SET ANSI_WARNINGS ON ;
     
    requete précédente ;
     
    SET ANSI_NULLS OFF ;
    SET ANSI_WARNINGS OFF ;
    Mais le message devient :
    Could not query the Microsoft SQL server: Heterogeneous queries require the ANSI_NULLS and ANSI_WARNINGS
    options to be set for the connection. This ensures consistent query semantics. Enable these options and then reissue
    your query.

    Pourriez-vous m'aider à résoudre ce problème

    Merci

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Quand vous faites des requêtes entre deux bases, il faut que le paramétrage des deux bases soit identique sur le plan fonctionnel.

    par exemple une vue créée avec SET ANSI_NULLS OFF d'un côté, ne peut pas être utilisée dans une requête dans le contexte d'une autre base qui invoque SET ANSI_NULLS ON !

    On ne peut pas d'un côté vouloir faire confusion des Nulls et des blancs et de l'autre pas !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 107
    Par défaut précision
    Bonjour
    Je veux bien croire la nécessité de paramétrage équivalent entre 2 bases, sauf qu'ici il n'y a qu'UNE SEULE base !

    De plus je n'ai pas créé de vue et avec SQL Server management studio l'exécution est bonne (en ajoutant les ANSI_NULLS ...)

    Le problème se situe plutôt du coté exécution php.

    Merci pour vos conseils

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Alors c'est dans le connexion que sont envoyé ces paramétrage de session....

    modifiez la chaine de connexion en conséquence.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/11/2010, 17h09
  2. Réponses: 3
    Dernier message: 14/01/2008, 18h35
  3. Problème avec SQL Query
    Par e1lauren dans le forum Hibernate
    Réponses: 1
    Dernier message: 24/08/2007, 18h15
  4. Réponses: 3
    Dernier message: 26/04/2006, 21h45
  5. Réponses: 6
    Dernier message: 17/04/2005, 10h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo