|
<?
// **********************************************************
// SQLExpress 2005 / OLE DB / 純正接続
// COM(ADO) : 読み込みと更新
// **********************************************************
$Cn = new COM( "ADODB.Connection" );
$Cn->CursorLocation = 3;
$Rs = new COM( "ADODB.Recordset" );
$strTarget = "NIGHT_TCP"; // 別名
$strDB = "lightbox";
$strUser = "sa";
$strPass = "passwordpassword";
// **********************************************************
// 接続文字列
// **********************************************************
$ConnectionString =
"Provider=SQLOLEDB;" .
"Data Source=$strTarget;" .
"Initial Catalog=$strDB;" .
"User ID=$strUser;" .
"Password=$strPass;";
/*
// ODBC 接続 / {SQL Server}
$strDriver = "{SQL Server}";
// SQL Server は、TCP/IP と 名前付きパイプで接続されました
$ConnectionString =
"Provider=MSDASQL;" .
"Driver=$strDriver;" .
"SERVER=$strTarget;" .
"DATABASE=$strDB;" .
"USER=$strUser;" .
"PWD=$strPass;";
*/
/*
// ODBC 接続 / {SQL Native Client}
$strDriver = "{SQL Native Client}";
// TCP/IP で接続するのに、Trusted_Connection=yes; が必要でした
// http://technet.microsoft.com/ja-jp/library/ms130822(SQL.90).aspx
// 上記指定が無い場合、名前付きパイプでは接続されました
// $strTarget = "lbox"; // 名前付きパイプの別名
$ConnectionString =
"Provider=MSDASQL;Trusted_Connection=yes;" .
"Driver=$strDriver;" .
"SERVER=$strTarget;" .
"DATABASE=$strDB;" .
"USER=$strUser;" .
"PWD=$strPass;";
*/
// **********************************************************
// 接続
// **********************************************************
$Cn->Open( $ConnectionString );
$Query = "select * from [社員マスタ]";
// **********************************************************
// レコードセット
// **********************************************************
$handle = fopen( ".\\社員マスタ.csv", "w" );
// レコードセットが開いていたら、閉じておく
if ( $Rs->State >= 1 ) {
$Rs->Close();
}
$Rs->Open( $Query, $Cn );
$nFields = $Rs->Fields->Count;
$hbuffer = "";
$update_cnt = 0;
while( !$Rs->EOF ) {
if ( $hbuffer == "" ) {
for( $i = 0; $i < $nFields; $i++ ) {
if ( $hbuffer != "" ) {
$hbuffer .= ",";
}
$hbuffer .= $Rs->Fields[$i]->Name;
}
fwrite( $handle, $hbuffer . "\n" );
}
$buffer = "";
for( $i = 0; $i < $nFields; $i++ ) {
if ( $buffer != "" ) {
$buffer .= ",";
}
$buffer .= $Rs->Fields[$i]->Value . "";
// 日本語名称で直接参照できないので、連想配列を作成
$Column[$Rs->Fields[$i]->name] = $Rs->Fields[$i]->value;
}
fwrite( $handle, $buffer . "\n" );
// 更新( 別接続 )
$day = ($update_cnt % 6) + 1;
$Query = "update [社員マスタ] set [生年月日] = '2005/01/0$day'";
// 連想配列で値を参照
$Query .= " where [社員コード] = '{$Column["社員コード"]}'";
$Cn->execute( $Query );
$Rs->MoveNext();
$update_cnt++;
}
// **********************************************************
// ファイルクローズ
// **********************************************************
fclose( $handle );
// **********************************************************
// 接続解除
// **********************************************************
@$Cn->Close();
?>
| |