cs_bouboussjunior
Messages postés23Date d'inscriptionlundi 24 décembre 2001StatutMembreDernière intervention 4 décembre 2002
-
3 déc. 2002 à 14:49
cs_Cerber
Messages postés31Date d'inscriptiondimanche 1 avril 2001StatutMembreDernière intervention 5 décembre 2002
-
5 déc. 2002 à 02:15
Le probleme est que je ne peut pas supprimer d'enregistrement. Je m'explique.
J'utilise la méthode delete (Recordset.delete)
cependant un message d'erreur apparait:
- operation non autorisé pour ce type d'objet
Pourquoi ce message apparait, et pourquoi lma suppression ne se fait pas ?
et comment puis-je y remedié ?????
cs_Cerber
Messages postés31Date d'inscriptiondimanche 1 avril 2001StatutMembreDernière intervention 5 décembre 2002 3 déc. 2002 à 15:38
Salut,
Cela dépend du recordType que tu as donné au recordset à sa création. Suivant la méthode que tu utilise pour te connecter à la base de donnée, il te faut changer une constante.
Moi je me connecte avec ADO:
ex : rs.recordType = adOpenKeyset
te permet seulement de consulter c a d pas de
modification
rs.recordType = adOpenDynamic
la tu peux tout faire, y compris effacer
et il faut mettre a jour après avoir effacer via la methode update ou updatebatch.
cs_bouboussjunior
Messages postés23Date d'inscriptionlundi 24 décembre 2001StatutMembreDernière intervention 4 décembre 2002 4 déc. 2002 à 09:15
Ouai ok !
Moi je passe part un objet data de la façon suivante:
Private Sub Form_Load()
'Affecte le chemin et le nom de la base a la propriété
DataEnregistrement.DatabaseName = Chemin & "" & NomBase
DataEnregistrement.RecordSource = TableE
End Sub
Et pour la propriété RecordsetType j'ai le choix :
- 0 Table
- 1 Dynaset
- 2 Snapshot
Le pb est que avec 0 je ne peut plus naviguer sur mes record, avec 1 pareil mais je peut supprimer
et avec 2 je ne peut pas supprimer mais je peut naviguer entre mes différents enregistrements de ma table !!!!!!!!!!!!
cs_Cerber
Messages postés31Date d'inscriptiondimanche 1 avril 2001StatutMembreDernière intervention 5 décembre 2002 5 déc. 2002 à 02:15
Trouvé dans la msdn :
To maintain data integrity, the Microsoft Jet database engine can lock dynaset- and table-type CdbRecordset objects during Edit (pessimistic locking) or Update operations (optimistic locking) so that only one user can update a particular record at a time. When the Microsoft Jet database engine locks a record, it locks the entire 2K page containing the record.
You can also use optimistic and pessimistic locking with non-ODBC tables. When you access external tables using ODBC through a Microsoft Jet workspace, always use optimistic locking. The LockEdits property and the lockedits parameter of the OpenRecordset method determine the locking conditions during editing.
A dynaset-type CdbRecordset object may not be updatable if:
There isn't a unique index on the ODBC or Paradox table or tables.
The data page is locked by another user.
The record has changed since you last read it.
The user doesn't have permission.
One or more of the tables or fields are read-only.
The database is opened as read-only.
The CdbRecordset object was either created from multiple tables without a JOIN statement or the query was too complex.
(lock no update no delete)