Ho trasferito gli scripts php su un computer nuovo (CON BANCO DI MEMORIA DI 1M) e un pezzo di programma non funziona dandomi l'allegato errore:
'Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft JET Database Engine<br/><b>Description:</b> ODBC--connection to 'ODBCESIPE_NEW' failed.' in C:\Program Files\Apache Group\Apache2\htdocs\WEB_Ferieprog\caricamento_programmate_base_2006.php:20 Stack trace: #0 C:\Program Files\Apache Group\Apache2\htdocs\WEB_Ferieprog\caricamento_programmate_base_2006.php(20): com->Open('SELECT * FROM v...', Object(com)) #1 C:\Program Files\Apache Group\Apache2\htdocs\WEB_Ferieprog\batch_download.php(43): include('C:\Program File...') #2 {main} thrown in C:\Program Files\Apache Group\Apache2\htdocs\WEB_Ferieprog\caricamento_programmate_base_2006.php on line 20.'
Cosa fa il programma: apre un mdb Access che ha alcune tavole linkate con un altro mdb ed aggiorna un mbd MySQL.
Gli ODBC dovrebbero essere a posto perche' quando li apro manualmente riesco a vedere il contenuto delle tavole.
allego il contenuto del programma php.
Grazie a chi potra' darmi una qualche indicazione a risolvere il problema.
Grazie
Maurizio
fputs($f,$test1);
// =======copia da access su mysql le ferie programmate
// =======dpoi esegue programmate_aggiornamento (su file tracciatore per il 2006)
// =======se necvessario programmate _calcolo per genereare l'archivio 2005
$db = "C:\WEB_Ferie/Massera_riple-2.mdb";
$sc = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=$db;";
include ("apertura_mysql.php");
// blocco accesso a sistema
$sql123 = "UPDATE parametri SET valore='0' WHERE progressivo='8'";
$query123=mysql_query($sql123,$db);if (!$query123 ){echo "ERRORE n. CM-88 :",mysql_error();}
$sql128 = "UPDATE parametri SET valore='Servizio temporaneamente sospeso per aggiornamento dati' WHERE progressivo='9'";
$query128=mysql_query($sql128,$db);if (!$query128 ){echo "ERRORE n. CM-88 :",mysql_error();}
$tt=0;
$cn = new COM("ADODB.Connection");
$rs = new COM("ADODB.Recordset");
$cn->open($sc);
$rs->Open("SELECT * FROM visora_rpscpi_ferie_massera", $cn);
while(!$rs->EOF) {
$clscompo=$rs->Fields ['clscompo']->value;
$cddipend=$rs->Fields ['cddipend']->value;
$mtinterv=$rs->Fields ['mtinterv']->value;
$cdcausal=$rs->Fields ['cdcausal']->value;
//echo $CLSCOMPO,"----",$MTINTERV;
$rs->MoveNext() ;
$matcddipend[$cont]=$cddipend;
$matclscompo[$cont]=$clscompo;
$matmtinterv[$cont]=$mtinterv;
$matcdcausal[$cont]=$cdcausal;
$cont++;
}
echo $test2="NUMERO RIGHE FILE base_programmate".$cont."\n";
fputs($f,$test2);
//======================================================================
$sql = 'TRUNCATE TABLE `base_programmate`';
$q=$query8=mysql_query($sql,$db);if (!$q ){echo "ERRORE n. CP-00 :",mysql_error();break;}
for ($c=0 ;$c<$cont+1;$c++ ){
$a1=$matcddipend[$c];
$b1=$matclscompo[$c];
$b2=$matcdcausal[$c];
$c1=$matmtinterv[$c];
if ($c1=="30" ){$c1="50";}
$c1=$c1/100;
echo $test3=$c." ".$matcddipend[$c]." ".$matclscompo[$c]." ".$c1."<br>"."\n";
fputs($f,$test3);
$sql="INSERT INTO base_programmate (cddipend,clscompo,cdcausal,mtinterv)
values ('$a1','$b1','$b2','$c1')";
$q=$query=mysql_query($sql,$db);if (!$q ){echo "ERRORE n. CP-01 :",mysql_error();break;}
}
//===================programmate_aggiornamento.php
echo " aggiorna il campo programmate nel tracciatore","<br>";
$query4wz="update tracciatore set programmate='0', FAprogrammate='0'";
$query44w=mysql_query($query4wz,$db);if (!$query44w ){echo "ERRORE n. Cp-44 :",mysql_error();break;}
//--------------------------------------------estrae ferie programmate FEG
$t=0;
$ttfag=0;
$ttfeg=0;
$query4="select cddipend from tracciatore";
$query44=mysql_query($query4,$db);
while($q4=mysql_fetch_array($query44)){ $t++;
$cddd[$t]=$q4['cddipend']; }
$tm=0;
for ($c=0 ;$c<$t+1 ;$c++ ){
$query65=" select
cddipend, sum(mtinterv) as somma, substring(clscompo,1,4) as anno,
substring(clscompo,5,2) as mese
from base_programmate
where cddipend='$cddd[$c]' and left(clscompo,4)='2006' and cdcausal='FEG'
group by mese";
$query665=mysql_query($query65,$db);
while($q65=mysql_fetch_array($query665)){
$somma= $q65['somma'];
$anno= $q65['anno'];
$mese= $q65['mese'];
if ($mese>=$param['mese_ult']) {
$tm= $tm+$somma;
$ttfeg= $ttfeg+$somma;
echo $test4="FEG---".$c."---".$cddd[$c]."--".$mese."--".$tm."<br>"."\n" ;
fputs($f,$test4);
}
}
$query4z="update tracciatore set programmate=$tm where cddipend='$cddd[$c]'";
$query44z=mysql_query($query4z,$db);if (!$query44z ){echo "ERRORE n. Cp-54 :",mysql_error();break;}
$tm=0;
}
//--------------------------------------------estrae ferie programmate FAG
$tm=0;
for ($c=0 ;$c<$t+1 ;$c++ ){
$query45=" select
cddipend, sum(mtinterv) as somma, substring(clscompo,1,4) as anno,
substring(clscompo,5,2) as mese
from base_programmate
where cddipend='$cddd[$c]' and left(clscompo,4)='2006' and cdcausal='FAG'
group by mese";
$query465=mysql_query($query45,$db);
while($q45=mysql_fetch_array($query465)){
$somma= $q45['somma'];
$anno= $q45['anno'];
$mese= $q45['mese'];
if ($mese>=$param['mese_ult']) {
$tm= $tm+$somma;
$ttfag=$ttfag+$somma;
echo $test5="FAG---".$c."---".$cddd[$c]."--".$mese."--".$tm."<br>"."\n" ;
fputs($f,$test5);
}
}
$query4z="update tracciatore set FAprogrammate=$tm where cddipend='$cddd[$c]'";
$query44z=mysql_query($query4z,$db);if (!$query44z ){echo "ERRORE n. Cp-54 :",mysql_error();break;}
$tm=0;
}
$sqlt1 = "select count(distinct cddipend) as contatot1 from base_programmate ";
$queryt1=mysql_query($sqlt1,$db);
$qt1=mysql_fetch_array($queryt1);
$contatot1=$qt1['contatot1'];
$sqlt11 = "select cddipend from base_programmate group by cddipend";
$queryt11=mysql_query($sqlt11,$db);
while($qt11=mysql_fetch_array($queryt11)){
$cont1++;
$base[$cont1]=$qt11['cddipend'];
}
$sqlt2 = "select count(cddipend) as contatot2 from tracciatore ";
$queryt2=mysql_query($sqlt2,$db);
$qt2=mysql_fetch_array($queryt2);
$contatot2=$qt2['contatot2'];
$sqlt22 = "select cddipend,nome_employee from tracciatore";
$queryt22=mysql_query($sqlt22,$db);
while($qt22=mysql_fetch_array($queryt22)){
$cont2++;
$trac[$cont2]=$qt22['cddipend'];
$tracnome[$cont2]=$qt22['nome_employee'];
}
echo $test6="numero codici totali esistenti in BASE_PROGRAMMATE:".$contatot1."<br>"."\n";
echo $test7="numero codici trovati in TRACCIATORE :".$contatot2."<br>"."\n";
fputs($f,$test6);
fputs($f,$test7);
for ($c1 ;$c1<$cont1+1 ;$c1++ ){
$cddipend=$base[$c1];
$sqlt2 = "select cddipend from tracciatore where cddipend='$cddipend'";
$queryt2=mysql_query($sqlt2,$db);
$qt2=mysql_fetch_array($queryt2);
if(!$qt2){
echo $test6="codice non trovato su tracciatore :".$cddipend."<br>"."\n";
fputs($f,$test6);
}
}
for ($c2 ;$c2<$cont2+1 ;$c2++ ){
$cddipend=$trac[$c2];
$nome_employee=$tracnome[$c2];
$sqlt3 = "select cddipend from base_programmate where cddipend='$cddipend' group by cddipend";
$queryt3=mysql_query($sqlt3,$db);
$qt3=mysql_fetch_array($queryt3);
if(!$qt3){
echo $test7="codice non trovato su base_programmate :".$cddipend."---".$nome_employee."<br>"."\n";
fputs($f,$test7);
}
}
echo "Totale ferie FAG :",$ttfeg,"<br>"."\n";
echo "Totale ferie FAG :",$ttfag,"<br>"."\n";
echo "FINE";
$risult="FINE caric.fr.prog -----"."Totale ferie FEG :".$ttfeg."---------Totale ferie FAG :".$ttfag."<br>"."\n";
fputs($f,$risult);
$sql123 = "UPDATE parametri SET valore='1' WHERE progressivo='8'";
$query123=mysql_query($sql123,$db);if (!$query123 ){echo "ERRORE n. CM-88 :",mysql_error();}
?>