2010-08-02 3 views
1

Si "lecture seule" est cochée dans les propriétés du bureau Windows pour un fichier .dbf ou .mdb, et une connexion Delphi 6 ADO (disons, par Jet pour un fichier .mdb ou ODBC pour un fichier .dbf) est puis utilisé pour ouvrir cette base de données, TADOTable.CanModify renvoie la valeur true et TADOTable.ReadOnly renvoie la valeur false, le défaut de détection du fichier étant réellement en lecture seule.ADO est-il impossible de signaler qu'une base de données est marquée en lecture seule?

De la source VCL, il ressemble à .CanModify doitêtrebien de supports (xUpdates) et .ReadOnly est défini à partir du LockType (même « lecture seule source de données » dans TADOConnection.Properties renvoie 0), alors ces propriétés ressemblent plus à des outils de détection des options de connexion que de détection de l'état en lecture seule de la base de données .

Alors, quelle est la bonne technique ADO pour détecter une base de données est marqué en lecture seule avant TADOTable.Edit est tenté? Il semble que la solution ne devrait pas être spécifique aux fichiers Windows, mais une sorte de technique indépendante de la base de données utilisant simplement ADO. Quelle est la solution?

Répondre

0

C'est dommage, mais vous ne pouvez pas.

Cependant, comme le nom de fichier fait partie de la chaîne de connexion, vous pouvez vous-même vérifier.

+0

Pour un fichier .txt ou .dbf, la chaîne de connexion peut nommer uniquement la "base de données" (le dossier parent) et le fichier est la table (éventuellement marquée indépendamment en lecture seule). par conséquent, vous devez vérifier aux deux niveaux (le fichier nommé dans la chaîne de connexion pour certaines bases de données, ou la table elle-même pour d'autres types de bases de données). –

Questions connexes