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:
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:
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:
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:cry: