Goedemiddag op weer een zware maandagmiddag 
ik zit nu al een tijd te stoeien met het verhaal PHP5 en object Variant. Ik zal mijn bedoeling uitleggen:
ik maak via een COM verbinding naar een access database.
$conn = new COM("ADODB.Connection");
$conn->Open("etc");
via $conn kan ik dan weer met Execute() een query uitvoeren en de resultset ophalen met
de loop while (!result->EOF)
nu is dit gewoon vreselijk traag naar mijn mening. Ik heb een snellere manier gevonden:
getRows() method die in de MSDN stond.
PHP 4 zei dat ik hier een safearray voor nodig had dus geupgrade naar PHP 5.
PHP5 geeft na dit keurig een object Variant terug
hoop dat in de code duidelijk is wat ik al heb geprobeerd..
Dat werkte snel totdat ik de resultaten op wou halen, hoe en wat ik ook doe: ik krijg of niks, of een com_exception
op google vind ik niks nuttigs op php ook niet, alleen maar dezelfde word voorbeelden
en dit allemaal op een PHP 5.1.2. op XP met IIS 5
iemand hier ervaring mee ?
psje:
ik weet ook Access Violations te genereren dmv $arrRecord[0] op te vragen.
maar de meest voorkomende is Uncaught exception 'com_exception' with message 'this variant has no properties' , en dan vraag ik dus een ->Value op
ik zit nu al een tijd te stoeien met het verhaal PHP5 en object Variant. Ik zal mijn bedoeling uitleggen:
ik maak via een COM verbinding naar een access database.
$conn = new COM("ADODB.Connection");
$conn->Open("etc");
via $conn kan ik dan weer met Execute() een query uitvoeren en de resultset ophalen met
de loop while (!result->EOF)
nu is dit gewoon vreselijk traag naar mijn mening. Ik heb een snellere manier gevonden:
getRows() method die in de MSDN stond.
PHP 4 zei dat ik hier een safearray voor nodig had dus geupgrade naar PHP 5.
PHP5 geeft na dit keurig een object Variant terug
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| $conn = new COM("ADODB.Connection"); $conn->Open("provider"); $arr = array(); /* $arrRecord = new Variant(); //ook met VT_BSTR as parameter meegeven wou niet */ $arrRecord = Array(); $rowCount = 10; //kan worden opgehaald met COUNT() in query $result = $conn->Execute("SELECT * FROM table"); //$result = $conn->Execute("SELECT * FROM table",$arrRecord); dit hielp ook niet $arrRecord = $result->GetRows($rowCount, 0 , Array("veld1", "veld2")); echo $arrRecord->Value; // echo $arrRecord[0]->Value; // echo $arrRecord[0]; |
hoop dat in de code duidelijk is wat ik al heb geprobeerd..
Dat werkte snel totdat ik de resultaten op wou halen, hoe en wat ik ook doe: ik krijg of niks, of een com_exception
op google vind ik niks nuttigs op php ook niet, alleen maar dezelfde word voorbeelden
en dit allemaal op een PHP 5.1.2. op XP met IIS 5
iemand hier ervaring mee ?
psje:
ik weet ook Access Violations te genereren dmv $arrRecord[0] op te vragen.
maar de meest voorkomende is Uncaught exception 'com_exception' with message 'this variant has no properties' , en dan vraag ik dus een ->Value op
[ Voor 28% gewijzigd door klapvee op 13-02-2006 12:29 ]