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

Accès aux données Discussion :

Transaction ODBC pour Access : Définition de l'attribut impossible à ce stage


Sujet :

Accès aux données

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 51
    Points : 34
    Points
    34
    Par défaut Transaction ODBC pour Access : Définition de l'attribut impossible à ce stage
    Bonjour,

    je suis sur une application où j'ai une transaction qui me permet d'ajouter une zone. Le problème, lorsque je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With o_SQLInsertZone
        TRANS = .Connection.BeginTransaction
        .Transaction = TRANS
        etc...
    End With
    le logiciel m'affiche une exception en me mettant ceci:
    ERROR [HY011] [Microsoft][Pilote ODBC Microsoft Access]Définition de l'attribut impossible à ce stage
    Je présume que c'est le pilote que j'utilise pour me connecter à la base qui n'est pas compatible mais je ne sais pas comment le changer...
    J'ai vu sur pas mal de site que une version récente de ce pilote ODBC évite ces erreurs. J'ai une version compatible de ce pilote mais mon logiciel n'a pas l'air de s'en servir...

    Comment puis-je faire?

  2. #2
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 51
    Points : 34
    Points
    34
    Par défaut
    Bon, j'ai réussi à passer cette erreur (ne me demandais pas comment je n'en ai aucune idée)

    Maintenant, j'ai un autre souci: il m'indique un problème de conversion de String en Decimal. Or je n'ai nul part une valeur décimale (ni dans ma base, ni dans mes variables).

    Je vous met l'extrait de code concerné:
    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
    Public Function AjoutZone(ByVal TheZone As ZoneData) As Boolean
            Dim TRANS As Odbc.OdbcTransaction = Nothing
            Dim Aretourner As Boolean = False
            Dim nb As Integer
     
            Try
                With o_SQLInsertZone
                    TRANS = .Connection.BeginTransaction
                    .Transaction = TRANS
                    'INSERT INTO [Zone]
                    '(ZONCode, ZONLibelle)
                    'VALUES (?,?)
                    With .Parameters
                        .Item(0).Value = TheZone.Code                    
                        .Item(1).Value = TheZone.Libelle               
                    End With
                    nb = .ExecuteNonQuery()
                End With
                If nb = 1 Then
                    TRANS.Commit()
                    Dim Z As New Zone(TheZone.Code, TheZone.Libelle)
                    o_Zones.Add(Z)
                    Aretourner = True
                Else
                    TRANS.Rollback()
                End If
            Catch ex As Exception
                If TRANS IsNot Nothing Then
                    TRANS.Rollback()
                End If
            End Try
            Return Aretourner
        End Function
    D'où peut venir le problème?

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Sur quelle ligne l'erreur se produit ?
    Le constructeur de la classe Zone, il prend quoi comme paramètres ?

  4. #4
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 51
    Points : 34
    Points
    34
    Par défaut
    La ligne de plantage est la ligne :
    Le constructeur de Zone:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub New(ByVal TheCode As String, ByVal TheLibelle As String)
            o_ZoneData = New ZoneData(TheCode, TheLibelle)
    End Sub
    Et celui de ZoneData:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public Sub New(ByVal TheCode As String, ByVal TheLibelle As String)
            s_Code = TheCode
            s_Libelle = TheLibelle
    End Sub
    Et toutes ces données sont de type String.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Bizarre
    Les colonnes en base sont aussi de type string ? et les paramètres de la commande o_SQLInsertZone aussi ?

  6. #6
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 51
    Points : 34
    Points
    34
    Par défaut
    J'ai revérifié et oui tout est en String...

    J'ai voulu de faire une transaction sur une autre table (composé de la même façon) et cette fois-ci, j'ai une erreur HY104...

    Franchement, je suis dans le brouillard complet...
    En gros sur cette transaction, trois erreurs différentes...

    -HY104 (d'après ce que j'ai compris la taille du champ)
    -le défaut de transaction (que je ne pouvais pas faire à ce stage)
    -et maintenant une sorte d'erreur de cast alors que tout est bon au niveau de types...


  7. #7
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 51
    Points : 34
    Points
    34
    Par défaut
    Le problème de cast est résolu: il faut en fait régler la liste des paramètres de la requête manuellement (nom, type, ...).

    Par contre, j'ai voulu réessayer ma transaction, et il se reproduit le même problème qu'au tout début: soit disant je ne peux pas faire de transaction à ce stage...

    D'où cela peut-il venir?
    Merci de votre aide...

  8. #8
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 51
    Points : 34
    Points
    34
    Par défaut
    Je suis passé sous OLEDB et là aucun souci... Donc je met le problème en résolu... Si j'ai la réponse pour ODBC, je la posterais sur ce sujet...

  9. #9
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 51
    Points : 34
    Points
    34
    Par défaut
    Petite précision: j'essayais de faire des INSERT avec un ODBCDataReader (ce qui ne permet de faire que de la lecture). Donc c'est normal que l'insertion ne fonctionne.

    Pour pouvoir tout faire à la fois, il existe un composant ODBCAdapter qui génère la requête de sélection et les requêtes annexes(INSERT, UPDATE, DELETE).

    En espérant que ça aidera d'autres personnes!!

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

Discussions similaires

  1. Client Oracle sur windows7 lien ODBC pour Access 2007
    Par yassine.benjelloun dans le forum Oracle
    Réponses: 2
    Dernier message: 07/12/2011, 17h02
  2. [AC-2007] Pas de pilote ODBC 32 bits pour Access 2007/2010
    Par Baud10 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 14/06/2011, 18h25
  3. Ciel Quantum Acces ODBC pour Access
    Par hsabban dans le forum Access
    Réponses: 1
    Dernier message: 15/12/2010, 15h42
  4. [ODBC] Config serveur pour lien ODBC vers Access
    Par apidou dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 15/09/2009, 09h32
  5. Lien ODBC oracle pour access
    Par christellel198 dans le forum Oracle
    Réponses: 7
    Dernier message: 29/09/2005, 11h43

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