From cd339aa67656fd1f6b4e1030d89e73f0ccb365b9 Mon Sep 17 00:00:00 2001 From: Miles Lott Date: Thu, 26 Jul 2001 10:54:40 +0000 Subject: [PATCH] Formatting --- phpgwapi/inc/class.db_mssql.inc.php | 523 +++++++++++++++------------- 1 file changed, 282 insertions(+), 241 deletions(-) diff --git a/phpgwapi/inc/class.db_mssql.inc.php b/phpgwapi/inc/class.db_mssql.inc.php index 484ce30af3..4b2f14547a 100644 --- a/phpgwapi/inc/class.db_mssql.inc.php +++ b/phpgwapi/inc/class.db_mssql.inc.php @@ -16,261 +16,302 @@ /* $Id$ */ -# echo "
This is using the MSSQL class
"; + /* echo "
This is using the MSSQL class
"; */ -class db { - var $Host = ''; - var $Database = ''; - var $User = ''; - var $Password = ''; - - var $Link_ID = 0; - var $Query_ID = 0; - var $Record = array(); - var $Row = 0; - var $VEOF = -1; - - var $Errno = 0; - var $Error = ''; - var $use_pconnect = True; - var $Auto_Free = 0; ## set this to 1 to automatically free results - - - function connect() + class db { - if ( 0 == $this->Link_ID ) + var $Host = ''; + var $Database = ''; + var $User = ''; + var $Password = ''; + + var $Link_ID = 0; + var $Query_ID = 0; + var $Record = array(); + var $Row = 0; + var $VEOF = -1; + + var $Errno = 0; + var $Error = ''; + var $use_pconnect = True; + var $Auto_Free = 0; ## set this to 1 to automatically free results + + function connect() { - if ($this->use_pconnect) - $this->Link_ID=mssql_pconnect($this->Host, $this->User, $this->Password); - else - $this->Link_ID=mssql_connect($this->Host, $this->User, $this->Password); - if (!$this->Link_ID) - $this->halt("Link-ID == false, mssql_pconnect failed"); - else - mssql_select_db($this->Database, $this->Link_ID); - } - } - - function free_result() - { - mssql_free_result($this->Query_ID); - $this->Query_ID = 0; - $this->VEOF = -1; - } - - function query($Query_String, $line = '', $file = '') - { - $this->VEOF = -1; - - if (!$this->Link_ID) - $this->connect(); - - $this->Query_ID = mssql_query($Query_String, $this->Link_ID); - $this->Row = 0; - if (!$this->Query_ID) { - $this->halt("Invalid SQL: " . $Query_String, $line, $file); - } - return $this->Query_ID; - } - - // public: perform a query with limited result set - function limit_query($Query_String, $offset, $line = '', $file = '', $num_rows = '') - { - global $phpgw_info; - - if (! $num_rows) - { - $num_rows = $phpgw_info['user']['preferences']['common']['maxmatchs']; - } - - if ($this->Debug) - { - printf("Debug: limit_query = %s
offset=%d, num_rows=%d
\n", $Query_String, $offset, $num_rows); - } - - $this->query($Query_String, $line, $file); - if ($this->Query_ID) - { - $this->Row = $offset; - // Push cursor to appropriate row in case next_record() is used - if ($offset > 0) - @mssql_data_seek($this->Query_ID, $offset); - - $this->VEOF = $offset + $num_rows - 1; - } - - return $this->Query_ID; - } - - function next_record() - { - if (!$this->Query_ID) - { - $this->halt("next_record called with no query pending."); - return 0; - } - - if ($this->VEOF == -1 || ($this->Row++ <= $this->VEOF)) - { - // Work around for buggy mssql_fetch_array - $rec = @mssql_fetch_row($this->Query_ID); - if ($rec) + if ( 0 == $this->Link_ID ) { - $this->Record = array(); - for (var $i = 0; $i < count($rec); $i++) + if ($this->use_pconnect) { - $this->Record[$i] = $rec[$i]; - $o = mssql_fetch_field($i, $this->Query_ID); - $this->Record[$o->name] = $rec[$i]; + $this->Link_ID=mssql_pconnect($this->Host, $this->User, $this->Password); + } + else + { + $this->Link_ID=mssql_connect($this->Host, $this->User, $this->Password); + } + if (!$this->Link_ID) + { + $this->halt("Link-ID == false, mssql_pconnect failed"); + } + else + { + mssql_select_db($this->Database, $this->Link_ID); + } + } + } + + function free_result() + { + mssql_free_result($this->Query_ID); + $this->Query_ID = 0; + $this->VEOF = -1; + } + + function query($Query_String, $line = '', $file = '') + { + $this->VEOF = -1; + + if (!$this->Link_ID) + { + $this->connect(); + } + + $this->Query_ID = mssql_query($Query_String, $this->Link_ID); + $this->Row = 0; + if (!$this->Query_ID) + { + $this->halt("Invalid SQL: " . $Query_String, $line, $file); + } + return $this->Query_ID; + } + + // public: perform a query with limited result set + function limit_query($Query_String, $offset, $line = '', $file = '', $num_rows = '') + { + global $phpgw_info; + + if (! $num_rows) + { + $num_rows = $phpgw_info['user']['preferences']['common']['maxmatchs']; + } + + if ($this->Debug) + { + printf("Debug: limit_query = %s
offset=%d, num_rows=%d
\n", $Query_String, $offset, $num_rows); + } + + $this->query($Query_String, $line, $file); + if ($this->Query_ID) + { + $this->Row = $offset; + // Push cursor to appropriate row in case next_record() is used + if ($offset > 0) + { + @mssql_data_seek($this->Query_ID, $offset); + } + $this->VEOF = $offset + $num_rows - 1; + } + + return $this->Query_ID; + } + + function next_record() + { + if (!$this->Query_ID) + { + $this->halt("next_record called with no query pending."); + return 0; + } + + if ($this->VEOF == -1 || ($this->Row++ <= $this->VEOF)) + { + // Work around for buggy mssql_fetch_array + $rec = @mssql_fetch_row($this->Query_ID); + if ($rec) + { + $this->Record = array(); + for (var $i = 0; $i < count($rec); $i++) + { + $this->Record[$i] = $rec[$i]; + $o = mssql_fetch_field($i, $this->Query_ID); + $this->Record[$o->name] = $rec[$i]; + } + } + else + { + $this->Record = NULL; } } else + { $this->Record = NULL; + } + + $stat = is_array($this->Record); + if (!$stat && $this->Auto_Free) + { + $this->free(); + } + + return $stat; } - else - $this->Record = NULL; - $stat = is_array($this->Record); - if (!$stat && $this->Auto_Free) - $this->free(); - - return $stat; - } - - function transaction_begin() - { - return $this->query('BEGIN TRAN'); - } - - function transaction_commit() - { - if (!$this->Errno) - return $this->query('COMMIT TRAN'); - - return False; - } - - function transaction_abort() - { - return $this->query('ROLLBACK TRAN'); - } - - function seek($pos) { - mssql_data_seek($this->Query_ID,$pos); - $this->Row = $pos; - } - - function metadata($table) { - $count = 0; - $id = 0; - $res = array(); - - $this->connect(); - $id = mssql_query("select * from $table", $this->Link_ID); - if (!$id) - $this->halt("Metadata query failed."); - - $count = mssql_num_fields($id); - - for ($i=0; $i<$count; $i++) { - $info = mssql_fetch_field($id, $i); - $res[$i]["table"] = $table; - $res[$i]["name"] = $info["name"]; - $res[$i]["len"] = $info["max_length"]; - $res[$i]["flags"] = $info["numeric"]; - } - $this->free_result(); - return $res; - } - - function affected_rows() { - return mssql_affected_rows($this->Query_ID); - } - - function num_rows() { - return mssql_num_rows($this->Query_ID); - } - - function num_fields() { - return mssql_num_fields($this->Query_ID); - } - - function nf() { - return $this->num_rows(); - } - - function np() { - print $this->num_rows(); - } - - function f($Field_Name) { - return $this->Record[strtolower($Field_Name)]; - } - - function p($Field_Name) { - print $this->f($Field_Name); - } - - /* public: table locking */ - function lock($table, $mode="write") - { - return 1; // FIXME: fill it in! - } - - function unlock() - { - return 1; // FIXME: fill it in! - } - - /* private: error handling */ - function halt($msg, $line = '', $file = '') - { - global $phpgw; - $this->unlock(); - - $this->Errno = 1; - $this->Error = mssql_get_last_message(); - if ($this->Error == '') - $this->Error = "General Error (The MS-SQL interface did not return a detailed error message)."; - - if ($this->Halt_On_Error == "no") - return; - - $this->haltmsg($msg); - - if ($file) - printf("
File: %s",$file); - - if ($line) - printf("
Line: %s",$line); - - if ($this->Halt_On_Error != "report") + function transaction_begin() { - echo "

