123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- <?php
- require_once 'MDB2/Driver/Reverse/Common.php';
- class MDB2_Driver_Reverse_fbsql extends MDB2_Driver_Reverse_Common
- {
-
-
-
- function tableInfo($result, $mode = null)
- {
- if (is_string($result)) {
- return parent::tableInfo($result, $mode);
- }
- $db =& $this->getDBInstance();
- if (MDB2::isError($db)) {
- return $db;
- }
- $resource = MDB2::isResultCommon($result) ? $result->getResource() : $result;
- if (!is_resource($resource)) {
- return $db->raiseError(MDB2_ERROR_NEED_MORE_DATA, null, null,
- 'Could not generate result resource', __FUNCTION__);
- }
- if ($db->options['portability'] & MDB2_PORTABILITY_FIX_CASE) {
- if ($db->options['field_case'] == CASE_LOWER) {
- $case_func = 'strtolower';
- } else {
- $case_func = 'strtoupper';
- }
- } else {
- $case_func = 'strval';
- }
- $count = @fbsql_num_fields($resource);
- $res = array();
- if ($mode) {
- $res['num_fields'] = $count;
- }
- for ($i = 0; $i < $count; $i++) {
- $res[$i] = array(
- 'table' => $case_func(@fbsql_field_table($resource, $i)),
- 'name' => $case_func(@fbsql_field_name($resource, $i)),
- 'type' => @fbsql_field_type($resource, $i),
- 'length' => @fbsql_field_len($resource, $i),
- 'flags' => @fbsql_field_flags($resource, $i),
- );
-
- $res[$i]['mdb2type'] = $res[$i]['type'];
- if ($mode & MDB2_TABLEINFO_ORDER) {
- $res['order'][$res[$i]['name']] = $i;
- }
- if ($mode & MDB2_TABLEINFO_ORDERTABLE) {
- $res['ordertable'][$res[$i]['table']][$res[$i]['name']] = $i;
- }
- }
- return $res;
- }
- }
- ?>
|