Bonjour je souhaite faire une requete sur un AS400 distant avec php.
J'utilise donc un connecteur ODBC.
Pas de pb pour la requête mais la réception du resultat pour le traitement php est très lent.
Avez vous une explication et une piste d'optimisation :
Code PHP :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
*------------------------------------------------------------------------------------------------------------*/
/** Fonction de connection à l'AS400 MACH60
*/
/*------------------------------------------------------------------------------------------------------------*/
function connectAS400(){
	$isPase = (PHP_OS == "AIX" || PHP_OS == "OS400" );              
	$system = "XXXXX"; 
	$user = "XXXX"; 
	$pwd = "XXXX";
	$db = odbc_connect($system, $user, $pwd);
	return $db;
} 
/*------------------------------------------------------------------------------------------------------------*/
/** Récupération de la balance comptable sur l'AS400
@param la date de l'arrété
@param la base de données AS400
@param le chemin ou le fichier de sortie sera stocké
*/
/*------------------------------------------------------------------------------------------------------------*/
function launchBalance($DateArrete,$db,$pathIN){
// Excecution of the query in an array
$sql = "SELECT COMPTEOBL, COMPTEINT, SOLDEC01 FROM ZCOMPTE0, ZSOLDE0 WHERE SOLDEC01 <> 0 AND COMPTECOM = SOLDECOM";
$result = odbc_exec($db,$sql);
$FichRes = $pathIN.'\b.csv';
$w = fopen($FichRes,'w'); 
$l = '';
while ($data=odbc_fetch_array($result))
   {
		$ligneOK = '"'.trim($data['COMPTEOBL']).'"';
		$ligneOK .=",";
		$ligneOK .='"'.trim($data['COMPTEINT']).'"';
		$ligneOK .=",";
		$ligneOK .=trim($data['SOLDEC01']);
		$ligneOK .="\n";
		//print $ligneOK;
		fputs($w,(string)$ligneOK);
		$l.=$ligneOK;
		//fputs($w,(string)$ligneOK);
   }   
fputs($w,(string)$l);   
odbc_close($db);  
}
Merci d'avance