[PHP] object Variant

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • klapvee
  • Registratie: Mei 2004
  • Laatst online: 13-04-2022
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

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 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Waarom gebruik je COM voor iets basic als database access? PHP is hier niet voor geöptimaliseerd.. Kan je geen ODBC DSN aanmaken voor je DB? PHP kan zonder problemen met ODBC overweg..

Acties:
  • 0 Henk 'm!

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 04-09 17:51

mulder

ik spuug op het trottoir

Het gaat denk ik fout omdat OF een row OF een 'waarde' geen propertie value heeft

oogjes open, snaveltjes dicht


Acties:
  • 0 Henk 'm!

  • klapvee
  • Registratie: Mei 2004
  • Laatst online: 13-04-2022
toen ik er aan begon leek ADO beter en nu draait er al een heel systeem hiermee
dus alles omgooien wordt lastig nu bosmeeuw :)

Acties:
  • 0 Henk 'm!

  • klapvee
  • Registratie: Mei 2004
  • Laatst online: 13-04-2022
Don Facundo schreef op maandag 13 februari 2006 @ 16:28:
Het gaat denk ik fout omdat OF een row OF een 'waarde' geen propertie value heeft
nu het gekke is, is dat ik nu alleen maar Object id #5 krijg of een access violation error
verder kent hij geen properties zoals MoveNext, recordcount e.d.

als ik opvraag count(objectVariant[0]) zegt hij wel : 2!
ik vraag met GetRows ook 2 velden op nl.