Logo

"; // comment are not execute if ( substr($buffer,0,2) == "--" ) { //echo "comment $buffer"; continue; } // Blank Lines Are Skipped If ( Strlen($buffer)==0) { //echo "Blank $buffer"; Continue; } if ( strpos(strtolower($buffer),"create function")===0 ) { echo "found a function"; $flag_function=true; $sql=$buffer; continue; } if ( strpos(strtolower($buffer),"create or replace function")===0 ) { echo "found a function"; $flag_function=true; $sql=$buffer; continue; } // No semi colon -> multiline command if ( $flag_function== false && strpos($buffer,';') == false ) { $sql.=$buffer; continue; } if ( $flag_function ) { if ( strpos(strtolower($buffer), "language plpgsql") === false && strpos(strtolower($buffer), "language 'plpgsql'") === false ) { $sql.=$buffer; continue; } } else { // cut the semi colon $buffer=str_replace (';','',$buffer); } $sql.=$buffer; if ( ExecSql($p_cn,$sql,false) == false ) { Rollback($p_cn); if ( DEBUG=='false' ) ob_clean(); print "ERROR : $sql"; exit(); } $sql=""; $flag_function=false; print "
"; } // while (feof) fclose($hf); if ( DEBUG=='false' ) ob_clean(); } /*! \brief loop to apply all the path to a folder or * a template * \param $p_cn database connexion * \param $p_name database name * */ function apply_patch($p_cn,$p_name) { $MaxVersion=30; for ( $i = 4;$i <= $MaxVersion;$i++) { if ( GetVersion($p_cn) <= $i ) { echo "Patching ".$p_name. " from the version $i to the version ".GetVersion($p_cn)."
"; ExecuteScript($p_cn,'sql/patch/upgrade'.$i.'.sql'); if ( DEBUG=='false' ) ob_start(); // specific for version 4 if ( $i == 4 ) { $sql="select jrn_def_id from jrn_def "; $Res=ExecSql($p_cn,$sql); $Max=pg_NumRows($Res); for ($seq=0;$seq<$Max;$seq++) { $row=pg_fetch_array($Res,$seq); $sql=sprintf ("create sequence s_jrn_%d",$row['jrn_def_id']); ExecSql($p_cn,$sql); } } // specific to version 7 if ( $i == 7 ) { // now we use sequence instead of computing a max // $Res2=ExecSql($p_cn,'select coalesce(max(jr_grpt_id),1) as l from jrn'); $Max2= pg_NumRows($Res2) ; if ( $Max2 == 1) { $Row=pg_fetch_array($Res2,0); var_dump($Row); $M=$Row['l']; ExecSql($p_cn,"select setval('s_grpt',$M,true)"); } } // specific to version 17 if ( $i == 17 ) { ExecuteScript($p_cn,'sql/patch/upgrade17.sql'); $max=getDbValue($p_cn,'select last_value from s_jnt_fic_att_value'); AlterSequence($p_cn,'s_jnt_fic_att_value',$max+1); } // version // reset sequence in the modele //-- if ( $i == 30 && $p_name=="mod" ) { $a_seq=array('s_jrn','s_jrn_op','s_centralized', 's_stock_goods','c_order','s_central'); foreach ($a_seq as $seq ) { $sql=sprintf("select setval('%s',1,false)",$seq); $Res=ExecSql($p_cn,$sql); } $sql="select jrn_def_id from jrn_def "; $Res=ExecSql($p_cn,$sql); $Max=pg_NumRows($Res); for ($seq=0;$seq<$Max;$seq++) { $row=pg_fetch_array($Res,$seq); $sql=sprintf ("select setval('s_jrn_%d',1,false)",$row['jrn_def_id']); ExecSql($p_cn,$sql); } } if ( DEBUG == 'false') ob_clean(); } } } //---------------------------------------------------------------------- // End functions // //---------------------------------------------------------------------- // Verify some PHP parameters // magic_quotes_gpc = Off // magic_quotes_runtime = Off // magic_quotes_sybase = Off // include_path ?>

Info

Vous utilisez le domaine

Php setting

'; else { print ("

$a has a bad value !!!

"); $flag_php++; } } $module=get_loaded_extensions(); if ( in_array('pgsql',$module) == false ) { print '

