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

WinDev Discussion :

Pas de résultats sur certaine machine + problème date


Sujet :

WinDev

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 176
    Points : 91
    Points
    91
    Par défaut Pas de résultats sur certaine machine + problème date
    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 :

    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
    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
    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
    Description de connexion :

    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
    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.

    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.

  2. #2
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 801
    Points
    3 801
    Par défaut
    Bonjour,

    Tu as le problème sur différentes machines mais as tu le problèmes si tu utilise un autre utilisateur sur la machine qui te pose le problème?

    Car c'est peut-être un paramétrage des connexions dans MS-SQL suivant l'utilisateur

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 176
    Points : 91
    Points
    91
    Par défaut
    Niveau connexion sur le MS-SQL, ils utilisent tous le même login.

    Niveau connexion sur les PC , ils ont tous les même droits sur la machine.

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    vérifies dans les options régionales sous XP que les dates sont bien sur le même format.

    Sinon je ne vois pas ce qui pourrait changer le format des dates dans l'application si celle-ci fonctionne sur certains postes et pas d'autres ....

    à bientôt,

    Nicolas

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 176
    Points : 91
    Points
    91
    Par défaut
    Je viens de vérifier. C'est identique...

  6. #6
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 801
    Points
    3 801
    Par défaut
    Et dans ta procédure stocké tu reçoit bien la date dans le bon format pour chaque machine?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 176
    Points : 91
    Points
    91
    Par défaut
    Bonne question !

    Il y a moyen de voir les requêtes envoyées au MS-SQL ? Une sorte de fichier de log ?

    Histoire de voir ce que reçoit le MS-SQL de la machine A et de la B.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 176
    Points : 91
    Points
    91
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT TOP 50 creation_time,
    total_worker_time/execution_count AS [Avg CPU Time], 
    SUBSTRING(st.text, (qs.statement_start_offset/2)+1,((CASE qs.statement_end_offset WHEN -1 THEN DATALENGTH(st.text)           
    ELSE qs.statement_end_offset END - qs.statement_start_offset)/2) + 1) AS statement_text  
    FROM sys.dm_exec_query_stats AS qs  
    CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st  
    ORDER BY creation_time DESC;
    Malheureusement ça donne pas la valeur de la variable.

    Il y a une autre solution ?

    Au pire, je peux créer une table test et stocker la variable envoyée dans un simple varchar. Je pourrais ensuite comparer.

  9. #9
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    c'est ce que j'allais te proposer de faire dans la procédure stockée. Dans la table de test, il te faut essayer de placer la requête entière aussi comme ça tu pourras essayer de la lancer dans l'éditeur. Dès fois que ce soit autre chose qui soit déconnant !!!

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 176
    Points : 91
    Points
    91
    Par défaut
    Oui parce que si ça tombe, c'est tout à fait autre-chose et je m'obstine dans cette direction.

    Je vais passer chez le client lundi ou mardi pour faire le test. On les a justement cambrioler hier soir et je n'ai plus d'accès à distance... La loi de la frustration.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 176
    Points : 91
    Points
    91
    Par défaut
    Bon après avoir travaillé sur d'autres aspects du projet, je suis revenu sur ce problème.

    J'ai créé une table log ou je stocke la donnée que j'envoie. Je constate que la donnée à le bon format aussi bien sur un pc qui fonctionne que sur ceux qui ne fonctionne pas.

    Pour tester, j'ai mis la date en dur dans windev.

    VerificationGardeJour.PDateFiltre = "20120216"

    Toujours aucun résultats sur ces PC mais sur les autres oui.

    Je remets comme c'était et j'ai essayé de mettre la date en dur directement dans la PS. Par contre, je laisse la déclaration de la variable dans la PS et le programme est toujours sensé envoyer une date.

    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 = '20120216' --@PDateFiltre
    ORDER BY Garde.DateDebut DESC
    END
    Toujours pas de résultat sur les PC qui ne fonctionne pas ! Les autres aucun problème...

    Je décide donc de modifier la PS et de mettre un truc comme ça : SELECT 'MonCode' as CodePersonnel, '0475964562' as Mobile

    Je laisse par contre toujours cette variable déclarée mais non utilisée.

    Et bien toujours aucun résultats sur certain PC et les autres ça va toujours.

    Je me décide de virer la déclaration de la variable dans la PS et dans Windev et Boum ! J'ai mon résultat sur toutes les machines...

    Donc c'est vraiment bien quand j'utise une variable de type date sur ces PC. Le fait de pouvoir passer m'a permit de me rendre compte que sur ces PC, toutes les query avec une date ne retourne aucun résultat. Les autres query fonctionne parfaitement. Genre lister tous les membres du personnel.

    Franchement, j'ai aucune idée... L'application utilise le natif MS-sql. La dll est wd160SQLServer.dll

    J'ai vérifié que la dll est bien présente sur tous les pc.

    Pour établir la connexion, je fais :

    //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


    SI HOuvreConnexion(gcnxMaConnexion) = 0 ALORS
    //la connexion n'a pas été établie
    Info("impossible de contacter la base de données sur " + gcnxMaConnexion..Serveur)
    Erreur("Erreur : " + HErreurInfo())
    Ferme()
    SINON
    //La connexion a été établie
    MesTables..Connexion = gcnxMaConnexion

    [...]
    Help...me...

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 176
    Points : 91
    Points
    91
    Par défaut
    Je viens de voir qu'il faut forcer la nouvelle utilisation de la DDL pour l'accès natif.

    J'ai donc ajouté H.ModeSQLServer = 0 avant la déclaration de la variable de type connexion.

    Malheureusement ça ne change rien.

  13. #13
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 394
    Points : 9 571
    Points
    9 571
    Par défaut
    Bonjour,

    je n'ai pas du tout de sql server mais 2 questions :
    Tu as la même version de dll windev sur tous les postes ?
    Tu as la même version de dll wd160SQLServer sur tous les postes ?

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 176
    Points : 91
    Points
    91
    Par défaut
    Oui aux deux questions.

    L'installation se fait via une install de réfèrence et puis du push.

  15. #15
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 394
    Points : 9 571
    Points
    9 571
    Par défaut
    Ok, dans ce cas, y'aurait-il des dll qui traineraient (dans system32 et/ou emplacement exécutable) ?

    Sinon, ça se jouerait (peut être) dans la base de registre. Mais là, c coton pour trouver (valeur de path,etc)...

  16. #16
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Y a-t-il un client SQL installé sur les machines ?

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 176
    Points : 91
    Points
    91
    Par défaut
    Il n'y a pas de MS SQL sur les machines.

    Par contre, je me dis que j'installerais vite un ms sql express sur un poste et faire tourner l'application en local juste pour tester si le problème est le même.

  18. #18
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    juste la partie cliente devrait suffire pour faire le test ...

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 176
    Points : 91
    Points
    91
    Par défaut
    Ok...

    Je viens d'installer le sql express sur des machines qui a le souci.

    Ca fonctionne sans problème sur le SQL en local.

    Je vais voir si je ne sais pas me connecter avec une autre machine dessus.

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 176
    Points : 91
    Points
    91
    Par défaut
    J'utilise une autre machine et je lui dis que l'application doit attaquer sur le nouveau MS-SQL que je viens d'installer.

    Et bardaf...C'est l'embardée... On dirait que le problème se produit quand c'est en réseau.


Discussions similaires

  1. Executable ne fonctionnant pas sur certaines machines
    Par AlexisWallace dans le forum C#
    Réponses: 17
    Dernier message: 07/08/2014, 13h42
  2. [2.x] Erreur 302 sur certaines machines (et pas sur d'autres)
    Par y0ussef dans le forum Symfony
    Réponses: 4
    Dernier message: 06/07/2012, 12h12
  3. Réponses: 1
    Dernier message: 10/01/2011, 15h04
  4. [DEBUTANT]ne pas pouvoir cliquer sur certains champs d'une liste deroulante
    Par eclipse012 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 26
    Dernier message: 03/10/2006, 17h44
  5. Programme ne fonctionnant que sur certaines machines
    Par Marekh dans le forum DirectX
    Réponses: 14
    Dernier message: 30/08/2005, 15h09

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