dポイントプレゼントキャンペーン実施中!

申し訳ありませんが、素人の質問です。

WSHをVBSCriptでDBのレコードを削除、
テキストファイルを呼びだし、
呼び出したデータを変数に格納し、DBにインサートしたいのですが、
DBへの接続の仕方がわかりません。
ASPで作成したものは正常に動作するのですが、
WSHで作成したものは、接続するさいにエラーしてしまいます。

エラー箇所は下記の部分です。
すみませんが、回答お願いします。

テキスト呼び出し箇所
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set fts = fso.OpenTextFile("D:\**\*\*\*\A.dat", 1, False, 0)

接続箇所
Con_s.BeginTrans

DELETE箇所
Set Rs = Server.CreateObject("ADODB.Recordset")
Cmd_s.CommandText = delSq
Rs.Open Cmd_s, , adOpenForwardOnly


インサート箇所
Set Rs = Server.CreateObject("ADODB.Recordset")
Cmd_s.CommandText = strSql
Rs.Open Cmd_s, , adOpenForwardOnly

切断箇所
Con_s.CommitTrans

A 回答 (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だからといって変わりませんので。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

試行錯誤しながら取り組んで見ようと思います。
また、わからなくなりましたら質問させてください。
よろしくお願いします。

たびたびの質問への回答ありがとうございました。

お礼日時:2004/11/27 01:06

>…もそのままじゃ全然ダメだってことですよね?!


いえ、そうじゃなくて

Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set fts = fso.OpenTextFile("D:\**\*\*\*\A.dat", 1, False, 0)

の部分で言えば
最初のSetでfsoを作るのに作れていないから
次の行の
Set ftsが失敗するという意味なので
全部がダメだといっているのではないです。

とりあえず、CreateObjectの部分を直してどうか
やってみてはどうでしょうか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

なにぶん、プログラム自体が関して初めてなので
少々混乱しております。

とりあえず、
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では記述に違いがあるのでしょうか?
再三の質問となってしまい申し訳ありませんが、
ご回答いただけたら幸いです。

お礼日時:2004/11/26 17:41

Server.CreateObject(…)


はASPでの書き方で(クライアントでなく)サーバーでオブジェクトを作成するという意味あいです。
単にWSHで書く場合には
WScript.CreateObject(…)
と書きます。
この部分がうまくできていないので、関連する部分もエラーになるのだと思います。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。

ご回答から考えると、当然のように
Cmd_s.CommandText = strSql
Rs.Open Cmd_s, , adOpenForwardOnlyも
con_s.BeginTrans、Con_s.CommitTransも
fso.OpenTextFile(~)もそのままじゃ全然ダメだってことですよね?!

もし宜しければ、例文などございましたら
ご教授いただければと思います。
お礼文であるのに厚かましい再質問と
なってしまいましたが、お許し下さい。
何卒宜しくお願い致します。

お礼日時:2004/11/26 16:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!