|
|
# **********************************************************
# オブジェクト使用宣言
# **********************************************************
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();
| |
|
|
Lbox.Database + Excel ( バッチ ) |
|
|
# **********************************************************
# オブジェクト使用宣言
# **********************************************************
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;
| |
|
|
Lbox.Database + MDB ( Web ) |
|
common.pl
|
#!/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;
| |
|
|
|