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 :

[WD10-Exp]Communiquer avec une base FireBird par ODBC


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 31
    Points : 14
    Points
    14
    Par défaut [WD10-Exp]Communiquer avec une base FireBird par ODBC
    bonjour à tous,

    mon souci, en plus de ne rien y connaitre, est de tapper sur une base Firebird 1.5 avec WinDev...
    je suis conscient que cette question est basique mais je n'ai pas trouver de sites asser explicites là dessus..

    ->j'ai installer Firebird ODBC Driver
    mais je ne sais pas l'utiliser avec Windev


    ce que j'ai fais jusqu'a present selon la présentation de Windev:
    lors du choix de la source de données je selectionne "autre"
    ->je selectionne "acces aux données dans leur format actuel"
    ->je choisi
    Mode: ODBC
    source ODBC: "<ajouter une source odbc>"
    ->selection: source de données utilisateur
    ->Firebird/Interbase driver
    Terminer

    ->ouverture de la fenetre: FireBird ODBC Setup

    et là quoi que je remplisse, la fin de la démarche débouche toujours sur :
    "aucune table n'a été trouvée pour l'import"

    je n'ai rien fait d'autre que ce qu'il ya ci-dessus qu'ai-je oublier et que dois-je faire s'il vous plait?

    merci à vous

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    Bonjour,

    Plutot que d'utiliser l'accès ODBC (souvent lent et mal foutu) tu devrais regarder du coté de SQLManagerX.com et de son accès FireBird4WD.


  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 31
    Points : 14
    Points
    14
    Par défaut
    merci kwasin mais j'y suis déjà allé,

    il ya FB4WD et IB4WD mais je ne trouve aucun executable dans ce que j'ai telecharger...
    pour ce cas, il ya parait-il un moyen de faire appel au driver sans l'installer mais d'une part, je ne sais pas le faire,
    et d'autre part, il devrait marché avec FIrebird odbc driver, non?

    mon problème est aussi pas mal lié à l'interface Windev:
    comment dois-je m'y prendre pour appeller une Bdd externe (alter native) dans Windev?
    pour mon cas -> Firebird

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    Il y a des exemples pour mySQL, et c'est la même chose pour n'importe quelle base de données.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 31
    Points : 14
    Points
    14
    Par défaut
    eh bien j'ai fini par y arriver mais ce n'est pas grace à SQLManagerX.com

    je n'ai vu nulle par qu'il fallait se servir de la fbclient.dll (uniquement)
    que la nomination de la DSN n'avait aucune importance (pour la connexion)
    mais qu'en revanche les champs suivant sont vraiments specifiques à la base..

    eh bien... 3 jours de perdus pour ça... ça fait beaucoup...
    c'est dur de débuter

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 31
    Points : 14
    Points
    14
    Par défaut
    nouveau problème :

    Windev créé à présent un Fichier odbc (couleur verte)
    mais celui-ci ne peut pas être appellé sur aucune des pages...

    je lui est bien mis une clé primaire et je n'ai pas oublier de générer l'analyse..

    mais sur le WDMAP lorsque je selectionne le Fichier il m'indue l'erreur:

    le type de fichier defini dans l'analyse "chemin de l'analyse" n'est pas reconnu.
    je pensais mon problème résolu mais l'appel à la base n'est toujours pas effectué

    merci pour les réponses rapides

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 31
    Points : 14
    Points
    14
    Par défaut
    la galère persiste je ne voit pas comment faire..

    il est très probable que ce problème soit général et non forcément spécifique Firebird,
    alors si quelqu'un peut y mettre son grain de sel j'en serrais ravi

    merci

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 31
    Points : 14
    Points
    14
    Par défaut
    Problème Résolu !

    face aux contraintes omniprésentes du logiciel Express (capacités réduites, nomage automatique des composants,
    aide en ligne réservée aux versions commerciales,etc..), me revoici, avec moins de cheveux mais vivant!

    Pas de création d'analyse (et oui dommage..) mais bien utilisation de requêtes SQL à la mimine.

    voici la démarche de A à Z :

    Télécharger le driver sur SQLManagerX (attention, mises à jours possibles de ce driver donc ce qui suit devra peut-être être modifié)

    une fois téléchargé, le projet exemple inclus n'est pas utilisable puisque créé en Windev 7.5 commercial,
    donc on se servira seulement de deux dll (FB4WD.dll et FBclient.dll)
    et de deux classes (c_FB4WD.wdc et c_TabMem4WD)

    Pour les .dll,
    vous les trouverez dans le répertoire Windev7\Exe et vous devrez les mettre dans le répertoire \Exe de votre Projet

    En revanche, l'import des classes est refusé par la version Express
    (et ne perdez pas votre temps à les recréer car la Version Express ne permet pas de gérer plus de 150 lignes de code par traitement... )

    Je vous conseil donc les classes gentiment offertes par Firetox (sur cette discussion )
    une fois en votre possession, mettez les dans le répertoire de votre projet puis importez les dans WinDev en faisant clic droit, importer une classe sur le répertoire Classes de l'onglet Projet (sur la TreeView à droite en principe)

    maintenant passons au code:
    Je vais reprendre l'application simple donnée sur SqlManagerX,

    Créer une fenêtre avec un bouton "connexion", un bouton "remplir" et une table "Table1".

    code de "clic sur connexion":
    //code de connexion à la base FireBird
    v_retCode est booléen
    v_retCode = fb4wd:mySQLConnecte("localhost","C:\<le chemin de votre base (.fdb ou .gdb)>", "<votre login>", "<votre password>")
    SI (v_retCode = Faux) ALORS
    Erreur("Impossible de se connecter à la base de donnée.", "Erreur n° " + fb4wd:mySQLErreur )
    FIN
    code de "clic sur remplir":
    retCode est booléen
    custom_ID est monétaire
    custom_Name est chaîne
    custom_date est chaîne

    retCode = fb4wd:mySQLExec("SELECT * FROM <une table de votre base>", 0)

    SI (retCode) ALORS
    fb4wd:mySQLPremier(0)
    TANTQUE (PAS fb4wd:mySQLEnDehors)

    // on stocke chaque colonne dans une variable

    custom_ID = fb4wd:mySQLLitCol(0, 1)
    custom_Name = fb4wd:mySQLLitCol(0, 1)
    custom_date = fb4wd:mySQLLitCol(0, 1)

    // on affiche une trace (aide à savoir ce que l'on récupère mais est facultatif)
    Trace(custom_ID+" | "+custom_Name+" | "+custom_date)

    //on passe au suivant
    fb4wd:mySQLSuivant(0)
    FIN
    SINON
    Erreur("Il y a une erreur !!!")
    FIN

    fb4wd:mySQLFerme(0)


    //Remplissage de la table
    TableSupprimeTout(Table1)
    retCode = fb4wd:mySQLExec("SELECT * FROM <une table de votre base>", 0)
    SI (retCode) ALORS
    fb4wd:mySQLTable(0, "Table1")
    FIN
    fb4wd:mySQLFerme(0)
    Voilà, ne pas oublier de prévoir autant de colonnes dans votre table que dans votre table.... (dans votre table1 que la table appelée de votre base )

    en espérant faire gagner 3 semaines de recherches aux malchanceux dans le même cas que moi
    vive SQLManagerX, vive Firetox

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Merci pour l'info

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Communiquer avec une base distante en HTTP avec servlet Java
    Par nicolofontana12 dans le forum Android
    Réponses: 9
    Dernier message: 12/03/2015, 00h53
  2. Réponses: 12
    Dernier message: 04/07/2010, 10h56
  3. Réponses: 7
    Dernier message: 06/08/2007, 19h28
  4. communiquer avec une base de données sur internet
    Par richard038 dans le forum Bases de données
    Réponses: 7
    Dernier message: 15/02/2006, 18h01
  5. problème de connexion avec une base firebird
    Par vbcasimir dans le forum Bases de données
    Réponses: 1
    Dernier message: 30/05/2005, 11h40

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