Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Membre émérite
    Homme Profil pro Pierre-Jean
    Développeur informatique
    Inscrit en
    février 2010
    Messages
    704
    Détails du profil
    Informations personnelles :
    Nom : Homme Pierre-Jean
    Âge : 33
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : février 2010
    Messages : 704
    Points : 915
    Points
    915

    Par défaut Problème de droits avec bibliothèque ADO

    Bonjour,
    J'espère que je poste au bon endroit. Voici le problème :
    J'ai développé un outil sous ACCESS 97 (et oui ) pour interroger une base Oracle fonctionnant avec Oracle E-business Suite. Jusqu'ici tout marche bien lorsque j'interroge les tables d'E-business. J'utilise un login en lecture seule et la bibliothèque ADO (Active Data Objects) de Microsoft en VBA.
    On a créé 2 tables dans la base de données avec (normalement) les droits qui vont bien. Mais quand j’interroge ces tables (exactement de la même manière : avec ADO et le même login), j'ai l'erreur ORA-01031: privilèges insuffisants lorsque je veux passer d'un enregistrement à un autre (méthode MoveNext de l'objet RecordSet).

    Si quelqu'un a une piste, je suis preneur car là on est deux sur le problème et on sèche Merci d'avance pour vos réponses.
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

  2. #2
    Membre émérite
    Homme Profil pro Pierre-Jean
    Développeur informatique
    Inscrit en
    février 2010
    Messages
    704
    Détails du profil
    Informations personnelles :
    Nom : Homme Pierre-Jean
    Âge : 33
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : février 2010
    Messages : 704
    Points : 915
    Points
    915

    Par défaut

    Bon, finalement en regardant sur le web anglophone, j'ai réussi à trouver l'origine du problème ! Ce n'était pas un problème de droits sur la table mais plutôt un problème de paramétrage du recordset avec ADO. Voici la solution :
    Citation Envoyé par brucevde
    Since the recordset is still connected to the database, any updates you make are automatically committed to the database when you move to the next record.

    Use a Disconnected ClientSide recordset. You can then update the recordset without updating the database. Note the changes to the Recordset.CursorLocation property and the Recordset.Open method

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    myconnection.Open "DSN=" + db_name + ";UID=" + UserName + ";PWD=" 
    & Password + ";"
     
    myrecordset.CursorLocation = adUseClient
     
    myrecordset.Open "SELECT C3_BOOK, C2_XREF FROM ZARCH.Z_TEPL_F_
    20080131 T WHERE 1 = 1 AND ROWNUM < 5", myconnection, 
    adOpenStatic, adLockBatchOptimistic
     
    Set myRecordset.ActiveConnection = Nothing 'Disconnect from database.
    myconnection.Close 'close the connection it is no longer needed.
     
    If Not myrecordset.BOF And Not myrecordset.EOF Then
       Do
           myrecordset.Fields("C2_XREF") = "DUMMY"
           MsgBox "value is:" & myrecordset.Fields(0) & " " & myrecordset.Fields(1)
           myrecordset.MoveNext
       Loop Until myrecordset.EOF = True
    End If
     
    myrecordset.Close
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •