Avatar billede celine Nybegynder
04. januar 2005 - 12:59 Der er 6 kommentarer og
1 løsning

brug af EOF

hej
jeg prøver at gemme nogel data i database som så efterfølgende skal kunne hentes igen ved hjælp af en dropdownboks. Jeg kan godt gemme, søge og hente oplysninger men får følgende fejl når jeg gemmer

ADODB.Field error '80020009'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/kultur kanon/forslag.asp, line 0

siden kan ses på http://www.struermuseum.dk/kultur%20kanon/forslag.asp
Avatar billede powell Nybegynder
04. januar 2005 - 13:01 #1
Hvis du virkelig gemmer data i DB'en, så må det være en "tom" post, dette kunne være den første.
Lav f.eks. en if dbName <> EOF or dbName <> BOF then
Avatar billede celine Nybegynder
04. januar 2005 - 13:15 #2
Det virker ikke, du får lige lidt kode, det kan være du kan gennemskue det.

gem_forslag.asp:

dim emne
dim begrundelse
dim strSql, dbConn, objRec, strDSN
dim EOF

emne = Request.Form("forslag")
begrundelse = Request.Form("begrund")

    set dbConn = Server.CreateObject("ADODB.connection")
    strDSN = strPlacering
       
        if emne <> EOF then
            strSQL = "INSERT into forslag(emne, begrundelse) values('" & emne & "', '" & begrundelse & "');"
        end if
   
    dbConn.Open strDSN
    set objRec = dbConn.execute(strSQL)
       
    Response.Redirect("tak.asp")

objRec.Close
set objRec = nothing
dbConn.Close
set dbConn = nothing

forslag.asp, her ligger formularene

<tr><form action="gem_forslag.asp" method="post" name="forslag_form">
        <td width="250" align="left"><div id="tekst"><label>Emne:</label>
        <br><input type="text"  name="forslag" value=""><br><br>
        <label>Begrundelse</label><br><textarea name="begrund" rows="15" cols="35" wrap="virtual"></textarea>
        <br><br><input type="submit" name="send" value=" Send "></div></td>
        </form>
       
       
        <%
        dim strSql, dbConn, strDSN, rs
        dim emne, begrundelse
       
       
        emne = Request.Form("emne")
        begrundelse = Request.Form("begrundelse")
       
        set dbConn = Server.CreateObject("ADODB.connection")
        set rs = Server.CreateObject("ADODB.recordset")
        strDSN = strPlacering
        strSql ="SELECT * from forslag ORDER BY id desc"
        dbConn.Open strDSN
        rs.Open strSql, dbConn, AdOpenForwardOnly
        %>
       
        <form action="forslag.asp" method="post" name="hent_form">
        <td width="270" align="left" valign="top"><div id="tekst">
        <br><select name="soeg" class="dropdown" title="forslag fra database">
        <%
            do
            Response.Write "<option value=""" & rs.fields("emne") & """>" & rs.fields("emne") & "</option>"
            rs.MoveNext
            loop while not rs.EOF
   
            rs.Close
            set rs = nothing
        %>

        </select>&nbsp;
        <input type="submit" name="soeg_knap" value=" Søg "><br><br></form>
       
       
        <%
       
        dim soeg
        soeg = Request.Form("soeg")
        find_sv(soeg)

        if (request.QueryString("soeg") = "") then
            soeg = trim(request.Form("soeg"))
        end if
       
   
       
    sub find_sv(soeg)
        Set dbConn = Server.CreateObject("ADODB.Connection")
        Set rs = Server.CreateObject("ADODB.Recordset")
        strDSN = strPlacering
        strSql = "SELECT emne, begrundelse FROM forslag ORDER BY id"
        dbConn.Open strDSN

        rs.Open strSql, dbConn, adOpenForwardOnly
       
            do while not rs.EOF
            if (rs("emne") = soeg) then
                emne = rs("emne")
                begrundelse = rs("begrundelse")
            exit do
            end if
   
        rs.MoveNext
        loop
    %>
        <form action="forslag.asp" method="post">
        Emne:<br><input name="emne" width="100" value="<%=rs("emne")%>"><br><br>
        Begrundelse:<br><textarea name="begrundelse" rows="10" cols="35"><%=rs("begrundelse")%></textarea></div></td>
        </form>
    <%
        rs.Close
        set rs = nothing
    end sub
        %>
Avatar billede powell Nybegynder
04. januar 2005 - 13:33 #3
Bemærk, EOF er en kommando ikke en variabel
I din SQL søgning brug da WHERE så slipper du for at køre alle ´posterne igennem

Prøv lige nedenstående kode:

dim emne
dim begrundelse
dim strSql, dbConn, objRec, strDSN

'emne = Request.Form("forslag")
'begrundelse = Request.Form("begrund")

emne = "test_emne"
begrundelse = "test_begrundelse"

set dbConn = Server.CreateObject("ADODB.connection")
strDSN = strPlacering
       
strSQL = "INSERT into forslag(emne, begrundelse) values('" & emne & "', '" & begrundelse & "');"
   
dbConn.Open strDSN
set objRec = dbConn.execute(strSQL)
       
objRec.Close
set objRec = nothing
dbConn.Close
set dbConn = nothing

dim dbConn2

Set dbConn2 = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
strDSN = strPlacering
strSql = "SELECT emne, begrundelse FROM forslag ORDER BY id"
dbConn2.Open strDSN

rs.Open strSql, dbConn, adOpenForwardOnly
       
'do while not rs.EOF
'  if (rs("emne") = soeg) then
    emne = rs("emne")
    begrundelse = rs("begrundelse")
'    exit do
'            end if
   
'        rs.MoveNext
'        loop

response.write "Emne: " & emne & " Begrundelse: " & begrundelse
Avatar billede medions Nybegynder
04. januar 2005 - 14:13 #4
Venligst luk dette spørgsmål, og opret det under ASP kategorien! (Kategorier -> Programmering -> Scripts -> ASP)

//>Rune
Avatar billede celine Nybegynder
04. januar 2005 - 14:43 #5
til rune

du må da godt undskyld jeg er her. når der er en en kategori der hedder vbscript så var det vel meget naturligt at vælge den. der var ikke andre at vælge imellem. Du skulle måske selv gå et andet sted hen.
Avatar billede celine Nybegynder
04. januar 2005 - 15:15 #6
til powell

Nu virker det, om hvad dethelt præcist var der gjorde det ved jeg ikke, men kom med et svar.
Avatar billede powell Nybegynder
04. januar 2005 - 15:15 #7
OK!
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