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

Python Discussion :

Exécution classe de connexion à une base Oracle


Sujet :

Python

  1. #1
    Membre éclairé Avatar de dedalios
    Homme Profil pro
    concepteur d'application
    Inscrit en
    Février 2008
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : concepteur d'application
    Secteur : Santé

    Informations forums :
    Inscription : Février 2008
    Messages : 495
    Par défaut Exécution classe de connexion à une base Oracle
    bonjour


    voici un code de connexion en base oracle
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    # coding: utf-8  
    '''
     
    '''
    import cx_Oracle
     
    class Oracle(object):
     
        def connect(self, username, password, hostname, port, servicename):
            """ Connection  à la database. """
     
            try:
                self.db = cx_Oracle.connect(username, password
                                    , hostname + ':' + port + '/' + servicename)
            except cx_Oracle.DatabaseError as e:
                # Log error as appropriate
                raise
     
            # If the database connection succeeded create the cursor
            # we-re going to use.
            self.cursor = self.db.cursor()
     
        def disconnect(self):
            """
           Déconnectez-vous de la base de données. Si cela échoue, par exemple
            si l'instance de connexion n'existe pas, ignorez l'exception.
            """
     
            try:
                self.cursor.close()
                self.db.close()
            except cx_Oracle.DatabaseError:
                pass
     
        def execute(self, sql, bindvars=None, commit=False):
            """
            Exécutez toutes les instructions SQL transmises à la méthode;
            valider si spécifié. Ne spécifiez pas fetchall () ici comme
            l'instruction SQL n'est peut-être pas une sélection.
            bindvars est un dictionnaire de variables que vous transmettez pour exécuter.
            """
     
            try:
                self.cursor.execute(sql, bindvars)
            except cx_Oracle.DatabaseError as e:
                # Log error as appropriate
                raise
     
            # Only commit if it-s necessary.
            if commit:
                self.db.commit()
     
     
    if __name__ == "__main__":
     
     
        oracle = Oracle.connect(  'username', 'password', 'hostname', 'port', 'servicename')
     
        try:
            # Pas de validation car vous n'avez pas besoin de valider DDL.
            oracle.execute('ddl_statements')
     
        # Assurez-vous que nous nous d�connectons toujours de la base de donn�es pour �viter
        # ORA-00018: nombre maximal de sessions d�pass�.
        finally:
            oracle.disconnect()
    Je suis perplexe sur ce qu'il ce passe lors de l’exécution


    et voici l'erreur
    oracle = Oracle.connect( 'username', 'password', 'hostname', 'port', 'ervicename')
    TypeError: connect() missing 1 required positional argument: 'servicename'
    cette exemple vient de ce site https://stackoverflow.com/questions/...good-practices


    pourquoi la fonction affiliée à cette classe réagit-elle étrangement comme si elle demandait 6 paramètres ?

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 720
    Par défaut
    Salut,

    Citation Envoyé par dedalios Voir le message
    pourquoi la fonction affiler a cette class réagit elle etrangement comme si elle demandé 6 paramètres ?
    Parce que la fonction a effectivement 6 paramètres alors que la méthode n'en a que 5.
    Cette subtilité étant une des bases de la POO avec Python.

    Ce qui veut dire aussi que l'exemple que vous avez récupéré sur Internet n'a pas été testé par son auteur (ce qui n'a aucune importance vu le sujet de la discussion).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre éclairé Avatar de dedalios
    Homme Profil pro
    concepteur d'application
    Inscrit en
    Février 2008
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : concepteur d'application
    Secteur : Santé

    Informations forums :
    Inscription : Février 2008
    Messages : 495
    Par défaut
    c'est bien ce que j'avais déduit aussi.
    mais j'avais un doute

    il me reste plus qu'à rependre ce code pour le corriger

Discussions similaires

  1. Pilote JDBC pour se connecter à une base Oracle
    Par elodie59310 dans le forum Oracle
    Réponses: 3
    Dernier message: 22/06/2006, 16h21
  2. [Oracle] se connecter à une base Oracle
    Par scorpking dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 22/05/2006, 15h23
  3. [VBA]Connecter une base oracle depuis Excel
    Par roadster62 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/01/2006, 14h34
  4. [Oracle 9i] Connection à une base Oracle
    Par be_tnt dans le forum Connexions aux bases de données
    Réponses: 5
    Dernier message: 24/11/2005, 12h28
  5. les users connectés à une base oracle
    Par progima dans le forum Oracle
    Réponses: 8
    Dernier message: 08/11/2005, 17h43

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