Avatar billede Slettet bruger
05. marts 2007 - 12:17 Der er 5 kommentarer og
1 løsning

Movenext med to recordsets

Hej

Jeg har to databaser hvor jeg skal køre data sammen.

I og med data ligger i to databaser har jeg åbnet to recordsets. Jeg bruger det første recordset til at åbne den relevante fil til andet recordset.

Når jeg laver en step through på RHPRS ved at bruge .movenext får jeg fejlbeskeden Object doesn't support this property or method: 'MoveNext'

Hvad gør jeg forkert? Min sidekode står nedenunder.

<%
Set Conn1 = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/signalanlaeg/P/db1.mdb")
Conn1.Open DSN
RS = Conn1.Execute("Select * from files")
Do
    Set Conn2 = Server.CreateObject("ADODB.Connection")
    DSN2 = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(RS("Filnavne"))
        RHPRS.MoveNext
    Loop While Not RHPRS.EOF
    Conn2.Close
    Set Conn2 = Nothing
    rs.MoveNext
Loop While Not rs.EOF
Conn1.Close
Set Conn1 = Nothing
%>
Avatar billede softspot Forsker
05. marts 2007 - 12:25 #1
Der mangler da noget kode der, gør der ikke?

Der er slet ikke noget kode som åbner et recordset og lægger referencen over i RHPRS... du får kun åbnet forbindelsen til databasen.

I øvrigt er det en dårlig idé at lægger exit-kontrollen efter du har forsøgt at læse den første record - det inviterer til kørselsfejl! Benyt dette format af do while i stedet for (bemærk jeg skriver FORMAT hvilket vil sige det er en generel fremgangsmåde):

do while not rs.eof
...
  rs.movenext
loop
Avatar billede Slettet bruger
05. marts 2007 - 12:41 #2
Jo der mangler følgende efter DSN2:
Conn2.Open DSN2
StrSQL = "Select * from ph1 order by zeitstempel"
RHPRS = Conn2.Execute(StrSQL)
Do
Avatar billede softspot Forsker
05. marts 2007 - 13:05 #3
Der skal set foran RHPRS (det skal der også foran RS = Conn1...), da det er et objekt som tildeles. Jeg vil foreslå denne kode i stedet for din version:

<%
Set Conn1 = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/signalanlaeg/P/db1.mdb")
Conn1.Open DSN
set RS = Conn1.Execute("Select * from files")
Do While Not rs.EOF
    Set Conn2 = Server.CreateObject("ADODB.Connection")
    DSN2 = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(RS("Filnavne"))
    Conn2.Open DSN2
    StrSQL = "Select * from ph1 order by zeitstempel"
    set RHPRS = Conn2.Execute(StrSQL)
    Do While Not RHPRS.EOF
        RHPRS.MoveNext
    Loop   
    Conn2.Close
    Set Conn2 = Nothing
    rs.MoveNext
Loop
Conn1.Close
Set Conn1 = Nothing
%>
Avatar billede Slettet bruger
05. marts 2007 - 13:09 #4
Tak for det.

Smider du lige et svar så jeg kan tildele dig dine point.
Avatar billede softspot Forsker
05. marts 2007 - 13:12 #5
Velbekomme :)
Avatar billede softspot Forsker
05. marts 2007 - 13:30 #6
Tak for point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester