1

サポートしているレガシーASPアプリケーションがあります。サポートとは、2005年頃から、機能したばかりなので触れていないことを意味します。

ただし、ASPアプリケーションが使用するAccessデータベースにはいくつかのデータの問題がありました。愚か者のように、私はファイル共有を介してデータベースを直接開き(MS Access 2007を使用)、データを修正して保存しました(Access 2000形式で)。

これで、アプリケーションはデータを取得して表示しますが、更新はエラーで失敗します3705: Operation is not allowed when the object is open。コードを変更したことはありません。唯一の変更は、データの更新とデータベースの保存でした。

このエラーの例はたくさんありますが、それらはすべて、レコードセットを開く前に閉じていることを確認したり、CursorLocation列挙型を変更したりするなど、かなり単純な問題に関連しています。動作しますが、何もありません。

どうすればこれを修正できますか?

ありがとう。

アップデート

Webベースのアクセスデータベース管理システムをインストールし、データベースの圧縮と修復を試みました。エラーが発生しました:

The Microsoft Jet database engine cannot open the file '<snip>'. It is
already opened exclusively by another user, or you need permission to view
its data. (-2147217911)

ここで詳しく説明するマクロを実行して、データベースにログオンしているユーザーを特定し、管理者ユーザー(実行中は私)を表示しました。

4

2 に答える 2

0

これらのエラーは1つのことを意味します。データベースファイルが他のプロセスによって開かれているため、ロックされています。

「Webベースのアクセスデータベース管理システム」が原因である可能性が最も高いので、ファイルをロックしないように構成する方法を見つけるか、ファイルを削除してみてください。

回避策または実際の問題を確認する方法として、.mdbファイルを別の場所にコピーし、従来のASP接続文字列を変更して、新しい場所でデータベースを更新できるかどうかを確認できます。

于 2012-11-04T08:40:37.157 に答える
0

ファイルとフォルダのアクセス許可の確認に関する上記の@Remouのコメントは正しかった。

サーバー管理者にアクセス許可を確認してもらいましたが、書き込みアクセス権がフォルダーから削除されたようです(ファイルもフォルダーからアクセス許可を継承します)。彼は、ファイル共有に直接保存するときにこれが以前に起こったことがあると言いました。

(@Remouからの回答の代わりに受け入れる)

于 2012-11-14T04:18:19.580 に答える