Better type hinting for the MSSQL database driver
This commit is contained in:
parent
6e6e63db50
commit
7231ca890a
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* \file htdocs/core/db/mssql.class.php
|
* \file htdocs/core/db/mssql.class.php
|
||||||
* \brief Fichier de la classe permettant de gerer une base mssql
|
* \brief Fichier de la classe permettant de gerer une base MSSQL
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require_once DOL_DOCUMENT_ROOT .'/core/db/DoliDB.class.php';
|
require_once DOL_DOCUMENT_ROOT .'/core/db/DoliDB.class.php';
|
||||||
@ -157,8 +157,8 @@ class DoliDBMssql extends DoliDB
|
|||||||
* @param string $login login
|
* @param string $login login
|
||||||
* @param string $passwd password
|
* @param string $passwd password
|
||||||
* @param string $name name of database (not used for mysql, used for pgsql)
|
* @param string $name name of database (not used for mysql, used for pgsql)
|
||||||
* @param string $port Port of database server
|
* @param int $port Port of database server
|
||||||
* @return resource Database access handler
|
* @return false|resource|true Database access handler
|
||||||
* @see close
|
* @see close
|
||||||
*/
|
*/
|
||||||
function connect($host, $login, $passwd, $name, $port=0)
|
function connect($host, $login, $passwd, $name, $port=0)
|
||||||
@ -212,7 +212,7 @@ class DoliDBMssql extends DoliDB
|
|||||||
/**
|
/**
|
||||||
* Close database connexion
|
* Close database connexion
|
||||||
*
|
*
|
||||||
* @return boolean True if disconnect successfull, false otherwise
|
* @return bool True if disconnect successfull, false otherwise
|
||||||
* @see connect
|
* @see connect
|
||||||
*/
|
*/
|
||||||
function close()
|
function close()
|
||||||
@ -230,7 +230,7 @@ class DoliDBMssql extends DoliDB
|
|||||||
/**
|
/**
|
||||||
* Start transaction
|
* Start transaction
|
||||||
*
|
*
|
||||||
* @return int 1 if transaction successfuly opened or already opened, 0 if error
|
* @return bool true if transaction successfuly opened or already opened, false if error
|
||||||
*/
|
*/
|
||||||
function begin()
|
function begin()
|
||||||
{
|
{
|
||||||
@ -250,7 +250,7 @@ class DoliDBMssql extends DoliDB
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return 1;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -258,7 +258,7 @@ class DoliDBMssql extends DoliDB
|
|||||||
* Validate a database transaction
|
* Validate a database transaction
|
||||||
*
|
*
|
||||||
* @param string $log Add more log to default log line
|
* @param string $log Add more log to default log line
|
||||||
* @return int 1 if validation is OK or transaction level no started, 0 if ERROR
|
* @return bool true if validation is OK or transaction level no started, false if ERROR
|
||||||
*/
|
*/
|
||||||
function commit($log='')
|
function commit($log='')
|
||||||
{
|
{
|
||||||
@ -272,16 +272,16 @@ class DoliDBMssql extends DoliDB
|
|||||||
if ($ret)
|
if ($ret)
|
||||||
{
|
{
|
||||||
dol_syslog("COMMIT Transaction",LOG_DEBUG);
|
dol_syslog("COMMIT Transaction",LOG_DEBUG);
|
||||||
return 1;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return 0;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elseif ($this->transaction_opened > 1)
|
elseif ($this->transaction_opened > 1)
|
||||||
{
|
{
|
||||||
return 1;
|
return true;
|
||||||
} else
|
} else
|
||||||
trigger_error("Commit requested but no transaction remain");
|
trigger_error("Commit requested but no transaction remain");
|
||||||
}
|
}
|
||||||
@ -290,7 +290,7 @@ class DoliDBMssql extends DoliDB
|
|||||||
* Annulation d'une transaction et retour aux anciennes valeurs
|
* Annulation d'une transaction et retour aux anciennes valeurs
|
||||||
*
|
*
|
||||||
* @param string $log Add more log to default log line
|
* @param string $log Add more log to default log line
|
||||||
* @return int 1 si annulation ok ou transaction non ouverte, 0 en cas d'erreur
|
* @return bool true si annulation ok ou transaction non ouverte, false en cas d'erreur
|
||||||
*/
|
*/
|
||||||
function rollback($log='')
|
function rollback($log='')
|
||||||
{
|
{
|
||||||
@ -305,7 +305,7 @@ class DoliDBMssql extends DoliDB
|
|||||||
}
|
}
|
||||||
elseif ($this->transaction_opened > 1)
|
elseif ($this->transaction_opened > 1)
|
||||||
{
|
{
|
||||||
return 1;
|
return true;
|
||||||
} else
|
} else
|
||||||
trigger_error("Rollback requested but no transaction remain");
|
trigger_error("Rollback requested but no transaction remain");
|
||||||
}
|
}
|
||||||
@ -317,7 +317,7 @@ class DoliDBMssql extends DoliDB
|
|||||||
* @param int $usesavepoint 0=Default mode, 1=Run a savepoint before and a rollbock to savepoint if error (this allow to have some request with errors inside global transactions).
|
* @param int $usesavepoint 0=Default mode, 1=Run a savepoint before and a rollbock to savepoint if error (this allow to have some request with errors inside global transactions).
|
||||||
* Note that with Mysql, this parameter is not used as Myssql can already commit a transaction even if one request is in error, without using savepoints.
|
* Note that with Mysql, this parameter is not used as Myssql can already commit a transaction even if one request is in error, without using savepoints.
|
||||||
* @param string $type Type of SQL order ('ddl' for insert, update, select, delete or 'dml' for create, alter...)
|
* @param string $type Type of SQL order ('ddl' for insert, update, select, delete or 'dml' for create, alter...)
|
||||||
* @return resource Resultset of answer
|
* @return false|resource|true Resultset of answer
|
||||||
*/
|
*/
|
||||||
function query($query,$usesavepoint=0,$type='auto')
|
function query($query,$usesavepoint=0,$type='auto')
|
||||||
{
|
{
|
||||||
@ -459,8 +459,8 @@ class DoliDBMssql extends DoliDB
|
|||||||
/**
|
/**
|
||||||
* Renvoie la ligne courante (comme un objet) pour le curseur resultset
|
* Renvoie la ligne courante (comme un objet) pour le curseur resultset
|
||||||
*
|
*
|
||||||
* @param Resultset $resultset Curseur de la requete voulue
|
* @param resource $resultset Curseur de la requete voulue
|
||||||
* @return Object Object result line or false if KO or end of cursor
|
* @return object|false Object result line or false if KO or end of cursor
|
||||||
*/
|
*/
|
||||||
function fetch_object($resultset)
|
function fetch_object($resultset)
|
||||||
{
|
{
|
||||||
@ -472,8 +472,8 @@ class DoliDBMssql extends DoliDB
|
|||||||
/**
|
/**
|
||||||
* Return datas as an array
|
* Return datas as an array
|
||||||
*
|
*
|
||||||
* @param Resultset $resultset Resultset of request
|
* @param resource $resultset Resultset of request
|
||||||
* @return array Array
|
* @return array|false Array or false if KO or end of cursor
|
||||||
*/
|
*/
|
||||||
function fetch_array($resultset)
|
function fetch_array($resultset)
|
||||||
{
|
{
|
||||||
@ -486,8 +486,8 @@ class DoliDBMssql extends DoliDB
|
|||||||
/**
|
/**
|
||||||
* Return datas as an array
|
* Return datas as an array
|
||||||
*
|
*
|
||||||
* @param Resultset $resultset Resultset of request
|
* @param resource $resultset Resultset of request
|
||||||
* @return array Array
|
* @return array|false Array or false if KO or end of cursor
|
||||||
*/
|
*/
|
||||||
function fetch_row($resultset)
|
function fetch_row($resultset)
|
||||||
{
|
{
|
||||||
@ -499,7 +499,7 @@ class DoliDBMssql extends DoliDB
|
|||||||
/**
|
/**
|
||||||
* Return number of lines for result of a SELECT
|
* Return number of lines for result of a SELECT
|
||||||
*
|
*
|
||||||
* @param Resultset $resultset Resulset of requests
|
* @param resource $resultset Resulset of requests
|
||||||
* @return int Nb of lines
|
* @return int Nb of lines
|
||||||
* @see affected_rows
|
* @see affected_rows
|
||||||
*/
|
*/
|
||||||
@ -513,7 +513,7 @@ class DoliDBMssql extends DoliDB
|
|||||||
/**
|
/**
|
||||||
* Renvoie le nombre de lignes dans le resultat d'une requete INSERT, DELETE ou UPDATE
|
* Renvoie le nombre de lignes dans le resultat d'une requete INSERT, DELETE ou UPDATE
|
||||||
*
|
*
|
||||||
* @param resultset $resultset Curseur de la requete voulue
|
* @param resource $resultset Curseur de la requete voulue
|
||||||
* @return int Nombre de lignes
|
* @return int Nombre de lignes
|
||||||
* @see num_rows
|
* @see num_rows
|
||||||
*/
|
*/
|
||||||
@ -532,10 +532,10 @@ class DoliDBMssql extends DoliDB
|
|||||||
/**
|
/**
|
||||||
* Free last resultset used.
|
* Free last resultset used.
|
||||||
*
|
*
|
||||||
* @param resultset $resultset Curseur de la requete voulue
|
* @param resource $resultset Curseur de la requete voulue
|
||||||
* @return void
|
* @return bool
|
||||||
*/
|
*/
|
||||||
function free($resultset=0)
|
function free($resultset=null)
|
||||||
{
|
{
|
||||||
// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
|
// Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
|
||||||
if (! is_resource($resultset)) { $resultset=$this->_results; }
|
if (! is_resource($resultset)) { $resultset=$this->_results; }
|
||||||
@ -641,7 +641,7 @@ class DoliDBMssql extends DoliDB
|
|||||||
*
|
*
|
||||||
* @param string $tab Table name concerned by insert. Ne sert pas sous MySql mais requis pour compatibilite avec Postgresql
|
* @param string $tab Table name concerned by insert. Ne sert pas sous MySql mais requis pour compatibilite avec Postgresql
|
||||||
* @param string $fieldid Field name
|
* @param string $fieldid Field name
|
||||||
* @return int Id of row
|
* @return int Id of row or -1 on error
|
||||||
*/
|
*/
|
||||||
function last_insert_id($tab,$fieldid='rowid')
|
function last_insert_id($tab,$fieldid='rowid')
|
||||||
{
|
{
|
||||||
@ -662,7 +662,7 @@ class DoliDBMssql extends DoliDB
|
|||||||
*
|
*
|
||||||
* @param string $fieldorvalue Field name or value to encrypt
|
* @param string $fieldorvalue Field name or value to encrypt
|
||||||
* @param int $withQuotes Return string with quotes
|
* @param int $withQuotes Return string with quotes
|
||||||
* @return return XXX(field) or XXX('value') or field or 'value'
|
* @return string XXX(field) or XXX('value') or field or 'value'
|
||||||
*/
|
*/
|
||||||
function encrypt($fieldorvalue, $withQuotes=0)
|
function encrypt($fieldorvalue, $withQuotes=0)
|
||||||
{
|
{
|
||||||
@ -720,7 +720,7 @@ class DoliDBMssql extends DoliDB
|
|||||||
* @param string $charset Charset used to store data
|
* @param string $charset Charset used to store data
|
||||||
* @param string $collation Charset used to sort data
|
* @param string $collation Charset used to sort data
|
||||||
* @param string $owner Username of database owner
|
* @param string $owner Username of database owner
|
||||||
* @return resource resource defined if OK, null if KO
|
* @return false|resource|true resource defined if OK, false if KO
|
||||||
*/
|
*/
|
||||||
function DDLCreateDb($database,$charset='',$collation='',$owner='')
|
function DDLCreateDb($database,$charset='',$collation='',$owner='')
|
||||||
{
|
{
|
||||||
@ -786,11 +786,13 @@ class DoliDBMssql extends DoliDB
|
|||||||
* @param string $type Type de la table
|
* @param string $type Type de la table
|
||||||
* @param array $unique_keys Tableau associatifs Nom de champs qui seront clef unique => valeur
|
* @param array $unique_keys Tableau associatifs Nom de champs qui seront clef unique => valeur
|
||||||
* @param array $fulltext_keys Tableau des Nom de champs qui seront indexes en fulltext
|
* @param array $fulltext_keys Tableau des Nom de champs qui seront indexes en fulltext
|
||||||
* @param string $keys Tableau des champs cles noms => valeur
|
* @param array $keys Tableau des champs cles noms => valeur
|
||||||
* @return int <0 if KO, >=0 if OK
|
* @return int <0 if KO, >=0 if OK
|
||||||
*/
|
*/
|
||||||
function DDLCreateTable($table,$fields,$primary_key,$type,$unique_keys="",$fulltext_keys="",$keys="")
|
function DDLCreateTable($table,$fields,$primary_key,$type,$unique_keys=null,$fulltext_keys=null,$keys=null)
|
||||||
{
|
{
|
||||||
|
// FIXME: $fulltext_keys parameter is unused
|
||||||
|
|
||||||
// cles recherchees dans le tableau des descriptions (fields) : type,value,attribute,null,default,extra
|
// cles recherchees dans le tableau des descriptions (fields) : type,value,attribute,null,default,extra
|
||||||
// ex. : $fields['rowid'] = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
|
// ex. : $fields['rowid'] = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment');
|
||||||
$sql = "create table ".$table."(";
|
$sql = "create table ".$table."(";
|
||||||
@ -820,7 +822,7 @@ class DoliDBMssql extends DoliDB
|
|||||||
if($primary_key != "")
|
if($primary_key != "")
|
||||||
$pk = "primary key(".$primary_key.")";
|
$pk = "primary key(".$primary_key.")";
|
||||||
|
|
||||||
if($unique_keys != "")
|
if(is_array($unique_keys))
|
||||||
{
|
{
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach($unique_keys as $key => $value)
|
foreach($unique_keys as $key => $value)
|
||||||
@ -829,7 +831,7 @@ class DoliDBMssql extends DoliDB
|
|||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if($keys != "")
|
if(is_array($keys))
|
||||||
{
|
{
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach($keys as $key => $value)
|
foreach($keys as $key => $value)
|
||||||
@ -841,9 +843,9 @@ class DoliDBMssql extends DoliDB
|
|||||||
$sql .= implode(',',$sqlfields);
|
$sql .= implode(',',$sqlfields);
|
||||||
if($primary_key != "")
|
if($primary_key != "")
|
||||||
$sql .= ",".$pk;
|
$sql .= ",".$pk;
|
||||||
if($unique_keys != "")
|
if(is_array($unique_keys))
|
||||||
$sql .= ",".implode(',',$sqluq);
|
$sql .= ",".implode(',',$sqluq);
|
||||||
if($keys != "")
|
if(is_array($keys))
|
||||||
$sql .= ",".implode(',',$sqlk);
|
$sql .= ",".implode(',',$sqlk);
|
||||||
$sql .=") type=".$type;
|
$sql .=") type=".$type;
|
||||||
|
|
||||||
@ -859,7 +861,7 @@ class DoliDBMssql extends DoliDB
|
|||||||
*
|
*
|
||||||
* @param string $table Name of table
|
* @param string $table Name of table
|
||||||
* @param string $field Optionnel : Name of field if we want description of field
|
* @param string $field Optionnel : Name of field if we want description of field
|
||||||
* @return resource Resource
|
* @return false|resource|true Resource
|
||||||
*/
|
*/
|
||||||
function DDLDescTable($table,$field="")
|
function DDLDescTable($table,$field="")
|
||||||
{
|
{
|
||||||
@ -1047,7 +1049,7 @@ class DoliDBMssql extends DoliDB
|
|||||||
// FIXME: Dummy method
|
// FIXME: Dummy method
|
||||||
// TODO: Implement
|
// TODO: Implement
|
||||||
|
|
||||||
return '';
|
return array();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1123,7 +1125,7 @@ class DoliDBMssql extends DoliDB
|
|||||||
*
|
*
|
||||||
* @param string $table Table name which contains fields
|
* @param string $table Table name which contains fields
|
||||||
* @param mixed $fields String for one field or array of string for multiple field
|
* @param mixed $fields String for one field or array of string for multiple field
|
||||||
* @return boolean|multitype:object
|
* @return false|object
|
||||||
*/
|
*/
|
||||||
function GetFieldInformation($table,$fields) {
|
function GetFieldInformation($table,$fields) {
|
||||||
$sql="SELECT * from INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='".$this->escape($table)."' AND COLUMN_NAME";
|
$sql="SELECT * from INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='".$this->escape($table)."' AND COLUMN_NAME";
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user