120 if(!extension_loaded(
'mssql')){
121 throw new KumbiaException(
'Debe cargar la extensión de PHP llamada php_mssql');
127 if($this->id_connection = mssql_connect(
$config[
'host'],
$config[
'username'],
$config[
'password'],
true)){
129 if(!mssql_select_db(
$config[
'name'], $this->id_connection)){
145 $this->
debug($sql_query);
150 $this->last_query = $sql_query;
151 if($result_query = mssql_query($sql_query, $this->id_connection)){
152 $this->last_result_query = $result_query;
153 return $result_query;
162 if($this->id_connection) {
163 return mssql_close();
182 return mssql_fetch_array($result_query, $opt);
203 if(($number_rows = mssql_num_rows($result_query))!==
false){
225 if(($fieldName = mssql_field_name($result_query, $number))!==
false){
245 if(($success = mssql_data_seek($result_query, $number))!==
false){
259 if(($numberRows = mssql_affected_rows())!==
false){
272 if(!$this->id_connection){
273 $this->last_error = mssql_get_last_message() ? mssql_get_last_message() :
"[Error Desconocido en MsSQL: $err]";
279 $this->last_error = mssql_get_last_message() ? mssql_get_last_message() :
"[Error Desconocido en MsSQL: $err]";
280 $this->last_error.= $err;
292 return mssql_errno();
302 $result = mssql_query(
"select max({$primary_key}) from $table");
303 if ($row = mssql_fetch_row($result)) {
304 $this->id_connection = trim($row[0]);
306 mssql_free_result($result);
316 $table = addslashes(
"$table");
318 $num = $this->
fetch_one(
"SELECT COUNT(*) FROM
319 INFORMATION_SCHEMA.TABLES
320 WHERE TABLE_NAME = '$table'");
322 $schema = addslashes(
"$schema");
323 $num = $this->
fetch_one(
"SELECT COUNT(*) FROM
324 INFORMATION_SCHEMA.TABLES
325 WHERE TABLE_NAME = '$table'
326 AND TABLE_SCHEMA = '$schema'");
340 if(isset($params[
'limit'])){
341 $sql = str_ireplace(
"SELECT ",
"SELECT TOP $params[limit] ", $sql);
354 $sql =
"IF EXISTS(SELECT TABLE_NAME FROM
355 INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '$table')
357 return $this->
query($sql);
359 return $this->
query(
"DROP TABLE $table");
368 return $this->
fetch_all(
"SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES");
392 $describeTable = $this->
fetch_all(
"exec sp_columns @table_name = '$table'");
393 $finalDescribe = array();
394 foreach($describeTable as $field){
395 $finalDescribe[] = array(
396 'Field' => $field[
'COLUMN_NAME'],
397 'Type' => $field[
'LENGTH'] ? $field[
'TYPE_NAME'] : $field[
'TYPE_NAME'].
'('.$field[
'LENGTH'].
')',
398 'Null' => $field[
'NULLABLE'] == 1 ?
'YES' :
'NO'
401 $describeKeys = $this->
fetch_all(
"exec sp_pkeys @table_name = '$table'");
402 foreach($describeKeys as $field){
403 for($i=0;$i<=count($finalDescribe)-1;++$i){
404 if($finalDescribe[$i][
'Field']==$field[
'COLUMN_NAME']){
405 $finalDescribe[$i][
'Key'] =
'PRI';
407 $finalDescribe[$i][
'Key'] =
"";
411 return $finalDescribe;
425 return mssql_fetch_object($result_query);