mirror of
https://github.com/dg/dibi.git
synced 2025-08-04 21:28:02 +02:00
@@ -104,7 +104,7 @@ class DibiNettePanel extends DibiObject implements Nette\Diagnostics\IBarPanel
|
|||||||
try {
|
try {
|
||||||
$backup = array($event->connection->onEvent, dibi::$numOfQueries, dibi::$totalTime);
|
$backup = array($event->connection->onEvent, dibi::$numOfQueries, dibi::$totalTime);
|
||||||
$event->connection->onEvent = NULL;
|
$event->connection->onEvent = NULL;
|
||||||
$cmd = is_string($this->explain) ? $this->explain : ($event->connection->getConfig('driver') === 'oracle' ? 'EXPLAIN PLAN' : 'EXPLAIN');
|
$cmd = is_string($this->explain) ? $this->explain : ($event->connection->getConfig('driver') === 'oracle' ? 'EXPLAIN PLAN FOR' : 'EXPLAIN');
|
||||||
$explain = dibi::dump($event->connection->nativeQuery("$cmd $event->sql"), TRUE);
|
$explain = dibi::dump($event->connection->nativeQuery("$cmd $event->sql"), TRUE);
|
||||||
} catch (DibiException $e) {}
|
} catch (DibiException $e) {}
|
||||||
list($event->connection->onEvent, dibi::$numOfQueries, dibi::$totalTime) = $backup;
|
list($event->connection->onEvent, dibi::$numOfQueries, dibi::$totalTime) = $backup;
|
||||||
|
@@ -107,7 +107,7 @@ class Panel extends \DibiObject implements Tracy\IBarPanel
|
|||||||
try {
|
try {
|
||||||
$backup = array($event->connection->onEvent, dibi::$numOfQueries, dibi::$totalTime);
|
$backup = array($event->connection->onEvent, dibi::$numOfQueries, dibi::$totalTime);
|
||||||
$event->connection->onEvent = NULL;
|
$event->connection->onEvent = NULL;
|
||||||
$cmd = is_string($this->explain) ? $this->explain : ($event->connection->getConfig('driver') === 'oracle' ? 'EXPLAIN PLAN' : 'EXPLAIN');
|
$cmd = is_string($this->explain) ? $this->explain : ($event->connection->getConfig('driver') === 'oracle' ? 'EXPLAIN PLAN FOR' : 'EXPLAIN');
|
||||||
$explain = dibi::dump($event->connection->nativeQuery("$cmd $event->sql"), TRUE);
|
$explain = dibi::dump($event->connection->nativeQuery("$cmd $event->sql"), TRUE);
|
||||||
} catch (\DibiException $e) {}
|
} catch (\DibiException $e) {}
|
||||||
list($event->connection->onEvent, dibi::$numOfQueries, dibi::$totalTime) = $backup;
|
list($event->connection->onEvent, dibi::$numOfQueries, dibi::$totalTime) = $backup;
|
||||||
|
@@ -103,7 +103,7 @@ class DibiOracleDriver extends DibiObject implements IDibiDriver, IDibiResultDri
|
|||||||
{
|
{
|
||||||
$res = oci_parse($this->connection, $sql);
|
$res = oci_parse($this->connection, $sql);
|
||||||
if ($res) {
|
if ($res) {
|
||||||
oci_execute($res, $this->autocommit ? OCI_COMMIT_ON_SUCCESS : OCI_DEFAULT);
|
@oci_execute($res, $this->autocommit ? OCI_COMMIT_ON_SUCCESS : OCI_DEFAULT);
|
||||||
$err = oci_error($res);
|
$err = oci_error($res);
|
||||||
if ($err) {
|
if ($err) {
|
||||||
throw new DibiDriverException($err['message'], $err['code'], $sql);
|
throw new DibiDriverException($err['message'], $err['code'], $sql);
|
||||||
@@ -365,11 +365,12 @@ class DibiOracleDriver extends DibiObject implements IDibiDriver, IDibiResultDri
|
|||||||
$count = oci_num_fields($this->resultSet);
|
$count = oci_num_fields($this->resultSet);
|
||||||
$columns = array();
|
$columns = array();
|
||||||
for ($i = 1; $i <= $count; $i++) {
|
for ($i = 1; $i <= $count; $i++) {
|
||||||
|
$type = oci_field_type($this->resultSet, $i);
|
||||||
$columns[] = array(
|
$columns[] = array(
|
||||||
'name' => oci_field_name($this->resultSet, $i),
|
'name' => oci_field_name($this->resultSet, $i),
|
||||||
'table' => NULL,
|
'table' => NULL,
|
||||||
'fullname' => oci_field_name($this->resultSet, $i),
|
'fullname' => oci_field_name($this->resultSet, $i),
|
||||||
'nativetype'=> oci_field_type($this->resultSet, $i),
|
'nativetype' => $type === 'NUMBER' && oci_field_scale($this->resultSet, $i) === 0 ? 'INTEGER' : $type,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return $columns;
|
return $columns;
|
||||||
|
Reference in New Issue
Block a user