Perl

  ADO + Excel ( バッチ )



  
# **********************************************************
# オブジェクト使用宣言
# **********************************************************
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
  



  DBD + MySQL ( バッチ )

通常配列
  
# **********************************************************
# オブジェクト使用宣言
# **********************************************************
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;
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