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 :

Accès OLEDB à une base Oracle


Sujet :

WinDev

  1. #1
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 40
    Points
    40
    Par défaut Accès OLEDB à une base Oracle
    Bonjour!!

    Je travaille dans un intranet où je dispose d'une base de données sous oracle 9i. La dite base de données est hébergée par un serveur d'adresse IP 192.168.1.1, j'y ai crée un lien ODBC DSN.
    Pouvez vous m'expliquer comment me connecter à ma base de données en ligne de commande (par exemple à l'initialisation de la feuille de démarrage)?
    PS: Je ne dispose pas d'accès natif oracle...

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    En Windev il faut se tourner vers la fonction 1-SQLConnecte ou 2-HOuvreConnexion pour la connexion à la base de données.

    1-Ensuite il faut utiliser SQLExec pour executer des requetes sur la base puis SQlPremier etc pour parcourir les résultats
    2-utiliser HExecuteRequete ou HExecuteRequeteSQL pour executer des requetes et HLitPremier,HLitSuivant pour parcourir le resultat

    Pour 1 et 2 voir aussi comment se déconnecter (SqlDeconnecte)
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  3. #3
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 40
    Points
    40
    Par défaut avec houvreconnexion
    Voici ce que j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    MConnexion est une Connexion
     
    // Description de la connexion
    MConnexion ..Utilisateur = "rphenix"
    MConnexion .. MotDePasse = "toto01"
    MConnexion ..Serveur = "l192.168.1.1"
    MConnexion ..BaseDeDonnées = "DNS"
    MConnexion ..Provider = hOledbOracle
    MConnexion .. Accès = hOLecture
     
    resultat est un booléen
    resultat=HOuvreConnexion (MConnexion);
    Seulement résultat contient toujours faux

  4. #4
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 40
    Points
    40
    Par défaut Avec SQLConnect
    Je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    NomSource = "OraBd"  // nom de la base de données
    NumConnexion = SQLConnecte("192.168.1.1", "rphenix", "toto01",NomSource)
    Pas de succès encore, code erreur 0000..

  5. #5
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    ok.

    Voici le prototype de la fonction :

    <Résultat> = SQLConnecte(<Source>, <Utilisateur>, <Mot de passe> [, <Nom de la DataBase> [, <Type de la base> [, <Provider OLE DB> [, <Informations optionnelles>]]]])
    Dans ton cas,en passant par odbc et un provider tu dois :

    Type de base doit correspondre à OLEDB
    Source doit valoir le nom de la source. ( tu dois avoir le nom d'un fichier genre base.mdb)
    Nom de la database doit correspondre à une chaine vide.

    ensuite pour le paramétre provider ole db il faut une des valeurs suivante (a tester):

    "MSDAORA" pour Oracle (Microsoft)
    "OraOLEDB.Oracle" pour Oracle
    "hODBC"
    "hOLEDBOracle"

    Note : Pour utiliser une connexion OLE DB il est nécessaire :
    d'installer le MDAC version 2.6 minimum (installation réalisée avec WinDev ou WebDev lors de l'installation de l'application)
    d'installer le provider OLE DB correspondant à la base de données manipulée.
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  6. #6
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 40
    Points
    40
    Par défaut Provider OLE DB
    J'ai Windev 10. Je pensais que le driver OLEDB y était inclus...je sais seulement que le driver natif d'oracle s'aquiert séparément.

    Comment puis-je disposer du Provider OLE DB pour oreacle et en attendant que me conseillez vous pour me connecter à ma base?

  7. #7
    Membre expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Points : 3 266
    Points
    3 266
    Par défaut
    le driver oledb oracle est livré avec oracle... ou on le trouve chez oracle.

    Pour vous connecter à une base oracle il vous faut la couche client oracle et en même temps je pense q'il installe le driver oledb oracle.

    D'ou la question : avez vous un client oracle d'installé?
    Emmanuel Lecoester
    => joomla addict.

  8. #8
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 40
    Points
    40
    Par défaut Ole Db
    oui, j'ai un client oracle installé. j'ai crée un alias de la BD et une source de données ODBC avec oracle in OraHome92.

    Comment puis-je utiliser ce qui précède pour une connexion?

  9. #9
    Membre expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Points : 3 266
    Points
    3 266
    Par défaut
    créer un fichier maconnexion.udl
    l'ouvrir, celà ouvre une fenetre "data link properties"
    choisir le provider, la base, le user, le pwd et faire un test de connexion.
    Si il est concluant fermer la fenetre
    renommer le ficheir en .txt
    l'ouvrir
    il contient la chaine de connexion à votre base oracle
    recopier les paramètres dans ceux de la connexion WinDev. Le tour est joué
    Emmanuel Lecoester
    => joomla addict.

  10. #10
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 40
    Points
    40
    Par défaut fichier udl
    Excusez moi, j'suis qu'un novice en la matière j'ai beau bouquiné le bord d'auto-formation sans résultat probant.
    Le fichier .udl est crée où (dans Windev)? que contient-il?

    je vous serai reconnaisant de me fournir un exemple SVP.

    Merçi de votre compréhension.

  11. #11
    Membre expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Points : 3 266
    Points
    3 266
    Par défaut
    La manipulation est entierement sous WINDOWS. le fichier udl est comme un ficier texte.
    Emmanuel Lecoester
    => joomla addict.

  12. #12
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 40
    Points
    40
    Par défaut fichier udl
    J'ai suivi ta procédure de création de la chaine de connexion, j'ai otenu un fichier contenant:
    [oledb]
    ; Everything after this line is an OLE DB initstring
    Provider=MSDASQL.1;Persist Security Info=False;User ID=rphenix;Data Source=dsn

    Ma question comment utilise t-on tout ceci? avec Houvreconnexion? avec SQLConnecte?

    Merçi de m'indiquer la procédure à suivre...

  13. #13
    Membre expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Points : 3 266
    Points
    3 266
    Par défaut
    Provider=MSDASQL.1;Persist Security Info=False;User ID=rphenix;Data Source=dsn
    çà ne ressemble pas trop à une connexion Oracle

    Voici un code qui fonctionne avec WinDev7.5 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // Description
    SI HDécritConnexion("MaConnexion","_USER_","_PASSORD_","_ENTREE_TNSNAMES_ORA_","","OraOLEDB.Oracle")=Faux ALORS
    	Erreur("Erreur Hyper File : " + HErreurInfo())
    SINON
    	Info("Description OK")	
    FIN
    
    // Ouvrir la nouvelle connexion
    SI HOuvreConnexion("MaConnexion")=Faux ALORS
    	Erreur("Erreur Hyper File : " + HErreurInfo())
    SINON
    	Info("Connexion OK")	
    FIN
    Emmanuel Lecoester
    => joomla addict.

  14. #14
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 40
    Points
    40
    Par défaut
    Voici mon code de connexion conformément à ce que vous avez fait

    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
    MaConnexion est une Connexion
    // Description
    SI HDécritConnexion("MaConnexion","RPHENIX","TOTO01","DSN","","OraOLEDB.Oracle")=Faux ALORS
    	Erreur("Erreur Hyper File : " + HErreurInfo())
    SINON
    	Info("Description OK")	
    FIN
     
    // Ouvrir la nouvelle connexion
    SI HOuvreConnexion("MaConnexion")=Faux ALORS
    	Erreur("Erreur Hyper File : " + HErreurInfo())
    SINON
    	Info("Connexion OK")
    	HChangeConnexion("table1","MaConnexion")	
    	SI HLitPremier("table1")=Vrai ALORS
    		Info ("Lecture du premier enregistrement fait avec succès.")
    	FIN
    J'essaie de lire une table avec hchangeconnexion et hlitpremier, j'obtiens une erreur facile. Est-ce une erreur de syntaxe de ma part?
    FIN

  15. #15
    Membre expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Points : 3 266
    Points
    3 266
    Par défaut
    Si maintenant vous arrivez à vous connecter à la base de données Oracle c'est tout bon .

    Mais je ne peux pas vous aider car pour accéder à une base Oracle je ne passe pas par un accès ODBC mais par l'accès OTL4WD . Je pense que d'autres pourront prendre la relève .
    Emmanuel Lecoester
    => joomla addict.

  16. #16
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 40
    Points
    40
    Par défaut Accès OTL4WD
    Peut tu m'expliquer ce qu'est un accès OTL4WD?
    Comment se fait elle, quels sont les prerequis?

    Cdlt.

  17. #17
    Membre expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Points : 3 266
    Points
    3 266
    Par défaut
    OTL4WD est un accès natif Oracle open source. Il est composé d'une dll basée sur les oci et d'une classe WinDev.

    A la différence des accès proposés par l'éditeur (natif, OLE-DB, ODBC) il n'est pas intégré dans l'AGL. Donc l'utilisation des fonction hxxx n'est pas possible, pas d'analyse dans votre projet. Tout s'effectue au moyen de requetes.

    Celà en fait une utilisation pour développeur avancé. En effet on n'appréhende pas OTL4WD de la même manière que un HDecritConnexion. IL ya un minimum de programmation objet et de connaissance SQL à avoir.

    Plus d'info sur le site www.sqlmanagerx.com ou le lien direct http://www.sqlmanagerx.com/websqlx/h...ex.php?page=16.

    Avant de vous orienter sur cet accès, je vous conseille de creuser la question avec le bout de code que vous nous avez présenté. D'autres forums et news existent : Windasso et fr.comp.developpement.agl.windev ainsi que les news de l'éditeur. Vous trouverez certainement votre bonheur avec tout celà.
    Emmanuel Lecoester
    => joomla addict.

  18. #18
    Membre expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Points : 3 266
    Points
    3 266
    Par défaut
    Bon celà m'a travaillé un petit peu car çà doit fonctionner. Voici un code qui fonctionne parfaitement sur un Oracle XE utilisateur scott/tiger. Testé à l'instant avec WD7.5.

    J'ai défini une analyse avec un fichier Clients.
    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
    22
    23
    24
    25
    26
    27
    28
    29
    // Description
    SI HDécritConnexion("MaConnexion","scott","tiger","XE","","OraOLEDB.Oracle")=Faux ALORS
    	Erreur("Erreur Hyper File : " + HErreurInfo())
    SINON
    	Info("Description OK")	
    FIN
    
    // Ouvrir la nouvelle connexion
    SI HOuvreConnexion("MaConnexion")=Faux ALORS
    	Erreur("Erreur Hyper File : " + HErreurInfo())
    SINON
    	Info("Connexion OK")	
    FIN
    
    HChangeConnexion(Clients,"MaConnexion")
    HCréationSiInexistant(Clients)
    Clients.IDClients = 1
    Clients.NomClient = "LECOESTER"
    Clients.DateCreation = DateSys()
    HAjoute(Clients)
    Clients.IDClients = 2
    Clients.NomClient = "HEGROS"
    Clients.DateCreation = DateSys()
    HAjoute(Clients)
    
    HLitPremier(Clients,IDClients)
    
    Info(Clients.NomClient)
    PS : désolé Hegros de te citer c'est pour le test.
    PS2 : j'ai un projet à proposer : un exe qui colorise notre code WinDev pour le mettre ici car là je me tape la coloration à la main
    Emmanuel Lecoester
    => joomla addict.

  19. #19
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 40
    Points
    40
    Par défaut
    Apparement votre connexion SQLManagerX ne marche qu'avec les version 7.x de Windev.
    Moi j'ai Windev 10 est-ce qu'il y a une solution pour moi avec SQLManagerX?

  20. #20
    Membre expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Points : 3 266
    Points
    3 266
    Par défaut
    Citation Envoyé par rphenix
    Apparement votre connexion SQLManagerX ne marche qu'avec les version 7.x de Windev.
    Nuance, les sources OTL4WD sont fournis en WD7.5. Ce qui permet une utilisation en WD7.5, WD8, WD9 et WD10.

    Citation Envoyé par rphenix
    Moi j'ai Windev 10 est-ce qu'il y a une solution pour moi avec SQLManagerX?
    Oui une simple recompilation...
    Emmanuel Lecoester
    => joomla addict.

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/07/2012, 10h53
  2. Accès "DIRECT" à une base Oracle
    Par Flaw35 dans le forum Accès aux données
    Réponses: 4
    Dernier message: 13/01/2009, 11h49
  3. Acces à une base oracle
    Par miniworker dans le forum Windows Mobile
    Réponses: 1
    Dernier message: 12/07/2007, 23h13
  4. [Oracle] Accès concurrent à une base de données
    Par schniouf dans le forum JDBC
    Réponses: 8
    Dernier message: 29/09/2006, 16h10
  5. Accès à une base Oracle
    Par vplf dans le forum Bases de données
    Réponses: 5
    Dernier message: 06/04/2006, 08h42

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