Forums Développement Multimédia

Les formations Mediabox
Les formations Mediabox

Les erreurs relatives à l'utilisation des bases de données

Compatible .NET. Cliquer pour en savoir plus sur les compatibilités.Par JF, le 08 juin 2005

Les messages d'erreur sont en anglais. Si vous avez une erreur de ce type en français, veuillez S.V.P. me les faire suivre par messagerie privée afin de compléter ce tutoriel. JF est l'auteur de cet article, si vous voulez le contacter envoyez-lui un message privé (MP).

Cannot update. Database or object is read-only.

Cannot update. Database or object is read-only.
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access Driver] Cannot update. Database or object is read-only.

Généralement la première erreur que les développeurs découvrent. Le message d’erreur, cependant, nous laisse croire que la base de données est en lecture seul, ce qui n’est généralement pas le cas. En fait, il s’agit d’un problème de gestion des permissions sur la base de données et/ou le répertoire où elle se situe.

Vous trouverez plus d’informations dans un tutoriel sur le gestion des permissions du serveur prochainement.

Operation must use an updateable query

Operation must use an updateable query
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query.

Encore une fois, le message d’erreur est trompeur. Ou plus ou moins. Il se peut effectivement que la requête SQL de modification des données soit erronée. Plus souvent qu’autrement, le problème est similaire au précédent : vous n’avez pas les permissions nécessaires pour effectuer des changements dans la base de données.

Vous trouverez plus d’informations dans un tutoriel sur le gestion des permissions du serveur prochainement.

Could not use '(unknown)'; file already in use

Could not use '(unknown)'; file already in use
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access Driver] Could not use '(unknown)'; file already in use.

Encore une fois, des problèmes de gestion de permissions. Vous trouverez plus d’informations dans un tutoriel sur le gestion des permissions du serveur prochainement.

Il se peut également que vous ayez certains problèmes de pilotes ODBC. Vous pouvez télécharger la plus récente version des pilotes de bases de données de Microsoft sur la section Data de leur site (au moment d’écrire ces lignes, la plus récente version stable est la 2.71).

Enfin, avec certaines connexions DSN-Less, le serveur est lent à supprimer le fichier d’échange de données, ce qui laisse croire à une application tentant de se connecter que le fichier est présentement utilisé, même si c’est faux. Ça cause certains problèmes également à la destruction de ce dit fichier. La seule solution connue (de moi) pour le supprimer efficacement est de repartir sa machine.

General error Unable to open registry key

General error Unable to open registry key
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x6cc Thread 0x78c DBC 0x144cfc4 Jet'.

Il est encore fort probable que des problèmes de permissions affichent cette erreur. Assurez-vous que l’utilisateur IUSR_nomdevotremachine a des droits suffisants pour accéder à la base de registre.

Cependant, dans la majeure partie des cas, le problème se situe dans le chemin d’accès que vous fournissez pour trouver la base de données. Avec cette erreur, le chemin est généralement erroné et conduit le serveur au mauvais endroit. Utilisez un chemin physique du serveur (C:\Inetpub\wwwroot\dbase\mabase.mdb) au lieu d’un chemin relatif à partir de votre fichier ASP (/dbase/mabase.mdb).

Either BOF or EOF is True, or the current record has been deleted

Either BOF or EOF is True, or the current record has been deleted
ADODB.Recordset (0x800A0BCD)
Either BOF or EOF is True, or the current record has been deleted.
Requested operation requires a current record.

Cette erreur survient lorsque vous tentez d’accéder à un jeu d’enregistrement (RecordSet) qui n’existe pas, qui a été détruit précédemment ou qui n’est pas ouvert.

Elle peut également apparaître lorsqu’un enregistrement recherché retourne aucune donnée et que vous tentez d’y lire quelque chose. L’erreur se déclenche lors de l’accession à ce jeu d’enregistrement vide.

La solution la plus simple est de contourner, par une condition, le jeu d’enregistrement s’il est vide.

Par exemple :

If Not Rs.EOF Then

Could not find file

Could not find file
Microsoft JET Database Engine (0x80004005)
Could not find file 'C:\Inetpub\wwwroot\dbase\mabase.mdb'.

Cette erreur a le mérite d’être claire. Bref, le serveur ne trouve pas la base de données recherchée dans le répertoire spécifiée. Utilisez un chemin physique du serveur (C:\Inetpub\wwwroot\dbase\mabase.mdb) au lieu d’un chemin relatif à partir de votre fichier ASP (/dbase/mabase.mdb).

Too few parameters. Expected 1

Too few parameters. Expected 1
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

Cette erreur survient lorsque vous tentez d’accéder à une colonne qui n’existe pas. Vérifiez le nom des champs de votre base de données ainsi que ceux contenus dans la page ASP appelant la BD.

Table 'nom_de_la_table' is exclusively locked by user 'Administrator' on machine 'Jeff'
Microsoft JET Database Engine error '80004005'
Table 'nom_de_la_table' is exclusively locked by user 'Administrator' on machine 'Jeff'.

Votre table est ouverte dans Access. Fermez-la et réessayez. Faut avoir connu ce problème pour le savoir! ;)

:!: Si vous connaissez d’autres problèmes de connexion à des bases de données, n’hésitez pas à utiliser la salle Intégration ASP afin de nous les faire connaître. Nous tenterons de vous aider et d’optimiser ce tutoriel.