データベースの利用
データベース専用のソフトウェアと連携。
モジュールのインストール
DBI、DBD::ODBCを利用します cpanを利用しインストール(StrawberryPerl版)
#データベースの取り扱いコネクション
cpan> install DBI
cpan> install DBD::ODBC
Microsoft SQL Server データベースに接続
Windows10 Microsoft SQL Serverへの接続 環境に合わせデータベース名・サーバー名など変更してください。サーバープロパティで権限、セキュリテイなどの設定も事前に必要となります。
# データベース
use DBI;
$user = "sa";
$passwd = "passwd";
$dbdb = "SQL_DB";
$server = "SERVER\\SQLEXPRESS";
$dbh = DBI->connect(
"dbi:ODBC"
. ":Driver={SQL Server};"
. "Server=$server;"
. "database=$dbdb;"
. "uid=$user;"
. "pwd=$passwd;" );
}
SQL文でデータベースを操作
データベースに接続後SQL文を利用できます
#table work data 削除
$SQL = "TRUNCATE TABLE work ";
$arf = $dbh->selectall_arrayref($SQL) || die $dbh->errstr;
#table temp F1にデータがない場合 削除
$SQL = "delete from temp Where F1 is null";
$arf = $dbh->selectall_arrayref($SQL) || die $dbh->errstr;
#■時刻取得
use Time::Piece;
# Time::Pieceオブジェクトの取得
my $today = localtime;
my $year = $today->year;
my $month = $today->mon;
my $day = $today->mday;
my $hour = $today->hour;
my $min = $today->minute;
my $sec = $today->sec;
$date_now = "$year\/$month\/$day";
$Date_time=$date_now.' '.$hour.':'.$min.':'.$sec;
#table 「temp」 フィールド「time」に $Date_timeをセット
$SQL = "UPDATE コントロール set time = '".$Date_time."' ";
$arf = $dbh->selectall_arrayref($SQL) || die $dbh->errstr;
バッチ処理
バッチファイルの実行をすることも出来ます
my $cmd = "C:\\TEMP\\worki.bat";
`$cmd`;