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

WebDev Discussion :

Problème utilisation HDéclareExterne() dans un WebService.


Sujet :

WebDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Par défaut Problème utilisation HDéclareExterne() dans un WebService.
    Bonjour à tous,

    Voici un autre problème que j'ai et sur lequel je m'arrache les cheveux depuis plusieurs jours.

    J'ai un Web Service qui est supposé ce connecter à une base de données dont il connait le chemin et exécuter des requêtes dessus, après il traite les résultats, etc ... Le problème vient au moment de la récupération des données dans la table de la base de données. Voici un extrait de mon code pour me connecter à la base de données :

    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
     
    gcnxCnx_Access..Provider = "Microsoft.ACE.OLEDB.12.0"
    gcnxCnx_Access..Utilisateur = ""
    gcnxCnx_Access..MotDePasse = ""
    gcnxCnx_Access..Serveur = gsBase
    gcnxCnx_Access..BaseDeDonnées = ""
    gcnxCnx_Access..Accès = hOLectureEcriture
    gcnxCnx_Access..OptionsCurseur = hCurseurServeur
     
    // Ouverture de la connexion
    SI HOuvreConnexion(gcnxCnx_Access) ALORS
    	RENVOYER Recuperation_Donnees_Table()
    SINON
    	Ajoute_Info_Log(HErreurInfo(hErrComplet))
     
    	RENVOYER Faux
    FIN
    Ce code-ci renvoie vrai jusqu'à : "RENVOYER Recuperation_Donnees_Table()"

    Le code de cette procédure étant :

    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
     
    PROCEDURE PRIVÉE Recuperation_Donnees_Table() : booléen
    LOCAL
    	i est un entier = 1
    	sTables_intermediaires est une chaîne = Remplace(ExtraitChaîne(sTable,i," INNER JOIN "),["(",")"],"")
     
    TANTQUE PAS (sTables_intermediaires ~= EOT OU sTables_intermediaires ~= "")
    	SI PAS HDéclareExterne(sTables_intermediaires,sTables_intermediaires,gcnxCnx_Access) ALORS
    		Ajoute_Info_Log("Les données n'ont pas été récuperées." + RC + HErreurInfo(hErrComplet))
    		RENVOYER Faux
    	FIN
    	i++
    	sTables_intermédiaires = ExtraitChaîne(ExtraitChaîne(sTable,i,"JOIN "),1," ON ")
    FIN
     
    RENVOYER Vrai
    Là où ça bloque, c'est à l'appel : "HDéclareExterne(sTables_intermediaires,sTables_intermediaires,gcnxCnx_Access)" qui renvoie faux, alors que si je fais mes tests en test de procédure, cela fonctionne très bien.

    Du coup, je n'arrive pas à comprendre ce qui peux clocher, sachant que ma connexion est belle et bien effectuée et que sTables_intermediaires contient bien les noms des tables utilisées dans la requête.

    Merci à ceux qui auront le courage de me lire et de me répondre.

    Bonne journée/soirée

    Cordialement, Warren.

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Par défaut Le rapport de l'erreur
    Je viens de remarquer que j'avais oublié de mettre le rapport de l'erreur, donc le voici. J'ai remplacé le nom de ma base de données, qui est en ".accdb", par :<Nom de ma base de données>", à la ligne : "Source de données", par respect pour l'entreprise dans laquelle je fais mon stage. De plus, Hot_Line est le nom d'une des tables dans laquelle j'aimerais récupérer des infos, j'ai essayé avec d'autres tables, ça n'a rien changé.


    Que s'est-il passé ?
    Erreur de l'accès OLE DB.
    Numéro d'erreur = 170129

    Echec de l'ouverture du fichier.

    Code erreur : 73001
    Niveau : erreur non fatale
    Code erreur WD55 : 3001

    Message d'erreur système :
    Description = Classe non enregistrée
    Source = Provider
    Help Context = 1240640 (0x12ee40)
    Error Number = -2147221164 (0x80040154)
    Native Error Number = -2147221164 (0x80040154)

    Dump de l'erreur du module 'wd210hf64.dll' (21.0.76.1).
    Identifiant des informations détaillées (.err) : 72801
    Informations de débogage :
    SELECT * FROM Hot_Line
    IEWDOLDB=111.46
    Module=<WDOLDB>
    Version=<21.0.9.0>



    [Current Recordset parameters]
    Wanted = LockType = <adLockUnspecified>, Location = <adUseNone>, Type = <adOpenUnspecified>, Capacities = <ffffffff>
    Got = LockType = <adLockUnspecified>, Location = <adUseNone>, Type = <adOpenUnspecified>, Capacities = <ffffffff>
    Provider : Microsoft.ACE.OLEDB.12.0
    Source de données : D:\Mes Projets\Web Service\<Nom de ma base de données>
    Emplacement du curseur : Server
    Unicode supporté : 1
    Code page du WL : 1252
    Code page de la connexion : UTF-16

    Version du MDAC = <6.3.9600.16384>.

    [Data format]
    Query Parameter Checked = <0> = <>
    Query Parameter Needing conversion = <0> = <>
    DecimalSeparator = <Undefined>
    DateFormat = <Undefined>

    [Cursor settings Match]
    LockType = <adLockOptimistic>, Location = <adUseServer>, Type = <adOpenUnspecified>, Capacities = <ffffffff>
    LockType = <adLockPessimistic>, Location = <adUseServer>, Type = <adOpenUnspecified>, Capacities = <ffffffff>
    LockType = <adLockReadOnly>, Location = <adUseServer>, Type = <adOpenUnspecified>, Capacities = <ffffffff>

    Informations supplémentaires :
    EIT_LOGICALTABLENAME : <Hot_Line>
    EIT_NATIVECODE : <170129>
    EIT_ADOCODE : <-2147221164>
    EIT_BASECODE : <-2147221164>
    EIT_ODBCDESCRIPTION : <Classe non enregistrée>

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Par défaut Avancement du problème.
    Après plusieurs de tests diverses et variés, j'ai pu découvrir que si je passais le projet en exécutable Windows 64 bits sur Windev, ça ne pose plus aucun soucis. Alors est-ce qu'il y a un truc particulier par rapport au fait que ce soit un Web Service ? J'ai aussi tester en le passant en Web Service Windev et le problème reste inchangé dans ce cas.

    Si quelqu'un à le courage de me lire et possède ne serais-ce qu'une idée ou une piste pour m'aider, je suis preneur.

    Merci d'avance.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Par défaut
    Bonjour à tous,

    J'ai envoyé un mail au support technique gratuit de PCSoft, qui m'a remercié de les avoir prévenu du dysfonctionnement et ne m'a pas répondu depuis plus d'une semaine.
    Arrivant à la fin de mon stage et étant un peu désespéré, j'ai fait d'autres tests, notamment en intégrant dans mon analyse les descriptions des fichiers qui m'intéressent. Et là, pareil, cela fonctionne très bien sur un test local (test de procédure avec un GO), mais dès que j'essaye d’appeler cette procédure de mon Web Service avec un autre programme :
    ERREUR !!!!!!!


    Donc si quelqu'un à eu vent d'une possible solution à ce problème ou tout du moins, une méthode permettant d'effectuer des requêtes SQL sur des bases ACCESS via un Web Service qui attaque la base de données par OLEDB, je suis preneur.

    Merci d'avance,

    Cordialement, un désespéré.

    EDIT : Il y a quand même un cas où sa marche, c'est lorsque j'intègre la ou les tables qui m'intéressent en les convertissant sous format HFSQL, mais si jamais il y besoin d'ajouter un accès à une autre table, ça veux dire qu'il faut la rajouter à l'analyse sous format HFSQL, ce qui n'est pas pratique, surtout si le Web Service n'est pas déployé sur un serveur de l'entreprise dans laquelle je fais mon stage.

Discussions similaires

  1. [CR XI] Problème utilisation formule dans un graphique
    Par Cereal123 dans le forum Formules
    Réponses: 3
    Dernier message: 06/01/2015, 09h15
  2. Problème de log dans les Webservices
    Par marccollin dans le forum Services Web
    Réponses: 1
    Dernier message: 19/02/2010, 17h26
  3. Réponses: 6
    Dernier message: 23/04/2008, 17h17
  4. Réponses: 0
    Dernier message: 10/04/2008, 12h31
  5. problème de Dataview dans un Webservice
    Par Xanime dans le forum Services Web
    Réponses: 2
    Dernier message: 07/05/2007, 09h39

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