Amlioration gestion erreur sur ordre DDL

This commit is contained in:
Laurent Destailleur
2006-11-30 06:41:48 +00:00
parent 5ed4be7107
commit e7fafaa86d
2 changed files with 68 additions and 62 deletions

View File

@@ -612,14 +612,14 @@ class DoliDb
/** /**
\brief Cr<43>e une table \brief Cr<43>e une table
\param table Nom de la table \param table Nom de la table
\param fields tableau associatif [nom champ][tableau des descriptions] \param fields Tableau associatif [nom champ][tableau des descriptions]
\param primary_key Nom du champ qui sera la clef primaire \param primary_key Nom du champ qui sera la clef primaire
\param unique_keys tableau associatifs Nom de champs qui seront clef unique => valeur \param unique_keys Tableau associatifs Nom de champs qui seront clef unique => valeur
\param fulltext tableau des Nom de champs qui seront index<65>s en fulltext \param fulltext Tableau des Nom de champs qui seront index<65>s en fulltext
\param key tableau des champs cl<63>s noms => valeur \param key Tableau des champs cl<63>s noms => valeur
\param type type de la table \param type Type de la table
\return true/false selon si requ<71>te a provoqu<71> un erreur mysql ou pas \return int <0 si KO, >=0 si OK
*/ */
function DDLCreateTable($table,$fields,$primary_key,$type,$unique_keys="",$fulltext_keys="",$keys="") function DDLCreateTable($table,$fields,$primary_key,$type,$unique_keys="",$fulltext_keys="",$keys="")
{ {
@@ -632,26 +632,26 @@ class DoliDb
$sqlfields[$i] = $field_name." "; $sqlfields[$i] = $field_name." ";
$sqlfields[$i] .= $field_desc['type']; $sqlfields[$i] .= $field_desc['type'];
if( eregi("^[^ ]",$field_desc['value'])) if( eregi("^[^ ]",$field_desc['value']))
$sqlfields[$i] .= "(".$field_desc['value'].")"; $sqlfields[$i] .= "(".$field_desc['value'].")";
else if( eregi("^[^ ]",$field_desc['attribute'])) else if( eregi("^[^ ]",$field_desc['attribute']))
$sqlfields[$i] .= " ".$field_desc['attribute']; $sqlfields[$i] .= " ".$field_desc['attribute'];
else if( eregi("^[^ ]",$field_desc['default'])) else if( eregi("^[^ ]",$field_desc['default']))
{ {
if(eregi("null",$field_desc['default'])) if(eregi("null",$field_desc['default']))
$sqlfields[$i] .= " default ".$field_desc['default']; $sqlfields[$i] .= " default ".$field_desc['default'];
else else
$sqlfields[$i] .= " default '".$field_desc['default']."'"; $sqlfields[$i] .= " default '".$field_desc['default']."'";
} }
else if( eregi("^[^ ]",$field_desc['null'])) else if( eregi("^[^ ]",$field_desc['null']))
$sqlfields[$i] .= " ".$field_desc['null']; $sqlfields[$i] .= " ".$field_desc['null'];
else if( eregi("^[^ ]",$field_desc['extra'])) else if( eregi("^[^ ]",$field_desc['extra']))
$sqlfields[$i] .= " ".$field_desc['extra']; $sqlfields[$i] .= " ".$field_desc['extra'];
$i++; $i++;
} }
if($primary_key != "") if($primary_key != "")
$pk = "primary key(".$primary_key.")"; $pk = "primary key(".$primary_key.")";
if($unique_keys != "") if($unique_keys != "")
{ {
$i = 0; $i = 0;
@@ -672,17 +672,18 @@ class DoliDb
} }
$sql .= implode(',',$sqlfields); $sql .= implode(',',$sqlfields);
if($primary_key != "") if($primary_key != "")
$sql .= ",".$pk; $sql .= ",".$pk;
if($unique_keys != "") if($unique_keys != "")
$sql .= ",".implode(',',$sqluq); $sql .= ",".implode(',',$sqluq);
if($keys != "") if($keys != "")
$sql .= ",".implode(',',$sqlk); $sql .= ",".implode(',',$sqlk);
$sql .=") type=".$type; $sql .=") type=".$type;
// dolibarr_syslog($sql);
dolibarr_syslog($sql);
if(! $this -> query($sql)) if(! $this -> query($sql))
return false; return -1;
else else
return true; return 1;
} }
/** /**
@@ -693,18 +694,20 @@ class DoliDb
*/ */
function DDLDescTable($table,$field="") function DDLDescTable($table,$field="")
{ {
// $this->results = $this->query("DESC ".$table." ".$field); $sql="DESC ".$table." ".$field;
$this->results = $this->query("DESC ".$table." ".$field);
dolibarr_syslog($sql);
$this->results = $this->query($sql);
return $this->results; return $this->results;
} }
/** /**
\brief Ins<6E>re un nouveau champ dans une table \brief Ins<6E>re un nouveau champ dans une table
\param table Nom de la table \param table Nom de la table
\param field_name Nom du champ <20> ins<6E>rer \param field_name Nom du champ <20> ins<6E>rer
\param field_desc tableau associatif de description duchamp <20> ins<6E>rer[nom du param<61>tre][valeur du param<61>tre] \param field_desc Tableau associatif de description duchamp <20> ins<6E>rer[nom du param<61>tre][valeur du param<61>tre]
\param field_position Optionnel ex.: "after champtruc" \param field_position Optionnel ex.: "after champtruc"
\return true/false Selon si requ<71>te a provoqu<71> un erreur mysql ou pas \return int <0 si KO, >0 si OK
*/ */
function DDLAddField($table,$field_name,$field_desc,$field_position="") function DDLAddField($table,$field_name,$field_desc,$field_position="")
{ {
@@ -728,9 +731,9 @@ class DoliDb
$sql .= " ".$field_position; $sql .= " ".$field_position;
if(! $this -> query($sql)) if(! $this -> query($sql))
return false; return -1;
else else
return true; return 1;
} }
} }

