開始行: ***odbc_sql.inc.php [#s6d9f1a5] 別件で色々調べていたらODBCの利用方法があったのでプラグ... -classの使い方がわからず色々と試しているのですが、これに... -Windows環境で利用する目的なので、イントラネットしか想定... -一応MS Accessで動作確認しました。SQLはAccessのクエリーで... -このプラグインを元にカスタマイズすれば自分好みに色々出来... -寝ぼけながら作ったのでミスがあったら教えてください。 > - Note/diary/2007-01-28 upkさんの指摘にもあるようにSQLが... - 続いて、アドバイス頂いて凍結時のみ動作するように変更し... #ref(odbc_sql.inc.php.0.2) //cut #code(php){{{{ <?php // odbc_sql.inc.php, 0.2 2007/01/29 taru plugin define( '_PLUGIN_ODBC_SQL_NAME', 'odbc_Access'); //OD... define( '_PLUGIN_ODBC_SQL_USER', 'taru'); //DNSに接... define( '_PLUGIN_ODBC_SQL_PASSWORDP',''); //DNSに接続す... define( '_PLUGIN_ODBC_SQL_MB_C_E', true); //文字エン... define( '_PLUGIN_ODBC_SQL_MB_TO', 'SJIS'); //データ... function plugin_odbc_sql_convert() { global $vars; //'07.01.29追加 if (! is_freeze($vars['page']) ) return 'このプラグインはページが凍結されていないと有効... $args = func_get_args(); //オプションを取得 $sql = array_pop($args); //複数行オプションをSQL文とする if ( $sql == '' ) return 'SQL文の指定がありません'; //SQL文が存在しない時... if ( isset( $args[0] ) ) { //通常オプションの指定があれ... foreach ($args as $opt_data) { list($key, $val) = explode('=', $opt_data); $opt[strtolower($key)] = $val; } } //オプション、defineどちらの値を使うかは、オプション指定... $dsn_name = (isset($opt['name'])) ? $opt['name'] : _PLUG... $dsn_user = (isset($opt['user'])) ? $opt['user'] : _PLUG... $dsn_pass = (isset($opt['pass'])) ? $opt['pass'] : _PLUG... $db_char = (isset($opt['char'])) ? $opt['char'] : _PLUG... $u_func = new OdbcSqlFunction($db_char); $body = '<pre>' . htmlspecialchars($sql) . '</pre>'; $sql = $u_func->mb_chg($sql); //文字エンコード //ODBCに接続 $odbc_id = odbc_connect( $dsn_name, $dsn_user, $dsn_pass); //SQLの実行 $db_data = odbc_exec($odbc_id, $sql); if (! $db_data) return 'データを取得できませんでした。'; //// データを表示する //// $column = odbc_num_fields($db_data); //列数 $row = 1; //行番号用変数 //フィールド名 $body .= "\n <thead><tr>\n"; for( $i = 1; $i <= $column; $i++) { $body .= ' <td class="style_td">' . $u_func->mb_chg_c... } $body .= "\n </tr></thead>\n"; //行データ while(odbc_fetch_row($db_data, $row++)){ $body .= "\n <tr>\n"; for( $i = 1; $i <= $column; $i++) { $body .= ' <td class="style_td">' . $u_func->mb_chg_... } $body .= "\n </tr>\n"; } $body = '<table class="style_table" cellspacing="1" bord... $ret = odbc_close($odbc_id);//データベースへの接続を閉じる return $body; } class OdbcSqlFunction { var $char; function OdbcSqlFunction($db_char) { $this->char = $db_char; } function mb_chg($data) { if (! _PLUGIN_ODBC_SQL_MB_C_E) return $data; return mb_convert_encoding($data, $this->char, SOURCE_E... } function mb_chg_chg($data) { if (! _PLUGIN_ODBC_SQL_MB_C_E) return $data; return mb_convert_encoding($data, SOURCE_ENCODING, $thi... } } ?> }}}} 終了行: ***odbc_sql.inc.php [#s6d9f1a5] 別件で色々調べていたらODBCの利用方法があったのでプラグ... -classの使い方がわからず色々と試しているのですが、これに... -Windows環境で利用する目的なので、イントラネットしか想定... -一応MS Accessで動作確認しました。SQLはAccessのクエリーで... -このプラグインを元にカスタマイズすれば自分好みに色々出来... -寝ぼけながら作ったのでミスがあったら教えてください。 > - Note/diary/2007-01-28 upkさんの指摘にもあるようにSQLが... - 続いて、アドバイス頂いて凍結時のみ動作するように変更し... #ref(odbc_sql.inc.php.0.2) //cut #code(php){{{{ <?php // odbc_sql.inc.php, 0.2 2007/01/29 taru plugin define( '_PLUGIN_ODBC_SQL_NAME', 'odbc_Access'); //OD... define( '_PLUGIN_ODBC_SQL_USER', 'taru'); //DNSに接... define( '_PLUGIN_ODBC_SQL_PASSWORDP',''); //DNSに接続す... define( '_PLUGIN_ODBC_SQL_MB_C_E', true); //文字エン... define( '_PLUGIN_ODBC_SQL_MB_TO', 'SJIS'); //データ... function plugin_odbc_sql_convert() { global $vars; //'07.01.29追加 if (! is_freeze($vars['page']) ) return 'このプラグインはページが凍結されていないと有効... $args = func_get_args(); //オプションを取得 $sql = array_pop($args); //複数行オプションをSQL文とする if ( $sql == '' ) return 'SQL文の指定がありません'; //SQL文が存在しない時... if ( isset( $args[0] ) ) { //通常オプションの指定があれ... foreach ($args as $opt_data) { list($key, $val) = explode('=', $opt_data); $opt[strtolower($key)] = $val; } } //オプション、defineどちらの値を使うかは、オプション指定... $dsn_name = (isset($opt['name'])) ? $opt['name'] : _PLUG... $dsn_user = (isset($opt['user'])) ? $opt['user'] : _PLUG... $dsn_pass = (isset($opt['pass'])) ? $opt['pass'] : _PLUG... $db_char = (isset($opt['char'])) ? $opt['char'] : _PLUG... $u_func = new OdbcSqlFunction($db_char); $body = '<pre>' . htmlspecialchars($sql) . '</pre>'; $sql = $u_func->mb_chg($sql); //文字エンコード //ODBCに接続 $odbc_id = odbc_connect( $dsn_name, $dsn_user, $dsn_pass); //SQLの実行 $db_data = odbc_exec($odbc_id, $sql); if (! $db_data) return 'データを取得できませんでした。'; //// データを表示する //// $column = odbc_num_fields($db_data); //列数 $row = 1; //行番号用変数 //フィールド名 $body .= "\n <thead><tr>\n"; for( $i = 1; $i <= $column; $i++) { $body .= ' <td class="style_td">' . $u_func->mb_chg_c... } $body .= "\n </tr></thead>\n"; //行データ while(odbc_fetch_row($db_data, $row++)){ $body .= "\n <tr>\n"; for( $i = 1; $i <= $column; $i++) { $body .= ' <td class="style_td">' . $u_func->mb_chg_... } $body .= "\n </tr>\n"; } $body = '<table class="style_table" cellspacing="1" bord... $ret = odbc_close($odbc_id);//データベースへの接続を閉じる return $body; } class OdbcSqlFunction { var $char; function OdbcSqlFunction($db_char) { $this->char = $db_char; } function mb_chg($data) { if (! _PLUGIN_ODBC_SQL_MB_C_E) return $data; return mb_convert_encoding($data, $this->char, SOURCE_E... } function mb_chg_chg($data) { if (! _PLUGIN_ODBC_SQL_MB_C_E) return $data; return mb_convert_encoding($data, SOURCE_ENCODING, $thi... } } ?> }}}} ページ名: