2
0
forked from Wavyzz/dolibarr

Doc: Complment doxygen sur le role des fonctions.

This commit is contained in:
Laurent Destailleur
2004-11-07 13:26:30 +00:00
parent 1a433331e5
commit 0725c06ad9
2 changed files with 154 additions and 147 deletions

View File

@@ -38,7 +38,8 @@
Ensemble des fonctions permettant de g<>rer la database de dolibarr Ensemble des fonctions permettant de g<>rer la database de dolibarr
*/ */
class DoliDb { class DoliDb
{
var $db, $results, $ok, $connected, $database_selected; var $db, $results, $ok, $connected, $database_selected;
// Constantes pour code erreurs // Constantes pour code erreurs
@@ -46,20 +47,17 @@ class DoliDb {
var $ERROR_TABLEEXISTS=1050; var $ERROR_TABLEEXISTS=1050;
/*! /*!
\brief Ouverture d'une connection vers le serveur et/ou une database. \brief Ouverture d'une connection vers le serveur et <20>ventuellement une database.
\param type type de base de donn<6E>es (mysql ou pgsql) \param type type de base de donn<6E>es (mysql ou pgsql)
\param host addresse de la base de donn<6E>es \param host addresse de la base de donn<6E>es
\param user nom de l'utilisateur autoris<69> \param user nom de l'utilisateur autoris<69>
\param pass mot de passe \param pass mot de passe
\param name nom de la database \param name nom de la database
\return int 1 en cas de succ<63>s, 0 sinon
*/ */
function DoliDb($type = 'mysql', $host = '', $user = '', $pass = '', $name = '') function DoliDb($type = 'mysql', $host = '', $user = '', $pass = '', $name = '')
{
// Se connecte au serveur et <20>ventuellement <20> une base (si sp<73>cifi<66>)
// Renvoie 1 en cas de succ<63>s, 0 sinon
{
global $conf; global $conf;
if ($host == '') if ($host == '')
@@ -136,10 +134,10 @@ class DoliDb {
/*! /*!
\brief Connection vers le serveur \brief Connection vers le serveur
\param host addresse de la base de donn<6E>es \param host addresse de la base de donn<6E>es
\param login nom de l'utilisateur autoris<69> \param login nom de l'utilisateur autoris<69>
\param passwd mot de passe \param passwd mot de passe
\return resource \return resource handler d'acc<63>s <20> la base
*/ */
function connect($host, $login, $passwd) function connect($host, $login, $passwd)
@@ -184,7 +182,7 @@ class DoliDb {
\param host addresse de la base de donn<6E>es \param host addresse de la base de donn<6E>es
\param login nom de l'utilisateur autoris<69> \param login nom de l'utilisateur autoris<69>
\param passwd mot de passe \param passwd mot de passe
\return resource \return resource handler d'acc<63>s <20> la base
*/ */
function pconnect($host, $login, $passwd) function pconnect($host, $login, $passwd)
@@ -213,11 +211,11 @@ class DoliDb {
{ {
if ($do) if ($do)
{ {
return $this->query("BEGIN"); return $this->query("BEGIN");
} }
else else
{ {
return 1; return 1;
} }
} }
@@ -231,11 +229,11 @@ class DoliDb {
{ {
if ($do) if ($do)
{ {
return $this->query("COMMIT"); return $this->query("COMMIT");
} }
else else
{ {
return 1; return 1;
} }
} }
@@ -249,11 +247,11 @@ class DoliDb {
{ {
if ($do) if ($do)
{ {
return $this->query("ROLLBACK"); return $this->query("ROLLBACK");
} }
else else
{ {
return 1; return 1;
} }
} }
@@ -326,7 +324,7 @@ class DoliDb {
\brief d<>fini les limites de la requ<71>te. \brief d<>fini les limites de la requ<71>te.
\param limit \param limit
\param offset \param offset
\return limit \return int limite
*/ */
function plimit($limit=0,$offset=0) function plimit($limit=0,$offset=0)
@@ -395,8 +393,10 @@ class DoliDb {
/*! /*!
\brief Renvoie le nombre de lignes dans le resultat de la requete. \brief Renvoie le nombre de lignes dans le
\return int resultat d'une requete SELECT
\seealso affected_rows
\return int nombre de lignes
*/ */
function num_rows() function num_rows()
@@ -404,6 +404,21 @@ class DoliDb {
return mysql_num_rows($this->results); return mysql_num_rows($this->results);
} }
/*!
\brief Renvoie le nombre de lignes dans le
resultat d'une requete INSERT, DELETE ou UPDATE
\seealso num_rows
\return int nombre de lignes
*/
function affected_rows()
{
// mysql necessite un link de base pour cette fonction contrairement
// a pqsql qui prend un resultset
return mysql_affected_rows($this->db);
}
/*! /*!
\brief Renvoie le nombre de champs dans le resultat de la requete. \brief Renvoie le nombre de champs dans le resultat de la requete.
\return int \return int
@@ -415,7 +430,7 @@ class DoliDb {
} }
/*! /*!
\brief renvoie la derniere requete soumise par la methode query() \brief Renvoie la derniere requete soumise par la methode query()
\return lastquery \return lastquery
*/ */
@@ -425,7 +440,7 @@ class DoliDb {
} }
/*! /*!
\brief renvoie le texte de l'erreur mysql de l'operation precedente. \brief Renvoie le texte de l'erreur mysql de l'operation precedente.
\return error_text \return error_text
*/ */
@@ -435,7 +450,9 @@ class DoliDb {
} }
/*! /*!
\brief renvoie la valeur numerique de l'erreur mysql de l'operation precedente. \brief Renvoie la valeur numerique de l'erreur de l'operation precedente.
pour etre exploiter par l'appelant et d<>tecter les erreurs du genre:
echec car doublons, table deja existante...
\return error_num \return error_num
*/ */
@@ -457,17 +474,6 @@ class DoliDb {
return mysql_insert_id($this->db); return mysql_insert_id($this->db);
} }
/*!
\brief Obtient le nombre de lignes affect<63>es dans la pr<70>c<EFBFBD>dente op<6F>ration.
\return rows
*/
function affected_rows()
{
return mysql_affected_rows($this->db);
}
/*! /*!
\brief Retourne le dsn pear \brief Retourne le dsn pear
\return dsn \return dsn
@@ -480,6 +486,7 @@ class DoliDb {
return $pear; return $pear;
} }
} }
?> ?>

View File

@@ -42,28 +42,26 @@
Ensemble des fonctions permettant de g<>rer la database de dolibarr Ensemble des fonctions permettant de g<>rer la database de dolibarr
*/ */
class DoliDb class DoliDb
{ {
var $db, $results, $ok, $connected, $database_selected; var $db, $results, $ok, $connected, $database_selected;
// Constantes pour code erreurs
var $ERROR_DUPLICATE="23505";
var $ERROR_TABLEEXISTS='42P07';
/*! /*!
\brief Ouverture d'une connection vers le serveur et/ou une database. \brief Ouverture d'une connection vers le serveur et une database.
\param type type de base de donn<6E>es (mysql ou pgsql) \param type type de base de donn<6E>es (mysql ou pgsql)
\param host addresse de la base de donn<6E>es \param host addresse de la base de donn<6E>es
\param user nom de l'utilisateur autoris<69> \param user nom de l'utilisateur autoris<69>
\param pass mot de passe \param pass mot de passe
\param name nom de la database \param name nom de la database
\return int 1 en cas de succ<63>s, 0 sinon
*/ */
function DoliDb($type = 'pgsql', $host = '', $user = '', $pass = '', $name = '') function DoliDb($type = 'pgsql', $host = '', $user = '', $pass = '', $name = '')
{
// Se connecte au serveur et <20>ventuellement <20> une base (si sp<73>cifi<66>)
// Renvoie 1 en cas de succ<63>s, 0 sinon
{
global $conf; global $conf;
if ($host == '') if ($host == '')
@@ -94,10 +92,8 @@ class DoliDb
if ($this->db) if ($this->db)
{ {
$this->connected = 1; $this->connected = 1;
$this->ok = 1; $this->ok = 1;
} }
else else
{ {
@@ -109,27 +105,21 @@ class DoliDb
if ($this->connected && $name) if ($this->connected && $name)
{ {
if ($this->select_db($name) == 1) if ($this->select_db($name) == 1)
{ {
$this->database_selected = 1; $this->database_selected = 1;
$this->ok = 1; $this->ok = 1;
} }
else else
{ {
$this->database_selected = 0; $this->database_selected = 0;
$this->ok = 0; $this->ok = 0;
} }
} }
else else
{ {
// Pas de selection de base demand<6E>e, mais tout est ok // Pas de selection de base demand<6E>e, ok ou ko
$this->database_selected = 0; $this->database_selected = 0;
$this->ok = 1;
} }
return $this->ok; return $this->ok;
@@ -137,15 +127,13 @@ class DoliDb
/*! /*!
\brief Selectionne une database. \brief Selectionne une database.
\param database nom de la database \param database nom de la database
\return resource \return resource
\remarks ici postgresql n'a aucune fonction equivalente de mysql_select_db \remarks ici postgresql n'a aucune fonction equivalente de mysql_select_db
\remarks comparaison manuel si la database est bien celle choisie par l'utilisateur \remarks comparaison manuel si la database est bien celle choisie par l'utilisateur
\remarks en cas de succes renverra 1 ou 0 \remarks en cas de succes renverra 1 ou 0
*/ */
function select_db($database) function select_db($database)
{ {
if($database == "dolibarr") if($database == "dolibarr")
@@ -156,14 +144,14 @@ class DoliDb
/*! /*!
\brief Connection vers le serveur \brief Connection vers le serveur
\param host addresse de la base de donn<6E>es \param host addresse de la base de donn<6E>es
\param login nom de l'utilisateur autoris<69> \param login nom de l'utilisateur autoris<69>
\param passwd mot de passe \param passwd mot de passe
\param name nom de la database \param name nom de la database
\return resource \return resource handler d'acc<63>s <20> la base
*/ */
function connect($host, $login, $passwd,$name) function connect($host, $login, $passwd, $name)
{ {
$con_string = "host=$host dbname=$name user=$login password=$passwd "; $con_string = "host=$host dbname=$name user=$login password=$passwd ";
$this->db = pg_connect($con_string); $this->db = pg_connect($con_string);
@@ -172,8 +160,8 @@ class DoliDb
/*! /*!
\brief Connexion sur une base de donn<6E>e \brief Connexion sur une base de donn<6E>e
\param database nom de la database \param database nom de la database
\return result resultat 1 pour ok, 0 pour non ok \return result resultat 1 pour ok, 0 pour non ok
*/ */
function create_db($database) function create_db($database)
@@ -182,7 +170,7 @@ class DoliDb
return 1; return 1;
else else
return 0; return 0;
} }
/*! /*!
@@ -199,17 +187,18 @@ class DoliDb
/*! /*!
\brief Ouverture d'une connection vers une database. \brief Ouverture d'une connection vers une database.
\param host addresse de la base de donn<6E>es \param host addresse de la base de donn<6E>es
\param login nom de l'utilisateur autoris<69> \param login nom de l'utilisateur autoris<69>
\param passwd mot de passe \param passwd mot de passe
\param name nom de la database \param name nom de la database
\return resource \return resource handler d'acc<63>s <20> la base
*/ */
function pconnect($host, $login, $passwd,$name) function pconnect($host, $login, $passwd,$name)
{ {
$con_string = "host=$host dbname=$name user=$login password=$passwd"; $con_string = "host=$host dbname=$name user=$login password=$passwd";
$this->db = pg_pconnect($con_string); $this->db = pg_pconnect($con_string);
return $this->db;
} }
/*! /*!
@@ -219,69 +208,69 @@ class DoliDb
function close() function close()
{ {
return pg_close($this->db); return pg_close($this->db);
} }
/*! /*!
\brief Debut d'une transaction. \brief Debut d'une transaction.
\param do \param do
\return string \return string
*/ */
function begin($do=1) function begin($do=1)
{ {
if ($do) if ($do)
{ {
return $this->query("BEGIN"); return $this->query("BEGIN");
} }
else else
{ {
return 1; return 1;
} }
} }
/*! /*!
\brief Ecriture d'une transaction. \brief Ecriture d'une transaction.
\param do \param do
\return string \return string
*/ */
function commit($do=1) function commit($do=1)
{ {
if ($do) if ($do)
{ {
return $this->query("COMMIT;"); return $this->query("COMMIT;");
} }
else else
{ {
return 1; return 1;
} }
} }
/*! /*!
\brief Effacement d'une transaction et retour au ancienne valeurs. \brief Effacement d'une transaction et retour au ancienne valeurs.
\param do \param do
\return string \return string
*/ */
function rollback($do=1) function rollback($do=1)
{ {
if ($do) if ($do)
{ {
return $this->query("ROLLBACK;"); return $this->query("ROLLBACK;");
} }
else else
{ {
return 1; return 1;
} }
} }
/*! /*!
\brief Effectue une requete et renvoi le resultset de r<>ponse de la base \brief Effectue une requete et renvoi le resultset de r<>ponse de la base
\param query contenu de la query \param query contenu de la query
\param limit \param limit
\param offset \param offset
\return resource resultset \return resource resultset
*/ */
@@ -289,17 +278,17 @@ class DoliDb
{ {
$query = trim($query); $query = trim($query);
$this->lastquery=$query; $this->lastquery=$query;
$this->results = pg_query($this->db,$query); $this->results = pg_query($this->db,$query);
return $this->results; return $this->results;
} }
/*! /*!
\brief Liste des tables dans une database. \brief Liste des tables dans une database.
\param database nom de la database \param database nom de la database
\return resource \return resource
*/ */
function list_tables($database) function list_tables($database)
@@ -311,14 +300,14 @@ class DoliDb
/*! /*!
\brief Renvoie les donn<6E>es de la requete. \brief Renvoie les donn<6E>es de la requete.
\param nb contenu de la query \param nb contenu de la query
\param fieldname nom du champ \param fieldname nom du champ
\return resource \return resource
*/ */
function result($nb, $fieldname) function result($nb, $fieldname)
{ {
return pg_fetch_result($this->results,$nb,$fieldname); return pg_fetch_result($this->results, $nb, $fieldname);
} }
@@ -335,7 +324,7 @@ class DoliDb
/*! /*!
\brief Renvoie la ligne courante (comme un objet) pour le curseur resultset. \brief Renvoie la ligne courante (comme un objet) pour le curseur resultset.
\param resultset curseur de la requete voulue \param resultset curseur de la requete voulue
\return resource \return resource
*/ */
function fetch_object($resultset=0) function fetch_object($resultset=0)
@@ -346,40 +335,39 @@ class DoliDb
} }
/*! /*!
\brief d<>fini les limites de la requ<71>te. \brief d<EFBFBD>fini les limites de la requ<71>te.
\param limit \param limit
\param offset \param offset
\return limit \return int limite
*/ */
function plimit($limit=0,$offset=0) function plimit($limit=0,$offset=0)
{ {
if ($offset > 0) if ($offset > 0)
{ {
return " LIMIT $offset,$limit "; return " LIMIT $offset,$limit ";
}
else
{
return " LIMIT $limit ";
} }
else
{
return " LIMIT $limit ";
}
} }
/*! /*!
\brief formatage de la date en format unix. \brief formatage de la date en format unix.
\param fname \param fname
\return date \return date
*/ */
function pdate($fname) function pdate($fname)
{ {
return "unix_timestamp($fname)"; return "unix_timestamp($fname)";
} }
/*! /*!
\brief formatage de la date en fonction des locales. \brief formatage de la date en fonction des locales.
\param fname \param fname
\return date \return date
*/ */
function idate($fname) function idate($fname)
@@ -389,12 +377,12 @@ class DoliDb
/*! /*!
\brief Renvoie les donn<6E>es dans un tableau. \brief Renvoie les donn<6E>es dans un tableau.
\return array \return array
*/ */
function fetch_array() function fetch_array()
{ {
return pg_fetch_array($this->results); return pg_fetch_array($this->results);
} }
/*! /*!
@@ -404,7 +392,7 @@ class DoliDb
function fetch_row() function fetch_row()
{ {
return pg_fetch_row($this->results); return pg_fetch_row($this->results);
} }
/*! /*!
@@ -414,20 +402,36 @@ class DoliDb
function fetch_field() function fetch_field()
{ {
return pg_field_name($this->results); return pg_field_name($this->results);
} }
/*! /*!
\brief Renvoie le nombre de lignes dans le resultat de la requete. \brief Renvoie le nombre de lignes dans le
\return int resultat d'une requete SELECT
\seealso affected_rows
\return int nombre de lignes
*/ */
function num_rows() function num_rows()
{ {
return pg_num_rows($this->results); return pg_num_rows($this->results);
} }
/*!
\brief Renvoie le nombre de lignes dans le
resultat d'une requete INSERT, DELETE ou UPDATE
\seealso num_rows
\return int nombre de lignes
*/
function affected_rows()
{
// pgsql necessite un resultset pour cette fonction contrairement
// a mysql qui prend un link de base
return pg_affected_rows($this->results);
}
/*! /*!
\brief Renvoie le nombre de champs dans le resultat de la requete. \brief Renvoie le nombre de champs dans le resultat de la requete.
\return int \return int
@@ -435,11 +439,11 @@ class DoliDb
function num_fields() function num_fields()
{ {
return pg_num_fields($this->results); return pg_num_fields($this->results);
} }
/*! /*!
\brief renvoie la derniere requete soumise par la methode query() \brief Renvoie la derniere requete soumise par la methode query()
\return lastquery \return lastquery
*/ */
@@ -449,8 +453,8 @@ class DoliDb
} }
/*! /*!
\brief renvoie le texte de l'erreur mysql de l'operation precedente. \brief Renvoie le texte de l'erreur mysql de l'operation precedente.
\return error_text \return error_text
*/ */
function error() function error()
@@ -459,37 +463,32 @@ class DoliDb
} }
/*! /*!
\brief renvoie la valeur numerique de l'erreur mysql de l'operation precedente. \brief Renvoie la valeur numerique de l'erreur de l'operation precedente.
\return error_num pour etre exploiter par l'appelant et d<>tecter les erreurs du genre:
echec car doublons, table deja existante...
\return error_num
\remark pgsql ne permet pas de renvoyer un code g<>n<EFBFBD>rique d'une erreur,
mais juste un message. On utilise donc ces messages plutot qu'un code.
*/ */
function errno() function errno()
{ {
return pg_result_status($this->db); return pg_last_error($this->db);
} }
/*! /*!
\brief Obtient l'id gen<65>r<EFBFBD> par le pr<70>cedent INSERT. \brief Obtient l'id gen<65>r<EFBFBD> par le pr<70>cedent INSERT.
\return id \return id
*/ */
function last_insert_id($tab) function last_insert_id($tab)
{ {
$result = pg_query($this->db,"select max(rowid) from ".$tab." ;"); $result = pg_query($this->db,"select max(rowid) from ".$tab." ;");
$nbre=pg_num_rows($result); $nbre = pg_num_rows($result);
$row = pg_fetch_result($result,0,0); $row = pg_fetch_result($result,0,0);
return $row; return $row;
} }
/*!
\brief Obtient le nombre de lignes affect<63>es dans la pr<70>c<EFBFBD>dente op<6F>ration.
\return rows
*/
function affected_rows()
{
return pg_affected_rows($this->results);
}
/*! /*!
\brief Retourne le dsn pear \brief Retourne le dsn pear
@@ -505,4 +504,5 @@ class DoliDb
} }
} }
?> ?>