- 締切済み
JScriptでDBへの書き込み方法
フォームの値をDBへ書き込みたいのですが、エラーになってしまいます。 tes.aspのフォームからw_com.aspで処理し、tes.aspへもどるということが やりたいのですが、どなたかご教授ください。 エラーは、w_com.aspのconn.Execute(sSQL);で落ちているようなのですが 書き方に問題があるのでしょうか? SQL文自体は平気でした。(クライアントで動かしたところ) また、Response.Redirect("tes.asp");というのは、使用できないのでしょうか?使用できないとしたら、どのような方法でしたらできるのでしょうか? 乱筆で申し訳ありませんが、ご教授願います。 宜しくお願い致します。 === tes.asp === <form name="frm2" method="post" action="w_com.asp"> <input type=hidden name="test1"> <input type=Button value=a onclick="a()"> </form> </body> </html> <script> function a(){ btn_onclick3(); document.frm2.submit(); } </script> === w_com.asp === <%@ language=JScript %> <% var sSQL = Request.Form("test1"); var conn = Server.CreateObject("ADODB.Connection"); var rs = Server.CreateObject("ADODB.Recordset"); conn.ConnectionString = "DRIVER={Microsoft Excel Driver (*.xls)}; DBQ=" + Server.Mappath("tes.xls"); conn.Open; conn.Execute(sSQL); conn.Close; Response.Redirect("tes.asp"); %>
- tomsky
- お礼率75% (75/100)
- Microsoft ASP
- 回答数4
- ありがとう数1
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- Gimli
- ベストアンサー率47% (9/19)
> アドバイスに対しての質問なのですが、 > 「データソースファイルをメモ帳などで開いて」の > 「データソースファイル」とは、何を指すのでしょうか? > この件の場合は、「エクセルファイル」のことでしょうか? ファイルDSN(データソース名)のつもりでした。 DSN を使ってるんじゃないんだったら、スルーして下さい。すみません。
- Gimli
- ベストアンサー率47% (9/19)
データソースファイルをメモ帳などで開いて、解析してみるのはどうでしょう。DSNでの設定とConnectionオブジェクトのデフォルトの設定で、何か差異があるかもしれませんよ。
補足
アドバイスありがとうございます。 返事が遅くなり大変申し訳ありません。 アドバイスに対しての質問なのですが、 「データソースファイルをメモ帳などで開いて」の「データソースファイル」とは、何を指すのでしょうか? この件の場合は、「エクセルファイル」のことでしょうか? 教えて下さい。 宜しくお願いします。
- Gimli
- ベストアンサー率47% (9/19)
では、以下を参考にしてください。 http://support.microsoft.com/default.aspx?scid=kb;ja;175168
補足
ありがとうございます。 返事が遅くなり、申し訳ありません。 参考にして色々試してはいるのですが、 ODBC データソース名を指定して接続するとエラーは起こりませんでした。 DNS-LESS接続の指定の仕方が良くないのでしょうか? お忙しいところ調べて頂きありがとうございました。
- Gimli
- ベストアンサー率47% (9/19)
Execute でエラーが出てるとのことですが、エラー詳細も提示した方がいいと思いますよ。 あと、Redirect でもエラーが出てるのでしょうか?これもエラーの詳細を提示した方がいいですよ。
補足
すみません。ありがとうございます。 エラー タイプは、 Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Excel Driver] 更新可能なクエリであることが必要です。 とででいました。 Redirectの方は、エラーではなかったようです。(直接の原因ではありませんでした。) ご指摘ありがとうございました。
関連するQ&A
- JScriptでDBへの接続方法について
JScriptを使用してDBへの接続方法を教えて下さい。 var conn = Server.CreateObject("ADODB.Connection"); var rs = Server.CreateObject("ADODB.Recordset"); conn.Open; rs.Open("sheet2", "DRIVER={Microsoft Excel Driver (*.xls)}; DBQ =" + Server.Mappath("tes.xls")); sSQL = "SELECT * FROM sheet2"; からの接続がうまくいきません。 どこがいけないのでしょうか? それとも、全てがいけないのでしょうか? よろしければ、どなたかご教授下さい。 お願いします。
- ベストアンサー
- Microsoft ASP
- ソートの設定
ASPでアクセス97を使って品番、納期という順番に表示させたいのですが うまくいきません。 SQL文を使って品番順にはならんだのですが、納期がばらばらになってしまいます。どうしたら品番、納期順という並びになるか教えて下さい。 Dim Conn,SQL,RS xxxx=server.mappath("*****.mdb") DBName="Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & xxxx Set Conn = Server.CreateObject("ADODB.Connection") Conn.open DBName SQL = "select * from ******" SQL = SQL & " order by 品番 asc" set RS = Server.CreateObject("ADODB.Recordset") RS.Open SQL, Conn,3,3
- ベストアンサー
- Microsoft ASP
- ASPでORACLEのエラーが発生するのですが、対処方法をお教えください。
Win2000(IIS) + ORACLE8.1.6 でASPを使ったWEBサーバを構築しようとしています。 まず手始めに、単純にデータを登録するような簡単なASPを作成しようとしているのですが、 下記処理が、133行目でエラーになってしまいます。 ※当然の事ながら、ODBC接続の設定は正常に行えていることを確認しております。 (Accessでリンクテーブルを使って、ODBC経由でテーブルにデータを追加できます。) <処理内容 (/Oracle/newtoroku.asp の一部)> 126行目 Dim Conn,SQL,RS 127行目 DBName="Provider=msdaora;Data Source=xxxxx;User ID=xxxxx;Password=xxxxx" 128行目 Set Conn = Server.CreateObject("ADODB.Connection") 129行目 Conn.open DBName 130行目 SQL = "select * from XXテーブル" 131行目 Set RS = Server.CreateObject("ADODB.Recordset") 132行目 RS.Open SQL, Conn,3,2 133行目 rs.AddNew <エラー内容> ADODB.Recordset (0x800A0CB3) 現在の Recordset は更新をサポートしていません。 プロバイダか、選択されたロックタイプの限界の可能性があります。 /Oracle/newtoroku.asp, line 133
- 締切済み
- その他(データベース)
- アクセスからのデータ読み込み
初めて質問します。 現在ホームページで、アクセスDBからデータを読んで、 それに対して更新する処理を作ってますが、 どうもSQL文を発行するとエラーになってしまいます。 その処理自体は今まで動いてたのですが、サーバを新しいのにしたら動かなくなってしまいました。(-_-;) 以前この処理を作った人が消えてしまい、誰に聞いても 分かりません・・。 どこがいけないのか分からないので、皆さん助けて下さい!!m(__)m 一応ロジック書いときます。 ************************* Set Con1 = Server.CreateObject("ADODB.Connection") Con1.Open "****" Set CTemp = Server.CreateObject("ADODB.Command") Set Rec1 = Server.CreateObject("ADODB.Recordset") sSql="SQL文" CTemp.CommandText = sSql CTemp.CommandType = 1 Set cmdTemp.ActiveConnection = Con1 Rec1.Open CTemp, , 0, 1 ************************* エラーは、[Set cmdTemp.ActiveConnection = Con1] で起こります。 以下がエラーメッセージです。 ************************* 予期しないエラーです /mente/menu/A.asp 外部オブジェクトでトラップできるエラーが発生しました。スクリプトの実行を続行できません。 ************************* 誰か助けて下さい!!(T_T)
- 締切済み
- Microsoft ASP
- DBの更新??
ソースは下記です。 Set db=Server.CreateObject("ADODB.Connection") db.Provider="Microsoft.Jet.OLEDB.4.0" db.Mode=2 db.ConnectionString=Server.MapPath("../../script/db_dat/crv_haken.mdb") db.Open Set rs=db.Execute("select * from control " ) rs("day-upd") = Request.Form("編集担当") rs("tanto-upd") = date rs.update rs.Close db.Close Set db=Nothing で・・・実行しますと エラー タイプ ADODB.Recordset (0x800A0CB3) 現在の Recordset は更新をサポートしていません。プロバイダか、選択されたロックタイプの限界の可能性があります。 のメッセージがでます。 何が原因でしょうか?お教えください。
- ベストアンサー
- Microsoft ASP
- MSアクセスの、サーバーでの設定について
よろしくお願いします。 マイクロソフトアクセスのデータベースを対応したサーバーにアップロードしたところ、ローカルでは動いていたのですが、サーバー上では、動かなくなりました。その時のJavascriptファイルを書きます。 var database; onload = init; onunload = dbClose; function init() { document.getElementById("txtPrefCd").onblur = function (){blur(this);} document.getElementById("txtPrefCd").onfocus = function (){focus(this);} document.getElementById("txtPrefName").onblur = function (){blur(this);} document.getElementById("txtPrefName").onfocus = function (){focus(this);} dbConnect(); dataDisp(); } //データベースに接続 function dbConnect() { database = new ActiveXObject("ADODB.Connection"); database.Open("Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/hogehoge/db/SampleDB010.mdb"); alert("データベースに接続しました。"); } //データベースを切断 function dbClose() { database.Close(); database = null; alert("データベースを切断しました。"); } function focus(obj){ obj.style.backgroundColor = "#ffff00"; } function blur(obj){ obj.style.backgroundColor = "#ffffff"; } //データ表示 function dataDisp() { var mySql = "select * from T01Prefecture order by PREF_CD"; var recordSet = database.Execute(mySql); var tempHtml=""; document.getElementById("disp").innerHTML = ""; while (!recordSet.EOF){ tempHtml = tempHtml + recordSet(0) + ":" + recordSet(1) + "<br />"; recordSet.MoveNext(); } document.getElementById("disp").innerHTML = tempHtml; recordSet.Close(); recordSet = null; /**/ } 以上です。 どうも、データベースに接続のところがうまくいきません。 Dim Conn Set Conn = Server.CreateObject("ADODB.Connection") strConnection = "DRIVER=Microsoft Access Driver(*.mdb);DBQ=" & Server.MapPath("/USERNAME/db/yourdatabase.mdb") Conn.Open(strConnection) としても、 Dim Conn Set Conn = Server.CreateObject("ADODB.Connection") Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ Server.MapPath ("/YourUSERNAME/db/yourdatabase.mdb") & ";" Conn.Open としても、ダメでした。 どうすればよいのか分からないので、どこをどうすればよいのか、どなたかご教授願います。 よろしくお願いします。
- ベストアンサー
- JavaScript
- 更新処理の進行状況
VB6.0 SQL SERVER WINXPです。 下のSQLの更新処理の進行状況を表示したいのです。 Form1にCommand1とPicture1,Picture2を貼り付けたのですがこの後が分かりません。教えてください。 sSQL = " UPDATE m_zaiko SET " sSQL = sSQL & " 実在庫数=" & .CvtSQL(dblZaikoSuu, CVT_DBL) sSQL = sSQL & " WHERE " sSQL = sSQL & " 品番=" & .CvtSQL(strHinban, CVT_STR) gSvrADOActiveconnection.Execute sSQL, Affected, adExecuteNoRecords + adCmdText
- ベストアンサー
- Visual Basic
- Global.asaxで Server.CreateObject("ADODB.Connection")が出来ない
ASP→ASP.netへ移行作業をしています。 Global.asaで、 set Application("DB") = Server.CreateObject("ADODB.Connection") を、 Global.asaxで、 Application("DB") = Server.CreateObject("ADODB.Connection") としたのですが、エラーで、 「コンポーネント 'ADODB.Connection' を作成できません。アパートメント スレッド コンポーネントは、<%@ Page aspcompat=true %> ページ ディレクティブを含むページでのみ作成できます。 」 となってしまします。 <%@ Page aspcompat=true %>を記述すればよいのかと思い、Global.asax中に記述しましたが、エラーになってしまいました。 'ADODB.Connection'を作成するには、どうすればよいでしょうか?
- ベストアンサー
- Microsoft ASP
- VBSの中で書くSQL文の記述方法
よろしくお願いします。 select * from db1 into id,password,date,name where db1_id = **** and db1_password = **** and db1_date = 99999999; (db1_id,db1_password,db1_dateがプライマリキー) db1という表からプライマリキーに該当したデータを取り出し、 変数に格納したいと思っています。 このSQL文をASPのVBSの中で実現する方法を教えてください。 <% Dim Conn,SQL,RS Dim id Dim password Dim date Dim name db1=server.mappath("db1.mdb") DBName="Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & db1 Set Conn = Server.CreateObject("ADODB.Connection") Conn.open DBName SQL = "select * from db1" INTO = "into id,password,date,name" WHERE = "where db1_id = **** and db1_password = **** _ and db1_date = 99999999" SQL = SQL & INTO & WHERE & ";" Set RS = Server.CreateObject("ADODB.Recordset") RS.Open SQL, Conn,3,3 %> これでうまくいくかな~と思ったのですが・・・。
- 締切済み
- Microsoft ASP
- 物理的に離れたDBに同時に値を記録するには?
ASPを使用して、物理的に離れているDBサーバーに、 フォームで入力された値、あるいはSession変数などに格納された値を、同時に記録したいのですが、 どうすれば良いのでしょうか? LAN内部に存在する二つのDBサーバーの場合は Server.CreateObject("ADODB.Connection") を使用してそれぞれのDBサーバーのコネクションを 作成すれば大丈夫なのですが、同じLAN内部に 存在しない二つのDB(東京・大阪など)に全く同じ データーを記録したいのですが。。。 一つ目のDBサーバーの存在するASPファイルの処理の中で、 もう一つのDBサーバーにデーターを記録する為には、どのようなコマンドを使用すれば、二つ目の DBサーバー内に用意してあるデータ記録用ASPファイル を実行して、そのデーターを二つ目のDBサーバーに 記録できるのでしょうか?
- 締切済み
- Microsoft ASP
お礼
わかりました。 色々試してみたいと思います。 色々とアドバイスをありがとうございました。