Errore di connessione a un DB Access con tavole linkate

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();}

?>

inviato 10 anni fa
r17
r17
1
X 0 X

L'errore principale dovrebbe essere questo:

ODBC--connection to 'ODBCESIPE_NEW' failed

quindi un errore di connessione.

Potrebbe essere legato al trasferimento dello script sul nuovo computer?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda