Class PHP5/Oracle 10g pour XCS
Par Gilles RIAND, vendredi 19 octobre 2007 à 13:13 :: Apisoft :: #2 :: rss
Class PHP5, Oracle, apisoft, XCS
Voici une petite class si vous avez du php5 et de l'XCS (Oracle 10g)
<?php5
class APISOFT_XCS
{
protected $oracle_server = "LOCALHOST";
protected $port = "1551";
protected $connection = 0;
protected $open = 0;
public function assign_oracle_server($server,$port) {
$this->oracle_server = $server;
$this->port = $port;
}
public function assign_connection() {
$this->connection = ora_logon("INVITE@".$this->oracle_server.":".$this->port."/APISOFT", "INVITE");
$this->open = ora_open($this->connection);
}
public function get_oracle_server() {
return $this->oracle_server;
}
private function get_OracleSQL($query="") {
$v_parse = ora_Parse($this->open, $query);
$v_execute = ora_Exec($this->open);
$temp = array();
$liste = array();
$numfields = ora_numcols($this->open);
while (Ora_Fetch($this->open)) {
for($col=0;$col<$numfields;$col++)
{
$colname = ora_columnname($this->open,$col);
$temp[$colname] = ora_getcolumn ($this->open, $col);
if (ora_columntype($this->open,$col)=="NUMBER")
{
str_replace(",",".",ora_getcolumn ($this->open, $col));
}
}
$liste[] = $temp;
}
return $liste;
}
public function get_Dossiers($promatex=true) {
$SQL = "SELECT ";
$SQL .= " dossiers.dossiercode AS DOSSIER,";
$SQL .= " comm_api.sys_defste.NOM AS NOM ";
$SQL .= " FROM apisys.dossiers, comm_api.sys_defste ";
$SQL .= " WHERE Flag=3 ";
$SQL .= " AND Softwarecode='GESTION' ";
$SQL .= " AND sys_defste.dossier = dossiers.dossiercode ";
if($promatex==false)
{
$SQL .= " AND DOSSIER!='PROMATEX' ";
}
return $this->get_OracleSQL($SQL);
}
public function get_stock($dossiers,$ARTCOD="") {
$temp = array();
$stock = array();
for($i=0;$i<count($dossiers);$i++)
{
$requete = "SELECT S.CODEARTICLE, D.NOM, S.QUANTITE FROM APISOFT_DOS_%s.STOCKREEL S , ";
$requete .= " APISOFT_DOS_%s.DEPOT D WHERE S.CODEDEPOT=D.CODE(+) AND S.CODEARTICLE='%s' ORDER BY D.NOM ASC";
$SQL = sprintf($requete,$dossiers[$i]['DOSSIER'],$dossiers[$i]['DOSSIER'],$ARTCOD);
$temp['SERVER'] = $this->oracle_server;
$temp['DOSSIER'] = $dossiers[$i]['DOSSIER'];
$temp['NOM'] = $dossiers[$i]['NOM'];
$temp['STOCK'] = $this->get_OracleSQL($SQL);
$stock[] = $temp;
}
return $stock;
}
private function __destructor() {
ora_close($this->_open);
}
}
?>
Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.