Session halted."; - $phpgw->common->phpgw_exit(True); + return $this->query('BEGIN TRAN'); } - } - function haltmsg($msg) - { - printf("Database error: %s
\n", $msg); - if ($this->Errno != "0" && $this->Error != "()") { - printf("MS-SQL Error: %s (%s)
\n", $this->Errno, $this->Error); - } - } - - function table_names() - { - $this->query("select name from sysobjects where type='u' and name != 'dtproperties'"); - $i = 0; - while ($info = @mssql_fetch_row($this->Query_ID)) + function transaction_commit() { - $return[$i]['table_name'] = $info[0]; - $return[$i]['tablespace_name'] = $this->Database; - $return[$i]['database'] = $this->Database; - $i++; + if (!$this->Errno) + { + return $this->query('COMMIT TRAN'); + } + + return False; } - return $return; - } -} + + function transaction_abort() + { + return $this->query('ROLLBACK TRAN'); + } + + function seek($pos) + { + mssql_data_seek($this->Query_ID,$pos); + $this->Row = $pos; + } + + function metadata($table) + { + $count = 0; + $id = 0; + $res = array(); + + $this->connect(); + $id = mssql_query("select * from $table", $this->Link_ID); + if (!$id) + { + $this->halt("Metadata query failed."); + } + + $count = mssql_num_fields($id); + + for ($i=0; $i<$count; $i++) + { + $info = mssql_fetch_field($id, $i); + $res[$i]["table"] = $table; + $res[$i]["name"] = $info["name"]; + $res[$i]["len"] = $info["max_length"]; + $res[$i]["flags"] = $info["numeric"]; + } + $this->free_result(); + return $res; + } + + function affected_rows() + { + return mssql_affected_rows($this->Query_ID); + } + + function num_rows() + { + return mssql_num_rows($this->Query_ID); + } + + function num_fields() + { + return mssql_num_fields($this->Query_ID); + } + + function nf() + { + return $this->num_rows(); + } + + function np() + { + print $this->num_rows(); + } + + function f($Field_Name) + { + return $this->Record[strtolower($Field_Name)]; + } + + function p($Field_Name) + { + print $this->f($Field_Name); + } + + /* public: table locking */ + function lock($table, $mode="write") + { + return 1; // FIXME: fill it in! + } + + function unlock() + { + return 1; // FIXME: fill it in! + } + + /* private: error handling */ + function halt($msg, $line = '', $file = '') + { + global $phpgw; + $this->unlock(); + + $this->Errno = 1; + $this->Error = mssql_get_last_message(); + if ($this->Error == '') + { + $this->Error = "General Error (The MS-SQL interface did not return a detailed error message)."; + } + + if ($this->Halt_On_Error == "no") + { + return; + } + + $this->haltmsg($msg); + + if ($file) + { + printf("
File: %s",$file); + } + + if ($line) + { + printf("
Line: %s",$line); + } + + if ($this->Halt_On_Error != "report") + { + echo "

Session halted."; + $phpgw->common->phpgw_exit(True); + } + } + + function haltmsg($msg) + { + printf("Database error: %s
\n", $msg); + if ($this->Errno != "0" && $this->Error != "()") + { + printf("MS-SQL Error: %s (%s)
\n", $this->Errno, $this->Error); + } + } + + function table_names() + { + $this->query("select name from sysobjects where type='u' and name != 'dtproperties'"); + $i = 0; + while ($info = @mssql_fetch_row($this->Query_ID)) + { + $return[$i]['table_name'] = $info[0]; + $return[$i]['tablespace_name'] = $this->Database; + $return[$i]['database'] = $this->Database; + $i++; + } + return $return; + } + } ?>