- ベストアンサー
WSHでVBScriptを使いDBのデータを削除、新規登録する方法
- WSHでVBScriptを使用してデータベースのレコードを削除、新規登録する方法についてご質問があります。
- ASPで作成したものは正常に動作するが、WSHで作成したものは接続時にエラーが発生しているようです。
- 具体的なエラー箇所として、テキストファイルの呼び出し箇所、データベースへの接続箇所、レコードの削除箇所、新規登録箇所、そして切断箇所が挙げられます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2> 多分 Set Con_s = CreateObject("ADODB.Connection") Con_s.Open "Provider=sqloledb;Data Source=Server;Initial Catalog=Pubs;User Id=;Password=; " 'とかなんとか 'なんだかんだ Con_s.BeginTrans とかされていると思いますが 多分BeginTransの前でCon_sの作成とかオープンに失敗しているのではないでしょうか? ADOのオブジェクトの操作BeginTransなどのメソッドやその呼びだし方法などは、VBScriptだからといって変わりませんので。
その他の回答 (2)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
>…もそのままじゃ全然ダメだってことですよね?! いえ、そうじゃなくて Set fso = Server.CreateObject("Scripting.FileSystemObject") Set fts = fso.OpenTextFile("D:\**\*\*\*\A.dat", 1, False, 0) の部分で言えば 最初のSetでfsoを作るのに作れていないから 次の行の Set ftsが失敗するという意味なので 全部がダメだといっているのではないです。 とりあえず、CreateObjectの部分を直してどうか やってみてはどうでしょうか?
お礼
ご回答ありがとうございます。 なにぶん、プログラム自体が関して初めてなので 少々混乱しております。 とりあえず、 Set fso = CreateObject("Scripting.FileSystemObject") Set fts = fso.OpenTextFile("D:\**\*\*\*\A.dat", 1, False, 0) こういう形でやってみました。 その結果、 Set fso = CreateObject("Scripting.FileSystemObject") Set fts = fso.OpenTextFile("D:\**\*\*\*\A.dat", 1, False, 0) の部分までは通ったようで、 次の「Con_s.BeginTrans」の部分でエラーが出てしまいました。BeginTransに関してもASPとWSHでは記述に違いがあるのでしょうか? 再三の質問となってしまい申し訳ありませんが、 ご回答いただけたら幸いです。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
Server.CreateObject(…) はASPでの書き方で(クライアントでなく)サーバーでオブジェクトを作成するという意味あいです。 単にWSHで書く場合には WScript.CreateObject(…) と書きます。 この部分がうまくできていないので、関連する部分もエラーになるのだと思います。
お礼
早速のご回答ありがとうございます。 ご回答から考えると、当然のように Cmd_s.CommandText = strSql Rs.Open Cmd_s, , adOpenForwardOnlyも con_s.BeginTrans、Con_s.CommitTransも fso.OpenTextFile(~)もそのままじゃ全然ダメだってことですよね?! もし宜しければ、例文などございましたら ご教授いただければと思います。 お礼文であるのに厚かましい再質問と なってしまいましたが、お許し下さい。 何卒宜しくお願い致します。
お礼
ご回答ありがとうございます。 試行錯誤しながら取り組んで見ようと思います。 また、わからなくなりましたら質問させてください。 よろしくお願いします。 たびたびの質問への回答ありがとうございました。