Désolé mais soit vous n\'avez pas installé le package pour postgresql soit php n\'a pas pas été compilé avec les bonnes options

'; $flag_php++; } if ( ini_get("max_execution_time") < 60 ) { print '

max_execution_time should be set to 60 minimum

'; } if ( ini_get("session.auto_start") == false ) { print '

session.auto_start must be set to true

'; $flag_php++; } if ( ini_get("session.use_trans_sid") == false ) { print '

avertissement session.use_trans_sid should be set to true

'; } if ( ereg("..\/include",$inc_path) == 0 and ereg("..\\include",$inc_path) == 0) { print ("

include_path incorrect !!!".$inc_path."

"); $flag_php++; } else if ( ereg("addon",$inc_path) == 0) { print ("

include_path incorrect !!!".$inc_path."

"); $flag_php++; }else print 'include_path : ok ('.$inc_path.')
'; if ( $flag_php==0 ) { echo '

php.ini est bien configuré

'; } else { echo '

php mal configuré

'; exit -1; } $cn=DbConnect(-2,'template1'); if ($cn == false ) { print "

Vous devez absolument taper dans une console la commande 'createuser -A -d -P phpcompta et vous donnez dany comme mot de passe (voir la documentation)'

Ces commandes créeront l'utilisateur phpcompta avec le droit de créer des bases de donné.

"; exit(); } ?>

Database version

Vous devez absolument utiliser au minimum une version 8 de PostGresql, si votre distribution n'en offre pas, installez en une en la compilant.

Lisez attentivement la notice sur postgresql.org pour migrer vos bases de données en 8

Database Setting

Vous devez installer le langage plpgsql pour permettre aux fonctions SQL de fonctionner.

Pour cela, sur la ligne de commande, faites createlang plpgsql template1

Attention le paramètre effective_cache_size est de '. $a['setting']." au lieu de 1000

"; $flag++; } break; case 'shared_buffers': if ( $a['setting'] < 640 ){ print '

Attention le paramètre shared_buffer est de '. $a['setting']."au lieu de 640

"; $flag++; } break; case 'work_mem': if ( $a['setting'] < 8192 ){ print '

Attention le paramètre work_mem est de '. $a['setting']." au lieu de 8192

"; $flag++; } break; } } if ( $flag == 0 ) { echo '

La base de données est bien configurée

'; } else { echo '

Il y a '.$flag.' paramètre qui sont trop bas

'; } if ( ! isset($_POST['go']) ) { ?>
".__LINE__." test has failed !!!"); } if ( ($Res=ExecSql($a,"select * from ac_users") ) == false ) { exit ("

".__LINE__." test has failed !!!

"); } else print "Connect to database success
"; echo "

Congratulation : Test successfull

"; echo "

Patching databases

"; $cn=DbConnect(); $Resdossier=ExecSql($cn,"select dos_id, dos_name from ac_dossier"); $MaxDossier=pg_NumRows($Resdossier); //---------------------------------------------------------------------- // Upgrade the folders //---------------------------------------------------------------------- for ($e=0;$e < $MaxDossier;$e++) { $db_row=pg_fetch_array($Resdossier,$e); $db=DbConnect($db_row['dos_id'],'dossier'); apply_patch($db,$db_row['dos_name']); } //---------------------------------------------------------------------- // Upgrade the template //---------------------------------------------------------------------- $Resdossier=ExecSql($cn,"select mod_id, mod_name from modeledef"); $MaxDossier=pg_NumRows($Resdossier); echo "Upgrading template"; for ($e=0;$e < $MaxDossier;$e++) { $db_row=pg_fetch_array($Resdossier,$e); echo "Patching ".$db_row['mod_name']."
"; $db=DbConnect($db_row['mod_id'],'mod'); apply_patch($db,$db_row['mod_name']); } //---------------------------------------------------------------------- // Upgrade the account_repository //---------------------------------------------------------------------- echo "Upgrading Repository"; $cn=DbConnect(); if ( DEBUG == 'false') ob_start(); $MaxVersion=7; for ($i=4;$i<= $MaxVersion;$i++) { if ( GetVersion($cn) <= $i ) { ExecuteScript($cn,'sql/patch/ac-upgrade'.$i.'.sql'); } } if (DEBUG=='false') ob_clean(); echo "

Voilà tout est installé ;-)

"; ?>