JavaScript初心者入門講座 に関する質問
【質問】
お世話になります。
JavaScript初心者入門講座「Step5・データを追加」で行き詰っております。
下記のような状況です。何卒、ご教示のほどお願いいたします。
①プログラムはコピー&ペーストしています(sample010.html、sample010.jsとも)。
②データベースへの接続・切断はできます。
③「T01Prefecturer」の表示もできます。
④「99、テスト」のデータを追加しようとすると...
⑤sql文のアラートはでます(insert into T01Prefecture values(99,'テスト'))。
⑥ここで、「99、テスト」のデータが追加されません。
⑦エラーメッセージがでております。
ライン:63
文字:3
エラー:[Microsoft][ODBC Microsoft Access Driver]更新可能なクエリであることが必要です。
⑧Accessの「T01Prefecture」をみても、データが追加されておりません。
⑨次の「Step7・変数の中身をブラウザに表示」を試して見ましたが、やはりデータの追加ができません。
変数の中身は表示されますが、「T01Prefecture」が更新されません。
なぜ、このようなエラーがでるのでしょうか?
ご参考まで、プログラムを添付いたしますが、ウェブサイトのものをコピー&ペーストしたものです。
以上、よろしくお願いします。
【回答】
送っていただいたファイルで、動作確認したところ、問題なく動作しました。
そこで、考えられる原因の一つは、パソコンを操作しているユーザーの権限です。
多分、ファイルを変更できないユーザーで、操作しようとしているのではないかと思います。
例えば、普段使っているユーザーではなく、学習用にユーザーを作成した場合が考えられます。
「制限付きのアカウント」では、正常に機能しないことがあります。アカウントの種類を、「コンピュータの管理者」に変更してみてください。
これは XP でも起こりますが、特に Vista は、フォルダやファイルに対する権限が厳しいです。
ちなみに、データベースへの接続と、データの表示については、「読み取り専用」でも開くことができます。
接続や表示に関しては、Accessのファイルが変更されることが無いため、問題なく表示できたのだと思います。
しかし、データを変更する操作の場合は、ユーザーの権限が関係してきます。
Accessのテーブルを、直接変更できるユーザーでログインすれば、問題なく動作すると思います。
その後、読者様から返信がありましたので、以下に掲載します。同じような症状の場合は、参考にしてください。
【読書様からの返信内容】
こんばんは。
原因がわかりました。
proxyが悪さをしていたようです。
ウイルス対策のため、インターネット接続はproxyサーバ経由で行っています。
今回JavaScriptのプログラムからAccessのDBに接続するのは、インターネットを介さないと思っていましたが、どうやらproxyサーバでブロックされていたようです。
今日、PCをクリーンインストールして、proxyを使わないように設定してみたら、データの追加ができました。
当方、技術的に詳しくないため、なぜproxyが悪さをするのかわかりませんが、とりあえず、成功しました。
これで前に進めます。たいへんお騒がせし、申し訳ありませんでした。