Erreur lors d'une update

Résolu
gskorski Messages postés 12 Date d'inscription mardi 17 août 2004 Statut Membre Dernière intervention 18 novembre 2004 - 3 nov. 2004 à 12:50
gskorski Messages postés 12 Date d'inscription mardi 17 août 2004 Statut Membre Dernière intervention 18 novembre 2004 - 9 nov. 2004 à 11:24
J'ai un problème lors d'une update.

J'ai un recordset auquel je fais des modifs puis à la fin je fais un .update

A ce moment là j'ai l'erreur suivante:

Key column information is insufficient or incorrect. Too many rows were affected by update.

7 réponses

gskorski Messages postés 12 Date d'inscription mardi 17 août 2004 Statut Membre Dernière intervention 18 novembre 2004
9 nov. 2004 à 11:24
J'ai trouvé le probleme. En fait dans ma requete sql il faut que je selectionne la clé primaire sinon il ne sait pas quelle ligne mettre à jour.
3
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
3 nov. 2004 à 14:14
Si tu peux, envoies le code pour qu'on sache si tu as fais du ADO ou DAO et voir l'acces à la table , requete simple ou imbrique

tu utilises vb ou .NET ?

:-p [mailto:cyberscorp2004@msn.com MSN] :big) [mailto:frop01@yahoo.fr YAHOO] >:)

Membre du club CodeS-SourceS
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
3 nov. 2004 à 21:59
Il te manque des informations pour ta base ou alors des format ne sont pas correct par rapports aux types de données que ta base peux contenir ou encore certaines valeurs sont trop grandes pour tes champs de base

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
0
gskorski Messages postés 12 Date d'inscription mardi 17 août 2004 Statut Membre Dernière intervention 18 novembre 2004
4 nov. 2004 à 09:43
Voilà le bout de mon code concerné:

Private Sub ajout_image_Click()

CommonDialog1.ShowOpen

FileCopy CommonDialog1.filename, App.Path & "\tmp.jpg"

Image1.Picture = LoadPicture(App.Path & "\tmp.jpg")

Call requete(Rs, "SELECT image,imsize FROM Films WHERE id=" & identifiant)

With Rs

ObtenirImage App.Path & "\tmp.jpg", Rs
.Update

End With

Rs.Close


End Sub

Public Sub ObtenirImage(filename As String, rstMain As ADODB.Recordset) ' Pour Obtenir une Image

Dim file_num As String
Dim file_length As Long
Dim bytes() As Byte
Dim num_blocks As Long
Dim left_over As Long
Dim block_num As Long

file_num = FreeFile ' Prochain Numéro de Fichier Pouvant être Utilisé par l'Instruction Open

Open filename For Binary Access Read As #file_num ' Ouverture du Fichier Temporaire
file_length = LOF(file_num)
If file_length > 0 Then
num_blocks = file_length / BLOCK_SIZE
left_over = file_length Mod BLOCK_SIZE

rstMain("imsize") = file_length

ReDim bytes(BLOCK_SIZE)

For block_num = 1 To num_blocks
Get #file_num, , bytes()
rstMain("image").AppendChunk bytes()
Next block_num

If left_over > 0 Then
ReDim bytes(left_over)
Get #file_num, , bytes()
rstMain("image").AppendChunk bytes()
End If
Close #file_num
End If

Exit Sub

End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
4 nov. 2004 à 09:47
Dans ton code :

With Rs

ObtenirImage App.Path & "\tmp.jpg", Rs
.Update

End With


Tu ne sélectionne aucun enregistrement et ne change aucune données c'est pour cela.

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
4 nov. 2004 à 09:49
De plus :

rstMain("imsize") = file_length


ça, ça ne marche pas car pour mettre à jour un enregistrement ou l'enregistrer, il faut faire plutôt ce genre de truc :

with rstMain
  !imsize = file_length
end with


Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
0
gskorski Messages postés 12 Date d'inscription mardi 17 août 2004 Statut Membre Dernière intervention 18 novembre 2004
4 nov. 2004 à 11:47
Les données sont changées dans la fonction ObtenirImage

la commande rstMain("imsize") = file_length marche bien, j'ai pu le vérifier.

En fait l'erreur ne se produit que dans certains cas. Si je rajoute un enregistrement dans ma base et que j'appelle cette fonction, j'ai pas l'erreur. par contre si j'ajoute plusieurs enregistrements et que je l'appelle ,à ce moment j'ai l'erreur.
0
Rejoignez-nous