ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文

  メンテナンス 前画面に戻る

対象スレッド 件名: oraclecsv.php
名前: lightbox
処理選択
パスワード

件名 oraclecsv.php
名前 lightbox
コメント
@DIV
参照したディレクトリを元に Oracle のCSV出力のコードが書かれた VBScript を
ダウンロードする為の PHP コードです
@END

@DIV
<?
if ( $_POST['pcname'] != '' ) {
	session_start();
	setcookie("pcname", $_POST['pcname'], time()+3600*24*30);
	setcookie("service", $_POST['service'], time()+3600*24*30);
	setcookie("user", $_POST['user'], time()+3600*24*30);
	setcookie("pass", $_POST['pass'], time()+3600*24*30);
	setcookie("table", $_POST['table'], time()+3600*24*30);
	$_POST['path'] = trim(str_replace("\\\\","\\", $_POST['path']));
	setcookie("path", $_POST['path'], time()+3600*24*30);
	if ( trim( $_POST['service'] ) != "" ) {
		$_POST['service'] = '/' . $_POST['service'];
	}
	$str = <<<VBS
' **********************************************************
' オブジェクト作成
' **********************************************************
Set Cn = CreateObject( "ADODB.Connection" )
Set Rs = CreateObject( "ADODB.Recordset" )
Set Fs = CreateObject( "Scripting.FileSystemObject" )

strDriver = "{Microsoft ODBC for Oracle}"
strServer = "{$_POST['pcname']}{$_POST['service']}"
strUser = "{$_POST['user']}"
strPass = "{$_POST['pass']}"

strTable = "{$_POST['table']}"

ConnectionString = _
	"Provider=MSDASQL" & _
	";Driver=" & strDriver & _
	";Server=" & strServer & _
	";UID=" & strUser & _ 
	";PWD=" & strPass & _ 
	";" 

' **********************************************************
' 接続
' **********************************************************
on error resume next
Cn.Open ConnectionString
if Err.Number <> 0 then
	Wscript.Echo Err.Description
	Wscript.Quit
end if
on error goto 0

' **********************************************************
' 列情報取得
' **********************************************************
Query = "select * from USER_TAB_COLUMNS"
Query = Query & " where TABLE_NAME = '" & strTable & "'"
Query = Query & " order by COLUMN_ID"

on error resume next
Rs.Open Query, Cn
if Err.Number <> 0 then
	Cn.Close
	Wscript.Echo Err.Description
	Wscript.Quit
end if
on error goto 0

Query = "select "
CsvTitle = ""
Do While not Rs.EOF
	if CsvTitle <> "" then
		Query = Query & "||','||"
		CsvTitle = CsvTitle & ","
	end if
	Query = Query & Rs.Fields("COLUMN_NAME").Value
	CsvTitle = CsvTitle & Rs.Fields("COLUMN_NAME").Value
	Rs.MoveNext
Loop
Query = Query & " from " & strTable
Rs.Close

' **********************************************************
' データ取得用クエリー
' **********************************************************
on error resume next
Rs.Open Query, Cn
if Err.Number <> 0 then
	Cn.Close
	Wscript.Echo Err.Description
	Wscript.Quit
end if
on error goto 0

' **********************************************************
' 出力ファイルオープン
' **********************************************************
Set Csv = Fs.CreateTextFile( "{$_POST['path']}\\{$_POST['table']}.csv", True )

' **********************************************************
' タイトル出力
' **********************************************************
Csv.WriteLine CsvTitle

' **********************************************************
' データ出力
' **********************************************************
Do While not Rs.EOF
	Csv.WriteLine Rs.Fields(0).Value
	Rs.MoveNext
Loop

' **********************************************************
' ファイルクローズ
' **********************************************************
Csv.Close

' **********************************************************
' レコードセットクローズ
' **********************************************************
Rs.Close

' **********************************************************
' 接続解除
' **********************************************************
Cn.Close

' **********************************************************
' オブジェクト解放
' **********************************************************
Set Fs = Nothing
Set Rs = Nothing
Set Cn = Nothing

Wscript.Echo "処理が終了しました"

VBS;
$flname = "oraclecsv" . session_id() . ".vbs";
file_put_contents($flname,$str);
header( "Location: $flname" );
}
else {
	header( "Location: main.php" );
}
?>
@END