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 :
me retourne le message :
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
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 :
Et cela fonctionne très bien.
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
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 :
Mais le message devient :
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 ;
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![]()
Partager