サンプルはOracle ですが、接続文字列の書式を変更すると
接続可能な全てのデータベースの処理を行う事ができます
最新ソースコードです(接続してテーブル一覧を取得します)
↓古い一つ前のソースコードです
<SCRIPT language="VBScript">
' **********************************************************
' オブジェクト作成
' **********************************************************
Set Cn = CreateObject( "ADODB.Connection" )
Set Rs = CreateObject( "ADODB.Recordset" )
Set Fs = CreateObject( "Scripting.FileSystemObject" )
Function OraAction()
strDriver = "{Microsoft ODBC for Oracle}"
strServer = document.getElementById("p03").value
strUser = document.getElementById("p01").value
strPass = document.getElementById("p02").value
strTable = document.getElementById("p04").value
ConnectionString = _
"Provider=MSDASQL" & _
";Driver=" & strDriver & _
";Server=" & strServer & _
";UID=" & strUser & _
";PWD=" & strPass & _
";"
if vbCancel = MsgBox(ConnectionString, vbOkCancel or vbDefaultButton2, "CSV出力") then
Exit Function
end if
' **********************************************************
' 接続
' **********************************************************
on error resume next
Cn.Open ConnectionString
if Err.Number <> 0 then
alert( Err.Description )
Exit Function
end if
on error goto 0
' **********************************************************
' レコードセット取得
' **********************************************************
Query = "select * from " & strTable
on error resume next
Rs.Open Query, Cn
if Err.Number <> 0 then
Cn.Close
alert( Err.Description )
Exit Function
end if
on error goto 0
' **********************************************************
' 出力ファイルオープン
' **********************************************************
Set Csv = Fs.CreateTextFile( strTable & ".csv", True )
' **********************************************************
' タイトル出力
' **********************************************************
Buffer = ""
For i = 0 to Rs.Fields.Count - 1
if Buffer <> "" then
Buffer = Buffer & ","
end if
Buffer = Buffer & Rs.Fields(i).Name
Next
Csv.WriteLine Buffer
' **********************************************************
' データ出力
' **********************************************************
Do While not Rs.EOF
Buffer = ""
For i = 0 to Rs.Fields.Count - 1
if Buffer <> "" then
Buffer = Buffer & ","
end if
Buffer = Buffer & Rs.Fields(i).Value
Next
Csv.WriteLine Buffer
Rs.MoveNext
Loop
' **********************************************************
' ファイルクローズ
' **********************************************************
Csv.Close
' **********************************************************
' レコードセットクローズ
' **********************************************************
Rs.Close
' **********************************************************
' 接続解除
' **********************************************************
Cn.Close
MsgBox("処理が終了しました")
End Function
</SCRIPT>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<title>CSV出力</title>
<STYLE>
* {
font-size:14px;
}
PRE {
font-weight: bold;
}
</STYLE>
</head>
<body>
<table>
<tr>
<td>ユーザ</td>
<td><INPUT type="text" id="p01" value="lightbox"></td>
</tr>
<tr>
<td>パスワード</td>
<td><INPUT type="text" id="p02" value="lightbox"></td>
</tr>
<tr>
<td>サーバー</td>
<td><INPUT type="text" id="p03" value="pcname/orcl"></td>
</tr>
<tr>
<td>テーブル</td>
<td><INPUT type="text" id="p04" value=""></td>
</tr>
</table>
<INPUT type="button" value="実行" onClick='Call OraAction()'>
</body>
</html>
<SCRIPT for=window event=onload language="VBScript">
nWidth = 800
nHeight = 600
top.resizeTo nWidth, nHeight
top.moveTo (screen.width-nWidth)/2, (screen.height-nHeight)/2
</SCRIPT>
■ 関連する記事
Oracle 10g : System.Data.Odbc( Framework ) : Microsoft Driver
VBScript + MySQL : CSV 出力プログラム