VBS:SQLServerバッチ処理

概要:
複数ファイルに格納されているコード群をSQLServerからデータ取得後、ファイル毎に出力

流れ:
引数で渡されたコードファイルを順次開く
コードを取り出してSQL生成
SQL実行後、結果をTAB区切りで出力

Set oParam = WScript.Arguments

Set ObjConn = CreateObject("ADODB.Connection")
ObjConn.Open ("Provider=SQLOLEDB;Data Source=ZZZZZ;Initial Catalog=AAAAA;Integrated Security=SSPI;")
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objRc = CreateObject("ADODB.Recordset")

wkIN = "\\bbbbb\"
wkOUT = "\\ccccc\"

SQL = "Select * FROM xxxxxx where [ROW_ID] = '"

For idx = 0 To oParam.Count - 1 
	FNAME = oParam(idx)
	Set objOUTF = objFso.CreateTextFile(wkOUT & "OUT_" & FNAME, True, True )
	Set objINF = objFso.OpenTextFile(wkIN & FNAME, 1, False)

	If Err.Number <= 0 Then
		'header
		objOUTF.WriteLine("HEADER	tab	tab")
		cntRec = 0

		Do Until objINF.AtEndOfStream
			wkREC = trim(objINF.ReadLine)
			objRc.Open SQL & wkREC & "';", ObjConn

			If not objRc.EOF then

				Buffer = ""
				For i = 0 to objRc.Fields.Count - 1
					wkFLD = objRc.Fields(i).Value
					If not IsNull(wkFLD) then wkFLD = Replace(wkFLD, vbtab, " ")
					Buffer = Buffer & wkFLD & vbtab
				Next
				objOUTF.WriteLine(Buffer)
				cntRec = cntRec + 1
			END If
			objRc.Close
		Loop
	End If

	objINF.Close
	objOUTF.Close
Next

Set ObjConn = Nothing
Set objFso = Nothing
Set objRc = Nothing
カテゴリー: VBS

HTA:MDB検索

HTA形式でMDB検索アプリを作ってみた。
※実質VBScript

参照先はMS-Access(MDB)でクライアント上で実行。
※サーバー不要

<HTML>
<HEAD>
<SCRIPT LANGUAGE="VBScript">
<!--
Option Explicit

Function fncExec()

	Dim dbRes, tag
	Dim dbPath, dbe, db, s, CODEs, SQL

	if frm.CODE.Value="" then WScript.Quit()
	
	CODEs = replace(trim(frm.CODE.Value), ";", ",")
	
	dbPath = ".\xxxxxx.accdb"
	Set dbe = CreateObject("DAO.DBEngine.120")
	Set db = dbe.Workspaces(0).OpenDatabase(dbPath, False)

	SQL = "select * from zzzzzzzzzzz where CODE in(" & CODEs & ")"
	Set dbRes = db.OpenRecordset(SQL)

	If Not dbRes.EOF then
		s = "<table border=1><tr><th>AAA</th><th>BBB</th></tr>"
		Do Until dbRes.EOF
			s = s & "<tr><td>" & dbRes("AAA").Value & "</td><td>" & dbRes("BBB").Value & "</td><tr>"
			dbRes.movenext
		loop
		s = s & "</table>" & SQL
	Else
		s = s & "Not Found"
	End If
	
	objList.innerHTML = s
	db.Close
	Set db = Nothing
	Set dbe = Nothing
	
End Function
-->
</SCRIPT>
</HEAD>
<BODY>

<FORM ID="frm">
CODE <INPUT ID="CODE" TYPE="TEXT" SIZE=30>
<INPUT ID="EXEC" TYPE="BUTTON" VALUE="Go!" onClick="fncExec()">
</FORM>

<DIV ID="objList"></DIV>
<INPUT TYPE="BUTTON" VALUE="Close" onClick="window.close()">
</BODY>
</HTML>
カテゴリー: VBS