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 :

VB6 & SQL Server 2012


Sujet :

VB 6 et antérieur

  1. #1
    Candidat au Club
    VB6 & SQL Server 2012
    Bonjour,
    Je recherche en vain à pouvoir interagir avec ma base de données SQLserver.
    J'ai la connexion, je peux lire les données et les retourner dans un msflexgrid, mais par contre, lorsque je veux modifier, ajouter un élément, il m'indique :
    Le jeu d'enregistrements suivant ne prend pas en charge la mise à jour. Il s'agit peut être d'une limitation du fournisseur ou du type de verrou sélectionné."
    Quelqu'un aurait la solution?
    En vous remerciant.
    Guy.

  2. #2
    Rédacteur/Modérateur

    Salut, bienvenue sur DVP

    Un peu de ton code, la connexion à la base de données, le branchement à ta table, permettrait sûrement de t'aider efficacement.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  3. #3
    Candidat au Club
    Citation Envoyé par ProgElecT Voir le message
    Salut, bienvenue sur DVP

    Un peu de ton code, la connexion à la base de données, le branchement à ta table, permettrait sûrement de t'aider efficacement.
    Bonjour,

    Merci de cette rapide réponse.
    Voici ci dessous le code demandé.
    En te remerciant encore de ton aide.
    Bien à toi .
    Guy

    Dans le Module
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Cnx As New ADODB.Connection
     
        Public Function ConnexionSQL()
            Set Cnx = New ADODB.Connection
            Cnx.ConnectionTimeout = 25
            Cnx.CommandTimeout = 180
            Cnx.CursorLocation = adUseClient
            Cnx.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Audiciel;Data Source=DESKTOP-J96RF2E;Trusted_Connection=True;"
            Cnx.Open
            MsgBox (" La Base de données Audiciel est ouverte et active")
        End Function

    Dans le form:
    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
    Sub Edit_Data()
        With MSFlexGrid1
     
        'déclarations
            Dim Inp As String
            Dim SelectedField As String
            Dim Rec As New ADODB.Recordset
     
        'ouvre la table
            ConnexionSQL
            strsql = "select Users_Password FROM users Where users_Id = " & .TextMatrix(.Row, 0)
            Rec.Open strsql, Cnx
            Rec.Fields(0) = Inp
     
        'Ferme la DB
            Cnx.Close
            MsgBox (" La Base de données Audiciel est à présent refermée")
     
        'recharge la table
            Call Me.ChargeData
     
        End With
    End Sub

  4. #4
    Rédacteur/Modérateur

    Salut

    Ta ligne 12 dans le code du form, essais
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
            Rec.Open strsql, Cnx, adOpenStatic, adLockPessimistic
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  5. #5
    Candidat au Club
    Merci de ta réponse.Cette étape fonctionne.

    Mais à présent sur le code modifié (voir ci-dessous), il me change la valeur sur TOUS les enregistrements de la table
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ConnexionSQL
    strsql = "select Users_Password FROM users Where users_Id = " & .TextMatrix(.Row, 0)
    Rec.Open strsql, Cnx, adOpenStatic, adLockPessimistic
    Rec.Fields(0) = Inp
    Rec.Update


    et me retourne l'erreur :
    Erreur d'exécution '-2147467259 (80004005)'
    Informations sur la colonne clé insuffisantes ou incorrectes. Trop de lignes sont affectées par la mise à jour.
    Il me semble bien lui dire de me ressortir l'enregistrement sur un index (clé unique qui plus est) se trouvant dans la cellule sélectionnée.

    PS : Comme tu l'auras peut être remarqué, je suis très (très) novice. C'est la première fois que je me lance dans une connexion avec SQL server. Jusqu'ici, j'ai toujours attaqué des bases de données MDB.

    Aurais tu des liens parmi lesquels je pourrais me documenter de façon plus pragmatique?

    En te remerciant encore vivement.

    Bien cordialement

    Guy.

  6. #6
    Rédacteur/Modérateur

    Re

    Peux tu nous mettre ce que tu lis de la requête MsgBox strsql, juste avant l'ouverture de la table.
    De plus, suite à l'ouverture de la table, fait un
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    Rec.MoveFirstg
    Rec.MoveLast
    MsgBox Rec.RecordCount
    Cela confirme le renvoi de tous les enregistrements de ta BD ?
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  7. #7
    Candidat au Club
    Re,

    1. MsgBox(strsql) rend : select users_password from Users where users_id=2
    2. Rec.RecordCount rend 1

    Bien à toi.

    Guy

  8. #8
    Rédacteur/Modérateur

    Re ...re

    Essais de préciser le nom du champ à remplir Rec.Fields("NomDuChamp") = Inp, l'erreur retournée étant pour partie
    Informations sur la colonne clé insuffisantes ou incorrectes.
    Sinon, Fields(0) ne doit pas correspondre au champ clef de la table, surtout s'il est auto-incrémenté.
    Aurais tu des liens parmi lesquels je pourrais me documenter de façon plus pragmatique?
    Un lien pour Un peu de lecture
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  9. #9
    Candidat au Club
    Re-Bonjour,
    Malgré les modifications apportées, la procédure passe bien la modification dans la table … mais à tous les champs, puis ensuite génère le message d'erreur.
    Est-ce qu'il me faut donner d'autres paramètres à rec.update qui pose problème ?

  10. #10
    Candidat au Club
    * * * * * * * *
    J'ai trouvé !!!!!! c'est tout con.
    Le paramètre adLockPessimistic n’est pas pris en charge si la propriété CursorLocation a la valeur adUseClient.
    Or, elle l'était. je l'ai faite sauter et …. ca marche !

    Encore un tout grand merci pour ton aide.
    (Il se peut toutefois que vu mon expérience, il me faille encore crier à l'aide …)

    Bien à toi.
    Guy.