Bonne rencontre,
Je rencontre un problème un peu bizarre. J’ai développé une application qui communique avec une base de données MS-SQL 2008 via l’accès natif.
L’ensemble de mes requêtes sont effectué via des procédures stockées.
Le parc actuel est en XP FR, le serveur est en FR (j’y suis pour rien) mais le MS-SQL est en UK.
Sur certaine machine en attaquant la même base de données, j’obtiens des résultats et sur d’autres aucun résultats. J’ai remarqué que c’était à chaque fois les PS qui utilisaient une date comme filtre.
Par exemple :
Le code de l'une des PS qui pose problème sur certaine machine :
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 VerificationGardeJour est une Source de Données VerificationGardeJour.PDateFiltre = gdMaDateDuJour SI HExécuteRequêteSQL(VerificationGardeJour,"gcnxMaConnexion", ... hRequêteSansCorrection ,"VerificationGardeJour @PDateFiltre") ALORS HLitPremier(VerificationGardeJour) TANTQUE PAS HEnDehors(VerificationGardeJour) nCheckGarde = 1 Message(CBM_Garde,VerificationGardeJour.CodePersonnel + " - " + VerificationGardeJour.Mobile ) HLitSuivant(VerificationGardeJour) FIN HAnnuleDéclaration(VerificationGardeJour) SINON Erreur(HErreurInfo()) FIN
Description de connexion :
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
16
17
18
19
20
21 ALTER PROCEDURE [dbo].[VerificationGardeJour] -- Add the parameters for the stored procedure here @PDateFiltre datetime AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for procedure here SELECT Personnel.CodePersonnel,Personnel.Mobile, Type_Personnel.CodeTypePersonnel, Garde.IDGarde, Garde.DateDebut,Garde.DateFin, Garde.IDPersonnel,Garde.SaisiLe, Garde.SaisiPar,Garde.ModifierLe,Garde.ModifierPar FROM Garde INNER JOIN Personnel ON Personnel.IDPersonnel = Garde.IDPersonnel INNER JOIN Type_Personnel ON Personnel.IDType_Personnel = Type_Personnel.IDType_Personnel WHERE Garde.DateDebut = @PDateFiltre ORDER BY Garde.DateDebut DESC END
La date est envoyée sous ce format 20120126. Je me suis dit qu'une partie des machines envoyaient la date sous un autre format. Via un info(), j’ai vérifié que la date avait bien ce format sur toutes les machines et c'est le cas… J'ai bien vérifié aussi que les machines étaient à la bonne date.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 //Description de la connexion gcnxMaConnexion..Utilisateur = gsDbLogin gcnxMaConnexion..MotDePasse = gsDbPassword gcnxMaConnexion..Serveur = gsNomServer //+ "," + gsPortServer gcnxMaConnexion..BaseDeDonnées = gsDbName gcnxMaConnexion..Provider = hAccèsNatifSQLServer gcnxMaConnexion..Accès = hOLectureEcriture
Je ne vois pas trop d’où le problème pourrait venir sachant que ça fonctionne sur certaine machine et pas sur d’autres.
Une idée ?
Amicalement,
Raphaël.
Partager