こんにちは!
ナビゲータのEVEです。
本日から、Prototype EVEシステムと、EVEシステムとのインターフェースの検討・開発に入ります。まず、開発に入る前に、どんな点に注意したらいいのか、検討をしてみましょう。
今回、Prototype EVEシステムとEVEシステムとのインターフェースの部分で気を付けなければいけない点はどんなところでしょうか?
図1は、Prototype EVEでどんなところを改修するのか以前紹介した資料の一部を修正したものです。前回の図は、イメージ図でしたが、今回はデータの流れを厳格に記述しました。
EVEシステムで、実際の処理を行い、Prototype EVEシステムでは、EVEシステムで実行した結果をアプリケーション群に正確に渡すという流れになります。
その具体的な処理の流れを拡大したのが、図2になります。明日からPrototype EVEシステムの改修をしていきますが、返却値を事前に十分に調べた上で、正しい返却値を、従来通りに渡すことができるかどうかと言ったところが、注力するところになりそうです。
[Prototype EVEのプログラム]
EVEシステムについては、どのように作るのか直近紹介していますが、Prototype EVEでは御紹介していなかったので、一部になりますが、見ていただきましょう!
/*************************************************
*【関 数 名】DB検索関数(新)
*【 引 数 】p_sql :sql(select)文
* p_check :チェックフラグ
*【返 却 値】配列 :正常終了時
* 配列(0) :異常時(メッセージ)
*【製 造 者】EVE
*【製造年月日】2005年 2月20日
*【更新年月日】
*【 備 考 】
*************************************************/
function gb_dbselect($p_sql,$p_check ) {
//返却値の初期化
$rtn = "";
//****************DB Connect******************
$rtn = gb_dbconnect();
if ( $rtn[1] != "") {
return $rtn[1];
}
//*******************************************
//❶クエリー
$result = mysql_query( $p_sql );
//エラーが発生している場合返却値を取得する
//返却値の判定を行う
$ans = mysql_error();
//❷返却値を判定する
if ( $ans != "" ) {
//❸何かしらのエラーが設定されている場合
//返却値を設定し呼び出し元へ制御を移す
return $ans;
}
//❹件数カウント
$count = mysql_num_rows( $result );
//エラーが発生している場合返却値を取得する
$ans = mysql_error();
//返却値の判定を行う
if ( $ans != "" ) {
//何かしらのエラーが設定されている場合
//返却値を設定し呼び出し元へ制御を移す
return $ans;
}
//❺チェックフラグが"on"の場合、件数チェックを行う。
if (( $count == $p_check ) || ( $p_check == NULL )) {
} else {
//件数カウントでエラーが発生している場合
return "システム的なエラーがあります。";
}
//❻件数カウントの結果0件の場合呼び出し元へ制御を移す
if ( $count == 0 ) {
//返却値が0件の場合、返却値を設定し呼び出し元へ制御を移す
return $count;
} else {
//❼オブジェクトの編集
$idx = 0;
//取得データ分以下の処理を実行する
while ($row = mysql_fetch_row( $result )) {
//❽取得したデータを編集する
//エラーを取得する
$ans = mysql_error();
//エラーが発生しているかどうか判定する
if ( $ans != "" ) {
//エラーが発生している場合
//返却値を設定し呼び出し元へ制御を移す
return $ans;
}
//返却値オブジェクトを編集する
//❾カラム数分以下の処理を実行する
for ( $i = 0;$i < count( $row );$i++ ) {
//❿返却値オブジェクトの編集
$array[$idx][mysql_field_name($result,$i)] = $row[$i];
}
//ループカウンタをカウントする
$idx++;
}
}
//⓫返却値を設定し呼び出し元へ制御を移す
return $array;
}
以上のソースは、他人が見てもいいようにコメントを追加し、かつコメントで間違っている部分については、修正させていただきました。ちょっと、ショックだったのが、引数が間違っていました・・・。ヘッダコメントの製造日が2005年なので、その当時、PHPが未熟だったことと、必死だったのだと思います?それと、すべて一人で作ろうと意気込んでいましたし、自分が分かれば良いと思っていたのかもしれません。
DB検索関数(新)とあるから、多分旧があって、作り直しているんでしょうね?なんて、懐かしみながら見ていますが、今回カラム名が必要だと言っていた部分が、❿の部分になります。解説は明日するとして、この1行のために、当初考えていたプログラムに加えて、Fetchメソッドを作ることになりました。
[あとがき]
今日から改修に入るのですが、最初に検討した部分に気を付けたいと思います。っと書きながら、件数カウントの部分が気になりました。PDOだったら、どうなっているかな?って調べたら、従来通り、それ用のメソッドが用意されているようです。件数について気にしない人、多いですが、件数って処理において意外と重要なんですよ?それと、返却値は従来通りのものを返さなくてはいけないので、ほっとしています。また、メソッドを作らなければいけないかと思ってしまいました(笑)
明日から以上の検討を元に、製造に入ります。
では、また!!!
【このカテゴリーの最新記事】