Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z Movefirst() na COM - ADODB.Connection
Kalinowcyk
post
Post #1





Grupa: Zarejestrowani
Postów: 67
Pomógł: 4
Dołączył: 23.09.2008

Ostrzeżenie: (0%)
-----


Witam.
Łączę się z bazą mssql server za pomocą klasy COM wg przykładu przedstawionego na stronie http://php.net/manual/en/class.com.php.
Wykonuję zapytanie a następnie iteruję po nim za pomocą metody moveNext klasy Recordset.
Po osiągnięciu EOF chcę powtórzyć iterację po wszystkich rekordach, jednak przy wywołaniu moveFirst lub move(0) otrzymuję komunikat błędu:

Source: ADODB.Recordset Description: Funkcja BOF lub EOF zwraca wartość prawdziwą lub bieżący rekord został usunięty. Żądana operacja wymaga bieżącego rekordu. in ...

Dlaczego po osiągnięciu EOF nie moge przeskoczyć ponownie na pierwszy rekord?

Z góry dzięki za wszelkie wskazówki.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kalinowcyk
post
Post #2





Grupa: Zarejestrowani
Postów: 67
Pomógł: 4
Dołączył: 23.09.2008

Ostrzeżenie: (0%)
-----


Łączę się z bazą tak:

  1. $polaczenie = ADONewConnection('odbc_mssql');
  2. $polaczenie = new COM("ADODB.Connection", NULL, CP_UTF8);
  3. $dsn = "Driver={SQL Server};Server=...;Database=...;UID=...;PWD=...";
  4. $polaczenie->Open($dsn);


Później wykonuję zapytanie SELECT i przelatuje po wszystkich rekordach pętlą

  1. while ($rekord=db_fetch_assoc($resouce)) {
  2. //tutaj jakies operacje
  3. }



Funkcja db_fetch_assoc wygląda tak:
  1. function db_fetch_assoc( $rs, $polaczenie=0)
  2. {
  3. if( $rs->EOF )
  4. return false;
  5.  
  6. $ToReturn = array();
  7. for( $x = 0; $x < db_num_rows($rs); $x++ )
  8. {
  9. $ToReturn[ $rs->Fields[$x]->Name ] = $rs->Fields[$x]->Value;
  10. }
  11. $rs->MoveNext();
  12. return $ToReturn;
  13. }


Po wykonaniu tych operacji próbuję wykonać jedną z poniższych metod:

  1. $resource->movefirst();
  2. $resource->move(0);


i pojawia mi się wspomniany wcześniej błąd.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 04:39