Hi,
I have a paradox DB that I created a DSN ODBC connection with in Windows 2008. I also have apache running on the same box.
I am trying to connect to the db via ODBC and PHP but I have hit some serious road blocks.
My PHP script, parses the DB and extracts the information to a MYSQL database every 10 seconds. The issue is that it dies, not when I connect to the ODBC datasource but when I query against it! But it's not consistent.... for example:
There are times when my script runs without any issues!
There are times when it dies completely barfing error code: S0002 - essentially telling me it can't find the table.
There are times when it consistently works one iteration and then dies every second iteration...
I can view this database in EXCEL, 100% at all times via ODBC!
Does anyone have any suggestions or thoughts onto what's happening here?
Thanks,
Jeremiah
Code:
include "DatabaseHandler.php";
//for each file in folder that has an extension .db
//parse and upload to database
//remove/delete file when finished
ini_set('memory_limit', '64M');
//set_time_limit(300);
echo "Start@(".date('h:i:s').")</br>";
ExtractFromParadoxInsertIntoSQL($ParadoxDatabase);
/*
* @desc Grabs events from paradox db and dumps them into a SQL file
*/
function ExtractFromParadoxInsertIntoSQL($db){
// include_once "DatabaseHandler.php";
define ('PkMessageInfo', 1);
define ('DateTime', 6);
define ('MessageType', 7);
define ('Message', 8);
define ('Message1', 9);
define ('Message2', 10);
define ('ObjectDescription1', 24);
define ('Description11', 25);
define ('Description12', 26);
define ('ObjectDescription2', 28);
define ('Description21', 29);
define ('Description22', 30);
define ('ObjectDescription3', 32);
define ('Description31', 33);
define ('Description32', 34);
try{
//copy file
copy("C:/Program Files/KT/Data/messageinfo.db","c:/xampp/htdocs/myprogram/paradox.db");
$connection = odbc_connect("paradox.DB","","");
$from = Date('Y-m-d H:i:s', strtotime('-5 hours')); //today minus 5 hours
$strQuerySQL = "SELECT * FROM messageinfo
WHERE datetime >{ts '$from'}
AND (messagetype=65 or messagetype=72)
";
/*
* THE FOLLOWING LINE OF CODE SEEMS TO NOT WORK ALL THE TIME :mad::mad::mad:
*/
$result = odbc_exec($connection, $strQuerySQL) or die(odbc_errormsg($connection));
$iCount = 0;
while( odbc_fetch_row( $result ) ) {
$intPKMessageInfo = odbc_result($result, PkMessageInfo);
$dateDateTime = odbc_result($result, DateTime);
$intMessageType = odbc_result($result, MessageType);
$intMessage = odbc_result($result, Message);
$strMessage1 = odbc_result($result, Message1);
$strMessage2 = odbc_result($result, Message2);
$intObjectDescription1 = odbc_result($result, ObjectDescription1);
$strDescription11 = odbc_result($result, Description11);
$strDescription12 = odbc_result($result, Description12);
$intObjectDescription2 = odbc_result($result, ObjectDescription2);
$strDescription21 = odbc_result($result, Description21);
$strDescription22 = odbc_result($result, Description22);
$intObjectDescription3 = odbc_result($result, ObjectDescription3);
$strDescription31 = odbc_result($result, Description31);
$strDescription32 = odbc_result($result, Description32);
echo "<tr>";
echo "<td>$intPKMessageInfo</td>";
echo "<td>$dateDateTime</td>";
echo "<td>$intMessageType</td>";
echo "<td>$intMessage</td>";
echo "<td>$strMessage1</td>";
echo "<td>$strMessage2</td>";
echo "<td>$intObjectDescription1</td>";
echo "<td>$strDescription11</td>";
echo "<td>$strDescription12</td>";
echo "<td>$intObjectDescription2</td>";
echo "<td>$strDescription21</td>";
echo "<td>$strDescription22</td>";
echo "<td>$intObjectDescription3</td>";
echo "<td>$strDescription31</td>";
echo "<td>$strDescription32</td>";
echo "</tr>";
$iCount++;
}
echo "</table>";
echo "Number of events crunched:$iCount</br>";
echo "Done@(" . date('h:i:s').")";
odbc_close($connection);
} catch (Exception $e) {
print("ExtractFromParadoxInsertIntoSQL: ");
var_dump($e->getMessage());
$lf = new logfile();
$lf->write(var_dump($e->getMessage()) . "\r\n");
}
}
}