<?
header( "Content-Type: text/html; Charset=euc-jp" );
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" );
// 日本語設定
mb_language( "ja" );
// 内部エンコード
mb_internal_encoding("UTF-8");
// Oracleオブジェクト
$OracleOO4O = new COM( "OracleInProcServer.XOraSession" );
// 接続文字列作成
$db_path = realpath(mb_convert_encoding( "./販売管理C.mdb", "SHIFT_JIS", "EUC-JP" ));
$ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;";
$ConnectionString .= "Data Source=$db_path;";
// 接続
$cn = $OracleOO4O->OpenDatabase("VPC-019/ORCL", "LIGHTBOX/LIGHTBOX", 0);
$query = "select * from 社員マスタ";
$query = mb_convert_encoding( $query, "SHIFT_JIS", "EUC-JP" );
// レコードセット取得
$rs = $cn->CreateDynaset($query,2);
while( !$rs->EOF ) {
// レコードセットを PHP で使いやすいように変換
$ret = ms_convert_fetch_array( $rs, "EUC-JP", "SHIFT_JIS" );
print "{$ret['氏名']},{$ret['フリガナ']},{$ret['生年月日']},{$ret['給与']}";
print "<br>";
$query = "update 社員マスタ set 生年月日 = null where 社員コード = '{$ret['社員コード']}'";
$query = mb_convert_encoding( $query, "SHIFT_JIS", "EUC-JP" );
// 行を返さない SQL の実行
$cn->ExecuteSQL( $query );
$rs->MoveNext();
}
// レコードセットを閉じる必要はありません
// 接続解除は必要ありません
// ***********************************************
// レコードセット内のデータのキャラクタセットを
// 変換して、インデックス配列と連想配列作成
// ***********************************************
function ms_convert_fetch_array( &$rs, $to_encoding , $from_encoding ) {
$ret = array();
for( $i = 0; $i < $rs->Fields->count; $i++ ) {
// 値変換(インデックス配列)
$ret[$i] = mb_convert_encoding(
$rs->Fields[$i]->value."",
$to_encoding,
$from_encoding
);
// 列名変換
$k = mb_convert_encoding(
$rs->Fields[$i]->name,
$to_encoding,
$from_encoding
);
// 連想配列作成
$ret[$k] = $ret[$i];
}
return $ret;
}
?>