# ********************************************************** # オブジェクト使用宣言 # ********************************************************** use Win32::OLE; use Win32::OLE::Variant; # ********************************************************** # オブジェクト作成 # ********************************************************** $Cn = Win32::OLE->new( "ADODB.Connection" ); $Rs = Win32::OLE->new( "ADODB.Recordset" ); # ********************************************************** # ターゲット Excel # ********************************************************** $Target = "C:\\TEMP\\社員マスタ.xls"; # ********************************************************** # 接続文字列 # ********************************************************** $ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" . "Data Source=$Target;" . "Extended Properties=\"Excel 8.0;\""; # ********************************************************** # 接続 # ********************************************************** $Cn->Open( $ConnectionString ); # ********************************************************** # レコードセット取得 # ********************************************************** $Query = "select * from [社員マスタ]"; $Rs->Open( $Query, $Cn ); if ( $Rs->State == 0 ) { print "レコードセットを取得できませんでした"; exit(); } # ********************************************************** # 出力ファイルオープン # ********************************************************** open( CSV_FILE,">./社員マスタ.csv" ); # ********************************************************** # タイトル出力 # ********************************************************** $Buffer = ""; for( $i = 0; $i < $Rs->Fields->{Count}; $i++ ) { if ( $Buffer ne "" ) { $Buffer .= ","; } $Buffer .= $Rs->Fields($i)->{Name}; } print CSV_FILE "$Buffer\n"; # ********************************************************** # データ出力 # ********************************************************** while ( !($Rs->EOF) ) { $Buffer = ""; for( $i = 0; $i < $Rs->Fields->{Count}; $i++ ) { if ( $Buffer ne "" ) { $Buffer .= ","; } $Buffer .= $Rs->Fields($i)->{Value}; } print CSV_FILE "$Buffer\n"; $Rs->MoveNext(); } # ********************************************************** # ファイルクローズ # ********************************************************** close( CSV_FILE ); # ********************************************************** # レコードセットクローズ # ********************************************************** $Rs->Close(); # ********************************************************** # 接続解除 # ********************************************************** $Cn->Close();
# ********************************************************** # オブジェクト使用宣言 # ********************************************************** use Win32::OLE; use Win32::OLE::Variant; # ********************************************************** # オブジェクト作成 # ********************************************************** $Database = Win32::OLE->new( "Lbox.Database" ); # ********************************************************** # ターゲット Excel # ********************************************************** $Target = "C:\\TEMP\\社員マスタ.xls"; # ********************************************************** # 接続 # ********************************************************** $Result = $Database->Connect( 0, $Target ); if ( $Result ne "" ) { print $Result; exit(); } # ********************************************************** # レコードセット取得 # ********************************************************** $Query = "select * from [社員マスタ]"; $bRet = $Database->Query( $Query ); if ( !$bRet ) { print "SQLのエラーかまたは対象データが存在しません"; exit(); } # ********************************************************** # 出力ファイルオープン # ********************************************************** open( CSV_FILE,">./社員マスタ.csv" ); # ********************************************************** # タイトル出力 # ********************************************************** $Buffer = ""; for( $i = 0; $i < $Database->{FieldCount}; $i++ ) { if ( $Buffer ne "" ) { $Buffer .= ","; } $Buffer .= $Database->GetName($i); } print CSV_FILE "$Buffer\n"; # ********************************************************** # データ出力 # ********************************************************** while ( $bRet ) { $Buffer = ""; for( $i = 0; $i < $Database->{FieldCount}; $i++ ) { if ( $Buffer ne "" ) { $Buffer .= ","; } $Buffer .= $Database->GetText($i); } print CSV_FILE "$Buffer\n"; $bRet = $Database->Query(); } # ********************************************************** # ファイルクローズ # ********************************************************** close( CSV_FILE ); # ********************************************************** # 接続解除 # ********************************************************** $Database->DisConnect;
#!/usr/local/bin/perl require 'common.pl'; use Win32::OLE; print <<VIEW1; <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Shift_JIS"> </HEAD> <BODY> <FORM name=frm> <TEXTAREA name=Query cols=80 rows=10>$_POST{'Query'}</TEXTAREA> <INPUT type=submit name=submit value="送信"> </FORM> VIEW1 if ( $_POST{'Query'} ne "" ) { $MdbPath = "C:\\Program Files\\WinOfSql\\Tool\\parts\\販売管理.mdb"; $Lbox = Win32::OLE->new( "Lbox.BatchHelper" ); $Database = Win32::OLE->new( "Lbox.Database" ); $Result = $Database->Connect( 1, $MdbPath ); if ( $Result eq "" ) { $Value = $Database->LoadSqlData( $_POST{'Query'} ); if ( !($Lbox->IsError( $Value )) ) { $Value = $Lbox->HtmlConvert( $Value, 1 ); } $Database->DisConnect(); } } print $Value; print <<VIEW2; </BODY> </HTML> VIEW2
# ********************************************************** # オブジェクト使用宣言 # ********************************************************** use DBI; # ********************************************************** # 接続 # ********************************************************** $dsn = "DBI:mysql:lightbox:localhost"; $ret = eval{ $dbh = DBI->connect($dsn, 'root', '') }; if ( !$ret ) { print "接続エラーが発生しました"; exit(); } # ********************************************************** # レコードセット取得 # ********************************************************** $Query = "select * from `社員マスタ`"; $sth = $dbh->prepare( $Query ); $ret = eval{ $sth->execute }; if ( !$ret ) { print $dbh->{'mysql_error'}; $sth->finish; $dbh->disconnect; exit(); } # ********************************************************** # 出力ファイルオープン # ********************************************************** open( CSV_FILE,">./社員マスタ.csv" ); # ********************************************************** # タイトル出力 # ********************************************************** $Buffer = ""; $num = $sth->{'NUM_OF_FIELDS'}; $names = $sth->{'NAME'}; for ($i = 0; $i < $num; $i++) { if ( $Buffer ne "" ) { $Buffer .= ","; } $Buffer .= $$names[$i]; } print CSV_FILE "$Buffer\n"; # ********************************************************** # データ出力 # ********************************************************** while ($row = $sth->fetchrow_arrayref) { $Buffer = ""; for ($i = 0; $i < $num; $i++) { if ( $Buffer ne "" ) { $Buffer .= ","; } $Buffer .= $row->[$i]; } print CSV_FILE "$Buffer\n"; } # ********************************************************** # ファイルクローズ # ********************************************************** close( CSV_FILE ); # ********************************************************** # 接続解除 # ********************************************************** $dbh->disconnect;
# ********************************************************** # オブジェクト使用宣言 # ********************************************************** use DBI; # ********************************************************** # 接続 # ********************************************************** $dsn = "DBI:mysql:lightbox:localhost"; $ret = eval{ $dbh = DBI->connect($dsn, 'root', '') }; if ( !$ret ) { print "接続エラーが発生しました"; exit(); } # ********************************************************** # レコードセット取得 # ********************************************************** $Query = "select * from `社員マスタ`"; $sth = $dbh->prepare( $Query ); $ret = eval{ $sth->execute }; if ( !$ret ) { print $dbh->{'mysql_error'}; $sth->finish; $dbh->disconnect; exit(); } # ********************************************************** # 出力ファイルオープン # ********************************************************** open( CSV_FILE,">./社員マスタ.csv" ); # ********************************************************** # タイトル出力 # ********************************************************** $Buffer = ""; $num = $sth->{'NUM_OF_FIELDS'}; $names = $sth->{'NAME'}; for ($i = 0; $i < $num; $i++) { if ( $Buffer ne "" ) { $Buffer .= ","; } $Buffer .= $$names[$i]; } print CSV_FILE "$Buffer\n"; # ********************************************************** # データ出力 # ********************************************************** while ($row = $sth->fetchrow_hashref()) { $Buffer = ""; for ($i = 0; $i < $num; $i++) { if ( $Buffer ne "" ) { $Buffer .= ","; } $Buffer .= $row->{$$names[$i]}; } print CSV_FILE "$Buffer\n"; } # ********************************************************** # ファイルクローズ # ********************************************************** close( CSV_FILE ); # ********************************************************** # 接続解除 # ********************************************************** $dbh->disconnect;