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

VB 6 et antérieur Discussion :

[ADO]Repertorier les champs avec OpenSchema à problème sous Oracle


Sujet :

VB 6 et antérieur

  1. #1
    Membre extrêmement actif
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 221
    Par défaut [ADO]Repertorier les champs avec OpenSchema à problème sous Oracle
    Bonjour !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Set tempRs = cn.OpenSchema(adSchemaColumns,Array(Empty, Empty, "MaTable1")
     
    While Not tempRs.EOF
       Debug.Print tempRs!COLUMN_NAME
       tempRs.MoveNext
    Wend
    Le problème c'est que ça génère une exception qui serait capturée par try...catch... dans les autres langages !
    Je me demande si OpenSchema(adSchemaColumns) ne marche pas pour Oracle; dans l'aide MSDN, rien ne mentionne Oracle, seulement Ole Db, vsam, db/2, etc.

    En fait, que dois contenir l'array du 2è argument ?

    REM : si je mets Empty comme 3è élément du critère, pas d'exception mais le recordset est vide (rs.EOF = true)
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Par défaut
    franchement, ça me surprendrait que cela marche

    Essaye ça, connecté avec sys/***@db AS SYSDBA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT tc.TABLE_NAME,tc.COLUMN_NAME FROM all_tab_columns tc
    WHERE tc.OWNER= 'le schéma qui t''intéresse'

  3. #3
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut
    Voila une source que j'ai faite il y a quelque temps deja, elle permatait de faire ce que tu veux, mais avec une base ACCES, rassure toi il y a aussi des explication pour utiliser une base oracle .

    Lien

  4. #4
    Membre extrêmement actif
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 221
    Par défaut
    Je ne comprends pas ton approche vld44 ! Donc, au lieu de OpenSchema(), je fais quoi avec cette requête que tu as donnée ?

    J'ai vu ton lien sovo !! En effet, ça marche très bien pour Access mais pour Oracle, cnx.OpenSchema(adSchemaTables) marche mais OpenSchema(adSchemaColumns) ne marche pas, il n'y a pas d'erreur comme j'ai dit mais le recordset retourné est vide !!! Donc, ça marche pas
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Par défaut
    ouvre un recordset avec la requête que je t'ai donnée (adodb), et tu auras toutes les tables et les colonnes de ton schéma.

  6. #6
    Membre extrêmement actif
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 221
    Par défaut
    Et oui ton truc marche Vld44 !
    Mais pourquoi alors OpenSchema(adSchemaColumns,...) ne marche pas ou est-ce une remarque que je dois prendre que seul adSchemaTable marche pour Oracle ?
    En fait, comment doit-on ranger l'ordre de ce SELECT pour avoir les même fields que ceux retournés "normalement" par OpenSchemar(adSchemaColumns) ?
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  7. #7
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Par défaut
    Non mais faut bien se dire que ADO c'est Microsoft, et que le partenariat avec Oracle n'est pas parfait. Peut-être que c'est possible d'utiliser openschema, mais selon moi c'est encore un truc tout fait pour les bases access ou sqlserver sur lesquelles msft a la main ! Imagine, (peu probable mais ...) demain oracle change son api qui retourne toutes les colonnes d'une table. Quid d'ado ?

    Bref, utilises ado comme gestionnaire de requêtes je pense que tu limiteras les risques car ainsi tu pourras contrôler la compatibilité de tes accès en fonction des versions d'oracle etc.

  8. #8
    Membre extrêmement actif
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 221
    Par défaut
    Et oui c'est vrai Vld44, merci !!
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  9. #9
    Membre extrêmement actif
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 221
    Par défaut
    De retour les amis !

    Avez-vous des liens ou des docs concernant l'utilisation d'ADO pour une bd Oracle ? car il s'avère que ce n'est pas seulement OpenSchema qui n'est pas compatible avec Oracle !!
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  10. #10
    Membre extrêmement actif
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 221
    Par défaut Rectification
    Voila une source que j'ai faite il y a quelque temps deja, elle permetait de faire ce que tu veux, mais avec une base ACCESS, rassure toi il y a aussi des explication pour utiliser une base oracle
    Ton truc marche sovo pour Oracle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Command1_Click()
        Set CNX = New ADODB.Connection
     
        CNX.Provider = "MSDAORA.1"
        CNX.ConnectionString = "Provider=MSDAORA.1;Password=blabla;User ID=system;Data Source=mysid_10.12.1.2;Persist Security Info=True"  'Le de ta base de donnee
     
        CNX.Open
    End Sub
    Donc, je rectifie tous les dire auparavant car OpenSchema(adSchemaColumns) marche à merveille pour Oracle du moins avec 9i et 10g !!!
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  11. #11
    Membre Expert
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Par défaut
    Citation Envoyé par randriano
    Ton truc marche sovo pour Oracle
    c bien d'entendre ca

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/03/2007, 17h31
  2. [MySQL] Differencier les champs avec et sans accent.
    Par Rakken dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 08/12/2006, 18h18
  3. bloqué/debloqué les champs avec un radio boutton
    Par flOZ dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/05/2006, 08h30
  4. Récupérer tous les champs avec un DISTINCT
    Par Le Mérovingien dans le forum Requêtes
    Réponses: 3
    Dernier message: 04/11/2005, 23h58
  5. Réponses: 4
    Dernier message: 19/10/2005, 11h26

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