View File

@@ -613,14 +613,14 @@ class DoliDb
/** /**
\brief Cr<43>e une table \brief Cr<43>e une table
\param table Nom de la table \param table Nom de la table
\param fields tableau associatif [nom champ][tableau des descriptions] \param fields Tableau associatif [nom champ][tableau des descriptions]
\param primary_key Nom du champ qui sera la clef primaire \param primary_key Nom du champ qui sera la clef primaire
\param unique_keys tableau associatifs Nom de champs qui seront clef unique => valeur \param unique_keys Tableau associatifs Nom de champs qui seront clef unique => valeur
\param fulltext tableau des Nom de champs qui seront index<65>s en fulltext \param fulltext Tableau des Nom de champs qui seront index<65>s en fulltext
\param key tableau des champs cl<63>s noms => valeur \param key Tableau des champs cl<63>s noms => valeur
\param type type de la table \param type Type de la table
\return true/false selon si requ<71>te a provoqu<71> un erreur mysql ou pas \return int <0 si KO, >=0 si OK
*/ */
function DDLCreateTable($table,$fields,$primary_key,$type,$unique_keys="",$fulltext_keys="",$keys="") function DDLCreateTable($table,$fields,$primary_key,$type,$unique_keys="",$fulltext_keys="",$keys="")
{ {
@@ -633,26 +633,26 @@ class DoliDb
$sqlfields[$i] = $field_name." "; $sqlfields[$i] = $field_name." ";
$sqlfields[$i] .= $field_desc['type']; $sqlfields[$i] .= $field_desc['type'];
if( eregi("^[^ ]",$field_desc['value'])) if( eregi("^[^ ]",$field_desc['value']))
$sqlfields[$i] .= "(".$field_desc['value'].")"; $sqlfields[$i] .= "(".$field_desc['value'].")";
else if( eregi("^[^ ]",$field_desc['attribute'])) else if( eregi("^[^ ]",$field_desc['attribute']))
$sqlfields[$i] .= " ".$field_desc['attribute']; $sqlfields[$i] .= " ".$field_desc['attribute'];
else if( eregi("^[^ ]",$field_desc['default'])) else if( eregi("^[^ ]",$field_desc['default']))
{ {
if(eregi("null",$field_desc['default'])) if(eregi("null",$field_desc['default']))
$sqlfields[$i] .= " default ".$field_desc['default']; $sqlfields[$i] .= " default ".$field_desc['default'];
else else
$sqlfields[$i] .= " default '".$field_desc['default']."'"; $sqlfields[$i] .= " default '".$field_desc['default']."'";
} }
else if( eregi("^[^ ]",$field_desc['null'])) else if( eregi("^[^ ]",$field_desc['null']))
$sqlfields[$i] .= " ".$field_desc['null']; $sqlfields[$i] .= " ".$field_desc['null'];
else if( eregi("^[^ ]",$field_desc['extra'])) else if( eregi("^[^ ]",$field_desc['extra']))
$sqlfields[$i] .= " ".$field_desc['extra']; $sqlfields[$i] .= " ".$field_desc['extra'];
$i++; $i++;
} }
if($primary_key != "") if($primary_key != "")
$pk = "primary key(".$primary_key.")"; $pk = "primary key(".$primary_key.")";
if($unique_keys != "") if($unique_keys != "")
{ {
$i = 0; $i = 0;
@@ -673,17 +673,18 @@ class DoliDb
} }
$sql .= implode(',',$sqlfields); $sql .= implode(',',$sqlfields);
if($primary_key != "") if($primary_key != "")
$sql .= ",".$pk; $sql .= ",".$pk;
if($unique_keys != "") if($unique_keys != "")
$sql .= ",".implode(',',$sqluq); $sql .= ",".implode(',',$sqluq);
if($keys != "") if($keys != "")
$sql .= ",".implode(',',$sqlk); $sql .= ",".implode(',',$sqlk);
$sql .=") type=".$type; $sql .=") type=".$type;
// dolibarr_syslog($sql);
dolibarr_syslog($sql);
if(! $this -> query($sql)) if(! $this -> query($sql))
return false; return -1;
else else
return true; return 1;
} }
/** /**
@@ -694,18 +695,20 @@ class DoliDb
*/ */
function DDLDescTable($table,$field="") function DDLDescTable($table,$field="")
{ {
// $this->results = $this->query("DESC ".$table." ".$field); $sql="DESC ".$table." ".$field;
$this->results = $this->query("DESC ".$table." ".$field);
dolibarr_syslog($sql);
$this->results = $this->query($sql);
return $this->results; return $this->results;
} }
/** /**
\brief Ins<6E>re un nouveau champ dans une table \brief Ins<6E>re un nouveau champ dans une table
\param table Nom de la table \param table Nom de la table
\param field_name Nom du champ <20> ins<6E>rer \param field_name Nom du champ <20> ins<6E>rer
\param field_desc tableau associatif de description duchamp <20> ins<6E>rer[nom du param<61>tre][valeur du param<61>tre] \param field_desc Tableau associatif de description duchamp <20> ins<6E>rer[nom du param<61>tre][valeur du param<61>tre]
\param field_position Optionnel ex.: "after champtruc" \param field_position Optionnel ex.: "after champtruc"
\return true/false selon si requ<71>te a provoqu<71> un erreur mysql ou pas \return int <0 si KO, >0 si OK
*/ */
function DDLAddField($table,$field_name,$field_desc,$field_position="") function DDLAddField($table,$field_name,$field_desc,$field_position="")
{ {
@@ -729,9 +732,9 @@ class DoliDb
$sql .= " ".$field_position; $sql .= " ".$field_position;
if(! $this -> query($sql)) if(! $this -> query($sql))
return false; return -1;
else else
return true; return 1;
} }
} }