Avatar billede sommerfulg Nybegynder
25. april 2001 - 21:31 Der er 41 kommentarer og
1 løsning

Prøver igen.... ASP udtræk fra database - Urgent

Jeg skal på en side trække ud fra to databaser. Den ene hedder database og den anden fildb - de ligger begge i samme mappe på serveren. Selve opgavevisningen er OK men ved seneste 5 svar får jeg følgende fejl:

ADODB.Recordset error \'800a0e78\'

Operation is not allowed when the object is closed.

se scriptet:






sub nyeste(opgaver)

        Dim Conn, RS, Tittel
        Set Conn    = Server.CreateObject(\"ADODB.Connection\")
        Conn.Open Application(\"fildb\")
        Set RS    = Server.CreateObject(\"ADODB.Recordset\")
        Dim temp
        temp = 0
        RS.CursorType    = adOpenStatic

        Select case streng
        case \"opg\"
            RS.Open \"SELECT ID, Tittel FROM TFiles\", Conn
        end select
       
        RS.MoveLast
            While NOT RS.bof AND Temp < 5
            Response.write \"<img border=\"\"0\"\" src=\"\"/forum/i1.gif\"\">&nbsp;\"
            Tittel=LEFT(RS(\"Tittel\"),30)
            Tittel=LEFT(Tittel,INSTRREV(Tittel,\"\")) &\"...\"
                Response.write \"<b><a href=\"\"/Upload/downloadDB.asp?ID=\"& RS(\"ID\") &\"\"\">\"& Tittel
                Response.write \"</a></b><br>\"
                Temp = Temp + 1
            RS.MovePrevious
        Wend
        RS.Close
        Set RS = NOTHING
        Conn.Close
        Set Conn = NOTHING
    end sub


*******
når de skal vises nede i min body bruger jeg dette:

<%
    streng = \"opg\"
    call nyeste(streng)
%>


Avatar billede dudal Nybegynder
25. april 2001 - 21:34 #1

        RS.CursorType    = adOpenStatic

        Select case streng
        case \"opg\"
            RS.Open \"SELECT ID, Tittel FROM TFiles\", Conn
        end select
Dette laver du om til:



        Select case streng
        case \"opg\"
            RS.Open \"SELECT ID, Tittel FROM TFiles\", Conn
        RS.CursorType    = adOpenStatic

        end select

Mvh
Jesper
Avatar billede perla Nybegynder
25. april 2001 - 21:34 #2
Du åbner ikke dit recordset.

Avatar billede sommerfulg Nybegynder
25. april 2001 - 21:34 #3
Sludder her kommer scriptet - SORRY:

<%@ LANGUAGE=\"VBSCRIPT\" %>
<% Option Explicit
%>
<!-- #INCLUDE VIRTUAL=\"/adovbs.inc\" -->

<%

    dim link

    sub hent_link(link)
        Dim conn, RS, sql

        Set conn = Server.CreateObject(\"ADODB.Connection\")
        conn.Open Application(\"database\")
        Set RS = Server.CreateObject(\"ADODB.Recordset\")
        RS.Open  \"SELECT * FROM TLink WHERE LinkType=\'\"& link &\"\'\", conn

            while not RS.EOF
                response.write \"<a href=\"\"java script:AabenLink(\'\"
                response.write  RS(\"URL\")
                response.write \"\')\"\">\"
                response.write RS(\"Beskrivelse\")
                response.write \"</a><br>\"
                RS.MoveNext
            Wend

            RS.Close
            Set RS = NOTHING
            conn.close
            Set conn = NOTHING
    end sub
   
    Dim streng, SvarStatus
    \' Henter antal åbne og lukkede spg.
    sub hent_total(SvarStatus)
        Dim Conn, RS
        Set Conn    = Server.CreateObject(\"ADODB.Connection\")
        Conn.Open Application(\"Database\")
        Set RS = Server.CreateObject(\"ADODB.Recordset\")
        RS.CursorType = adOpenStatic


        Select case SvarStatus
        case FALSE
            RS.Open \"SELECT Svar_ID FROM TSvar WHERE SvarStatus=FALSE AND SvarTil=0\", Conn
            Response.write RS.RecordCount
        case TRUE
            RS.Open \"SELECT Svar_ID FROM TSvar WHERE SvarStatus=TRUE  AND SvarTil=0\", Conn
            Response.write RS.RecordCount
        end select

        RS.Close
        Set RS = NOTHING
        Conn.Close
        Set Conn = NOTHING
    end sub

    \' henter nyeste emner og indlæg
    sub nyeste(streng)

        Dim Conn, RS, overskrift
        Set Conn    = Server.CreateObject(\"ADODB.Connection\")
        Conn.Open Application(\"Database\")
        Set RS    = Server.CreateObject(\"ADODB.Recordset\")
        Dim temp
        temp = 0
        RS.CursorType    = adOpenStatic

        Select case streng
        case \"spg\"
            RS.Open \"SELECT Svar_ID, Overskrift FROM TSvar WHERE SvarTil=0\", Conn
        case \"ind\"
            RS.Open \"SELECT Svar_ID, Overskrift FROM TSvar\", Conn
        end select
       
        RS.MoveLast
            While NOT RS.bof AND Temp < 5
            Response.write \"<img border=\"\"0\"\" src=\"\"/forum/i1.gif\"\">&nbsp;\"
            overskrift=LEFT(RS(\"overskrift\"),30)
            overskrift=LEFT(overskrift,INSTRREV(overskrift,\"\")) &\"...\"
                Response.write \"<b><a href=\"\"/forum/sesvar.asp?ID=\"& RS(\"Svar_ID\") &\"\"\">\"& overskrift
                Response.write \"</a></b><br>\"
                Temp = Temp + 1
            RS.MovePrevious
        Wend
        RS.Close
        Set RS = NOTHING
        Conn.Close
        Set Conn = NOTHING
    end sub

\' henter nyeste opgaver
    sub nyeste(opgaver)

        Dim Conn, RS, Tittel
        Set Conn    = Server.CreateObject(\"ADODB.Connection\")
        Conn.Open Application(\"fildb\")
        Set RS    = Server.CreateObject(\"ADODB.Recordset\")
        Dim temp
        temp = 0
        RS.CursorType    = adOpenStatic

        Select case streng
        case \"opg\"
            RS.Open \"SELECT ID, Tittel FROM TFiles\", Conn
        end select
       
        RS.MoveLast
            While NOT RS.bof AND Temp < 5
            Response.write \"<img border=\"\"0\"\" src=\"\"/forum/i1.gif\"\">&nbsp;\"
            Tittel=LEFT(RS(\"Tittel\"),30)
            Tittel=LEFT(Tittel,INSTRREV(Tittel,\"\")) &\"...\"
                Response.write \"<b><a href=\"\"/Upload/downloadDB.asp?ID=\"& RS(\"ID\") &\"\"\">\"& Tittel
                Response.write \"</a></b><br>\"
                Temp = Temp + 1
            RS.MovePrevious
        Wend
        RS.Close
        Set RS = NOTHING
        Conn.Close
        Set Conn = NOTHING
    end sub

%>
Avatar billede nute Nybegynder
25. april 2001 - 21:35 #4
hvorfor oppretter du:


Set Conn    = Server.CreateObject(\"ADODB.Connection\")
Conn.Open Application(\"fildb\")
Set RS    = Server.CreateObject(\"ADODB.Recordset\")

inne i dine funksjoner ?

åpne din forbindelse til databasen helt i toppen av din side, og lukk den helt i slutten av din side.

fjern også alle

Set RS = NOTHING
Conn.Close
Set Conn = NOTHING

fra dine funksjoner

/nute
Avatar billede dudal Nybegynder
25. april 2001 - 21:36 #5
Hvordan kan det være at du har 2 sub nyeste????
Avatar billede sommerfulg Nybegynder
25. april 2001 - 21:37 #6
Jamen nute - jeg har jo to forskellige databaser - fildb og database.... Undskyld jeg er stadig en rookie. Forstår ikke helt
Avatar billede perla Nybegynder
25. april 2001 - 21:37 #7
Et eksempel.

Open up connection to database...
Dim objConn
Set objConn = Server.CreateObject(\"ADODB.Connection\")
objConn.Open \"Driver={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"database.mdb\")

\'Create a recordset object and grab a query
Dim objRS
Set objRS = Server.CreateObject(\"ADODB.Recordset\")
objRS.Open \"SELECT * FROM test\", objConn

-Per
Avatar billede dudal Nybegynder
25. april 2001 - 21:38 #8
MEd udgangspunkt i den første:

Dit parameter på sub\'en er opgaver(sub nyeste(opgaver) )


I din select checker du streng.


Altså:

      Select case streng
        case \"opg\"
            RS.Open \"SELECT ID, Tittel FROM TFiles\", Conn
        end select

Til

      Select case opgaver
        case \"opg\"
            RS.Open \"SELECT ID, Tittel FROM TFiles\", Conn
        end select


/dudal
Avatar billede sommerfulg Nybegynder
25. april 2001 - 21:38 #9
dudal
Jeg skal hente 5 senest svar (overskrift) fra \"database\" og 5 seneste opgaver fra \"fildb\"
Avatar billede dudal Nybegynder
25. april 2001 - 21:40 #10
Du må ikke kalde de 2 subs det samme...

Oder???... Prøv at kalde den ene for nyesteOpg(opgaver)
Avatar billede sommerfulg Nybegynder
25. april 2001 - 21:41 #11
Dudal måske du har fat i den rigtige ende? Jeg kan desværre ikke teste det for kl. 2400 jeg vender tilbage. TRor du det er nok at lave denne ændring er er den stadig helt gal?
Avatar billede dudal Nybegynder
25. april 2001 - 21:44 #12
Det plus din select i din \"opgave\" sub.

Den laver select case på streng istedet for på opgaver som den burde, da det er den parameter du sender med til sub\'en.

/dudal
Avatar billede perla Nybegynder
25. april 2001 - 21:44 #13
Du kan også vælge at overføre en der angiver om det er en streng eller opgave på den måde kan du bruge funktionen til begge dele.
Avatar billede sommerfulg Nybegynder
25. april 2001 - 21:48 #14
Guys jeg vender frygteligt tilbage senere i aften

Avatar billede sommerfulg Nybegynder
26. april 2001 - 00:33 #15
OK  - så prøver jeg igen.
Nu ser selve den del der kalder i \"fildb\" således ud.
1. Er det forkert? Eller hvorledes skal det ellers se ud?

2.  Når jeg så skal have vist de 5 seneste opgaver nede i html koden, skal det så se således ud:

<%
opgaver = \"opg\"
call nyesteOpg(opgaver)

%>


Avatar billede nute Nybegynder
26. april 2001 - 00:34 #16
har du ikke glemt å poste noe ?
Avatar billede sommerfulg Nybegynder
26. april 2001 - 00:38 #17
SORRY her kommer det:

henter nyeste opgaver
    sub nyesteOpg(opgaver)

        Dim Conn, RS, Tittel
        Set Conn     = Server.CreateObject(\"ADODB.Connection\")
        Conn.Open Application(\"fildb\")
        Set RS     = Server.CreateObject(\"ADODB.Recordset\")
        Dim temp
        temp = 0
        RS.CursorType    = adOpenStatic

        Select case opgaver
        case \"opg\"
            RS.Open \"SELECT ID, Tittel FROM TFiles\", Conn
        end select
       
        RS.MoveLast
            While NOT RS.bof AND Temp < 5
            Response.write \"<img border=\"\"0\"\" src=\"\"/forum/i1.gif\"\">&nbsp;\"
            Tittel=LEFT(RS(\"Tittel\"),30)
            Tittel=LEFT(Tittel,INSTRREV(Tittel,\"\")) &\"...\"
                Response.write \"<b><a href=\"\"/Upload/downloadDB.asp?ID=\"& RS(\"ID\") &\"\"\">\"& Tittel
                Response.write \"</a></b><br>\"
                Temp = Temp + 1
            RS.MovePrevious
        Wend
        RS.Close
            end sub
Avatar billede dudal Nybegynder
26. april 2001 - 00:40 #18
Funger det ikke? Hvis ikke, kan du så ikke poste fejlmeddelelsen samt den linie fejlen er i?

/dudal
Avatar billede nute Nybegynder
26. april 2001 - 00:41 #19
prøv denne:

sub nyesteOpg(opgaver)

  Dim Conn, RS, Tittel
  Set Conn    = Server.CreateObject(\"ADODB.Connection\")
  Conn.Open Application(\"fildb\")
  Set RS    = Server.CreateObject(\"ADODB.Recordset\")
  Dim temp
  temp = 0
  \'Select case opgaver
  \'  case \"opg\"
      RS.Open \"SELECT ID, Tittel FROM TFiles\", Conn, 3, 3
  \'end select
       
  RS.MoveLast
  While NOT RS.bof AND Temp < 5
    Response.write \"<img border=\"\"0\"\" src=\"\"/forum/i1.gif\"\">&nbsp;\"
    Tittel=LEFT(RS(\"Tittel\"),30)
    Tittel=LEFT(Tittel,INSTRREV(Tittel,\"\")) &\"...\"
    Response.write \"<b><a href=\"\"/Upload/downloadDB.asp?ID=\"& RS(\"ID\") &\"\"\">\"& Tittel
    Response.write \"</a></b><br>\"
    Temp = Temp + 1
    RS.MovePrevious
  Wend
  RS.Close
end sub

/nute
Avatar billede nute Nybegynder
26. april 2001 - 00:44 #20
hva er egentlig poenget med denne:


Select case opgaver
  case \"opg\"
    RS.Open \"SELECT ID, Tittel FROM TFiles\", Conn, 3, 3
end select

hvis ikke \'opgaver\' er lik \"opg\", så vil jo aldri ditt recordset bli åpnet. Og hva er egentlig ponitet med å sjekke om \'opgaver\' er lik med \"opg\" når \'opgaver\' kun har lov å ha en verdi ?

i så fall skal du sette hele din gjennomgang av recordsettet inn i din select case...

/nute
Avatar billede sommerfulg Nybegynder
26. april 2001 - 00:50 #21
Hvad skal jeg skrive nede i html koden når jeg skal have de 5 seneste opgaver vist? Sådan her?

<%
opgaver = \"opg\"
call nyesteOpg(opgaver)

%>
Avatar billede nute Nybegynder
26. april 2001 - 00:51 #22
jepp...
Avatar billede sommerfulg Nybegynder
26. april 2001 - 00:57 #23
Ok jeg prøver lige at taste \"nute\" versionen ind.. øjeblik
Avatar billede sommerfulg Nybegynder
26. april 2001 - 00:58 #24
Nu får jeg så denne fejl:

Microsoft VBScript runtime error \'800a01f4\'

Variable is undefined: \'opgaver\'

/forside21.asp, line 626

*********
linie 626 er der hvor jeg skal have de 5 seneste opgaver (overskrift) vist?

altså

<%
opgaver = \"opg\"
call nyesteOpg(opgaver)

%>

Avatar billede sommerfulg Nybegynder
26. april 2001 - 01:00 #25
Jeg er ved at give op... Kan jeg mail siden til een af jer?  Jeg kaster gerne lidt flere points i?
Jeg synes at jeg retter og retter uden held.
Avatar billede nute Nybegynder
26. april 2001 - 01:01 #26
send script + database til kh@netdoktor.com

/nute
Avatar billede sommerfulg Nybegynder
26. april 2001 - 01:10 #27
Nute - Er sendt - jeg har ikke vedlagt databaserne (kaldes via min global.asa) og dette fungerer fint ( jeg kan jo godt kalde enten opgaverne (overskrifter) eller seneste svar. Blot ikke begge dele på een gang.
Avatar billede nute Nybegynder
26. april 2001 - 01:12 #28
ser på det...mitt første inntrykk er at du legger *altfor* mye funksjonalitet i din fil...men jeg har bare sett på det i 2 sekunder...gir en tilbakemelding om 10 minutter...

/nute
Avatar billede nute Nybegynder
26. april 2001 - 01:27 #29
ny versjon er sendt...
Avatar billede sommerfulg Nybegynder
26. april 2001 - 01:40 #30
Modtaget og kørt nu får jeg denne fejl:

Microsoft VBScript compilation error \'800a03ee\'

Expected \')\'

/forside22.asp, line 92

if( LEN(sql > 0) then
-----------------^
Avatar billede dudal Nybegynder
26. april 2001 - 01:42 #31
if LEN(sql) > then

/dudal
Avatar billede nute Nybegynder
26. april 2001 - 01:42 #32
bytt linje 92 ut med:

if( LEN(sql > 0) ) then
Avatar billede dudal Nybegynder
26. april 2001 - 01:42 #33
if LEN(sql) > 0 then

Ups. .-)
Avatar billede nute Nybegynder
26. april 2001 - 01:43 #34
dudal >> hehe....

sommerfugl >> det er nøyaktig det samme om du skriver mitt eller dudal sitt eksempel istedefor det som står i linje 92
Avatar billede sommerfulg Nybegynder
26. april 2001 - 01:47 #35
Nu er vi vist ved at være der....Nu skriver den til slut:

Microsoft VBScript compilation error \'800a03f4\'

Expected \'If\'

/forside23.asp, line 104

end sub
----^
Avatar billede nute Nybegynder
26. april 2001 - 01:58 #36
nyesteOpg() bytter du ut med denne:

sub nyesteOpg(opgaver)

    Dim Tittel
    Conn.Open Application(\"fildb\")
   
    Select case opgaver
    case \"opg\"
        sql = \"SELECT TOP 5 ID, Tittel FROM TFiles ORDER BY ID DESC\"
        \'RS.Open \"SELECT ID, Tittel FROM TFiles\", Conn
    end select
   
    if( LEN(sql > 0) then
        Set RS = Conn.Execute( sql )
        While NOT RS.EOF
            Response.write \"<img border=\"\"0\"\" src=\"\"/forum/i1.gif\"\">&nbsp;\"
            Tittel=LEFT(RS(\"Tittel\"),30)
            Tittel=LEFT(Tittel,INSTRREV(Tittel,\"\")) &\"...\"
            Response.write \"<b><a href=\"\"/Upload/downloadDB.asp?ID=\"& RS(\"ID\") &\"\"\">\"& Tittel
            Response.write \"</a></b><br>\"
            RS.MoveNext
        Wend
        RS.Close
        conn.Close
    End if
    sql = \"\"
end sub

/nute
Avatar billede sommerfulg Nybegynder
26. april 2001 - 02:05 #37
Nute - nu siger den at der er problem med denne:

<%
opgaver = \"opg\"
call nyesteOpg(opgaver)

%>


Fejlangivelse:
Microsoft VBScript runtime error \'800a01f4\'

Variable is undefined: \'opgaver\'

/forside24.asp, line 613
Avatar billede nute Nybegynder
26. april 2001 - 02:08 #38
det er jo forsåvidt ingen point i å definere en variabel for å bruke den en linje nedenunder. En annen ting er jo at du har Option Excplicit på toppen av din side, og du har ikke definert variabelen \'opgaver\'

prøv dette heller:

call nyesteOpg(\"opg\")

/nute
Avatar billede sommerfulg Nybegynder
26. april 2001 - 02:11 #39
Nu får jeg:

Microsoft VBScript runtime error \'800a000d\'

Type mismatch: \'sql\'

/forside26.asp, line 91

***********
som er denne linie:
if( LEN(sql > 0)) then

Avatar billede nute Nybegynder
26. april 2001 - 02:19 #40
skal være

if( LEN(sql) > 0) then
Avatar billede sommerfulg Nybegynder
26. april 2001 - 02:24 #41
JUBIIIIIIIII - det lykkedes  - Jeg er ked af at det skulle tage så lang tid - Tak for dit enestående og tålmodige engagement og så på denne tid af døgnet. TAK!
Avatar billede nute Nybegynder
26. april 2001 - 02:26 #42
selv takk :)
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