function get_procedure_source($name) { global $dbhandle; $psource = ''; $sql = 'SELECT P.RDB$PROCEDURE_SOURCE PSOURCE' . ' FROM RDB$PROCEDURES P' . " WHERE P.RDB\$PROCEDURE_NAME='" . $name . "'"; $res = fbird_query($dbhandle, $sql) or ib_error(__FILE__, __LINE__, $sql); $obj = fbird_fetch_object($res); if (is_object($obj)) { $bid = fbird_blob_open($obj->PSOURCE); $arr = fbird_blob_info($obj->PSOURCE); // $arr[2] holds the blob length $psource = trim(fbird_blob_get($bid, $arr[0])); fbird_blob_close($bid); } fbird_free_result($res); return $psource; }
function get_trigger_source($name) { global $dbhandle; $tsource = ''; $lsql = 'SELECT RDB$TRIGGER_SOURCE AS TSOURCE' . ' FROM RDB$TRIGGERS' . " WHERE RDB\$TRIGGER_NAME='" . $name . "'"; $res = fbird_query($dbhandle, $lsql) or ib_error(__FILE__, __LINE__, $lsql); $obj = fbird_fetch_object($res); if (is_object($obj)) { $bid = fbird_blob_open($obj->TSOURCE); $arr = fbird_blob_info($obj->TSOURCE); // $arr[0] holds the blob length $tsource = trim(fbird_blob_get($bid, $arr[0])); fbird_blob_close($bid); // discard the 'AS ' from the source-string $tsource = substr($tsource, 3); } fbird_free_result($res); return $tsource; }
function _BlobDecode($blob) { if (ADODB_PHPVER >= 0x5000) { $blob_data = fbird_blob_info($this->_connectionID, $blob); $blobid = fbird_blob_open($this->_connectionID, $blob); } else { $blob_data = fbird_blob_info($blob); $blobid = fbird_blob_open($blob); } if ($blob_data[0] > $this->maxblobsize) { $realblob = fbird_blob_get($blobid, $this->maxblobsize); while ($string = fbird_blob_get($blobid, 8192)) { $realblob .= $string; } } else { $realblob = fbird_blob_get($blobid, $blob_data[0]); } fbird_blob_close($blobid); return $realblob; }
function get_blob_content($sql) { global $dbhandle; $res = fbird_query($dbhandle, $sql) or ib_error(__FILE__, __LINE__, $sql); $row = fbird_fetch_row($res); if ($blob_handle = @fbird_blob_open($row[0])) { $blob_info = fbird_blob_info($row[0]); $blob_length = $blob_info[0]; $blob = fbird_blob_get($blob_handle, $blob_length); fbird_blob_close($blob_handle); } else { $blob = 'not a blob!'; } return $blob; }
function print_value($wt, $val, $type, $colname = NULL, $obj = NULL) { if ($val === NULL) { $data = '<i>NULL</i>'; $align = 'center'; } elseif (strlen(trim($val)) == 0) { $data = ' '; $align = ''; } elseif (in_array($type, array('CHARACTER', 'VARCHAR'))) { $data = htmlspecialchars(trim($val)); $align = 'left'; } elseif ($type != 'BLOB') { $data = trim($val); $align = 'right'; } else { $inline_flag = FALSE; $data = ''; if ($wt['tblob_inline'] == TRUE && $wt['blob_as'][$colname] == 'text') { $blob_handle = fbird_blob_open($val); $blob_info = fbird_blob_info($val); $blob_length = $blob_info[0]; $data = htmlspecialchars(fbird_blob_get($blob_handle, $wt['tblob_chars'])); fbird_blob_close($blob_handle); if ($blob_length > $wt['tblob_chars']) { $data .= ' ... '; } else { $inline_flag = TRUE; $align = 'left'; } } if (in_array($colname, $wt['blob_links']) && !$inline_flag) { $align = empty($data) ? 'center' : 'left'; $url = url_session('showblob.php?where=' . get_where_str($obj) . '&table=' . $wt['table'] . '&col=' . $colname); $data .= '<i><a href="' . $url . '" target="_blank">BLOB</a></i>'; } if ($data == '') { $align = 'center'; $data = '<i>BLOB</i>'; } } if (isset($wt['fks'][$colname])) { $link = sprintf("javascript:requestFKValues('%s', '%s', '%s')", $wt['fks'][$colname]['table'], $wt['fks'][$colname]['column'], $data); $data = '<a href="' . $link . '">' . $data . '</a>'; } echo '<td' . (!empty($align) ? ' align="' . $align . '"' : '') . '>' . $data . '</td>'; }
function get_view_source($name) { global $dbhandle; $vsource = ''; $sql = 'SELECT R.RDB$VIEW_SOURCE VSOURCE' . ' FROM RDB$RELATIONS R' . " WHERE R.RDB\$RELATION_NAME='" . $name . "'"; $res = fbird_query($dbhandle, $sql) or ib_error(__FILE__, __LINE__, $sql); $obj = fbird_fetch_object($res); if (is_object($obj)) { $bid = fbird_blob_open($obj->VSOURCE); $arr = fbird_blob_info($obj->VSOURCE); // $arr[0] holds the blob length $vsource = trim(fbird_blob_get($bid, $arr[0])); fbird_blob_close($bid); } fbird_free_result($res); return $vsource; }