- ベストアンサー
ASPで,mdbファイルへのinsert文のエラー
ASPで,guestbook.mdbファイルへ接続,はOK, そしてinsert文で新規レコードを追加しようとすると エラーが出てしまいます。 select文は使えるのですが。 エラーの内容は, エラー タイプ Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Microsoft Access Driver] 更新可能なクエリであることが必要です。 /asp_server/toda/guestbook.asp, line 24 です。 dbへの接続方法は, '***** データベース(guestbook.mdb)に接続 ***** Set ObjConn = Server.CreateObject("ADODB.Connection") ObjConn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & _ Server.Mappath("guestbook.mdb") です。 問題は, '***** 名前とメッセージが空白でないときはデータ追加SQLを実行 ***** StrSQL = "insert into T_Message (name, word, entrydate) " & _ "values ('" & name & "','" & word & "',#" & entrydate & "#)" ObjConn.Execute(StrSQL) ここの,ObjConn.Execute(StrSQL)でエラーが起こります。 なぜエラーが出るのでしょうか。原因と対処方法をおしえていただけませんでしょうか? 「更新可能なクエリであることが必要です。」というエラーなので何かの設定の問題でしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
フォルダへの書き込み権限がないんじゃないですか? InsertするってことはMDBファイルを更新するってことです。
その他の回答 (4)
- akiaki2
- ベストアンサー率59% (16/27)
皆さんの言うとおり、権限かな?とも思います。 あと単純にSQLが間違ってたりして・・・?(私はよく間違います(^^;) 一度、strSQLをページ上に吐き出してみて、そのSQLをコピーして、guestbook.mdbで新しくクエリを作って貼り付けて実行してみてはどうでしょう。 SQLが間違っていればguestbook.mdbでもエラーになりますよね(^^) ではがんばってください
お礼
みなさんありがとうございました。 エクスプローラ中の.mdbファイルを右クリックし、 プロパティのセキュリティを「許可」にすることによって できました。
- blood_kazuaki
- ベストアンサー率40% (39/96)
ASP-mdb開発者です~ 毎日大苦戦しています^^; 【更新可能なクエリであることが必要です。】 考えられる原因は3つですね。 1.SQL文が間違ってる Accessのクエリで確認してみて下さい~ 2.INSERT文でvaluesで入れてる値が空の値 空の値をINSERTすると、このエラーが発生する可能性があります。 3.サーバの設定でIUSR_****の権限の問題 まず、ファイルに読み取りと書き込み権限が必要です。 さらに、フォルダには読み取り・書き込み・削除権限が必要です。 なぜなら、Accessはldbファイルを作成しますので、ldbファイルを削除する権限が必要なのです^^; もしうまくいかなかったら、「フルコントロール」にするのも手ですが、、、 最後にアドバイスですが、wwwからは見えない場所にmdbファイルは置いて下さい^^; では~
- you111111
- ベストアンサー率45% (20/44)
WebUserの権限が不足してるとか? ・・・関係ないかな?自信なしです。
> インターネット サービス マネージャで該当フォルダの「読み取り」「書き込み」もOKにしてありますし,「guestbook.mdb」のほうも「書き込み可」にしてあるのですが。なにかほかの設定があるのでしょうか?OSはWin2000Professionalです。 一応実際のディレクトリのプロパティでもアクセス権を確認してみてください。
お礼
ありがとうございました。
補足
ありがとうございます。 そうなんです。インターネット サービス マネージャで該当フォルダの「読み取り」「書き込み」もOKにしてありますし,「guestbook.mdb」のほうも「書き込み可」にしてあるのですが。なにかほかの設定があるのでしょうか?OSはWin2000Professionalです。