16. november 2015 - 16:07Der er
22 kommentarer og 1 løsning
BOF or EOF
Jeg får denne fejl Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
den skal lave undermenuer med billeder vis der er nogen jeg kan se at den laver den første rigtig, derefter flopper den koden mellem '#### er den jeg har tilføjet
databaseAsql DO WHILE NOT databaseA.EOF for i=1 to 4 if databaseA.EOF then
databaseBsql if databaseB.EOF then response.write "<tr><td><img src=/billeder/200/nopic.png BORDER=0 height=200 width=200></td></tr>" else '##########loop varer igennem og tjekker for billeder (tager den første den finder) nopic = 0 varevalgt = "" varevalgttext = "" nopic = 0 set fso = Server.Createobject("scripting.filesystemobject") Do While Not databaseB.EOF if CInt(nopic) = 0 then if fso.FileExists(Server.mappath("prod/billeder/200/" & databaseB("Varenr") & ".JPG")) then varevalgt = databaseB("Varenr") varevalgttext = databaseB("Beskriv100") nopic = 1 end if end if databaseB.MoveNext Loop set fso=nothing
if CInt(nopic) = 1 then response.write "<tr><td><<img src='/billeder/200/"& varevalgt &".jpg' alt='"& varevalgt &" - "& varevalgttext &"' BORDER='0' height='200' width='200'></td></tr> else response.write "<tr><td><img src=/billeder/200/nopic.png BORDER=0 height=200 width=200></td></tr>" end if nopic = 0 '###################################################### end if
fejlen forsvinder vis jeg putter ind "Exit Do" men tilgengæld for jeg 2 billeder per resultat selvom title kun vis en gang
databaseAsql DO WHILE NOT databaseA.EOF for i=1 to 4 if databaseA.EOF then
databaseBsql
response.write "kategori title bla bla" '<!-- vis kun engang per result
if databaseB.EOF then response.write "<img src=/billeder/200/nopic.png BORDER=0 height=200 width=200>" else '##########loop varer igennem og tjekker for billeder (tager den første den finder) nopic = 0 varevalgt = "" varevalgttext = "" nopic = 0 set fso = Server.Createobject("scripting.filesystemobject") Do While Not databaseB.EOF if CInt(nopic) = 0 then if fso.FileExists(Server.mappath("prod/billeder/200/" & databaseB("Varenr") & ".JPG")) then varevalgt = databaseB("Varenr") varevalgttext = databaseB("Beskriv100") nopic = 1 Exit Do '<!-- sat ind end if end if databaseB.MoveNext Loop set fso=nothing
if CInt(nopic) = 1 then response.write "<img src='/billeder/200/"& varevalgt &".jpg' alt='"& varevalgt &" - "& varevalgttext &"' BORDER='0' height='200' width='200'>" '<!-- vis 2 gange else response.write "<img src=/billeder/200/nopic.png BORDER=0 height=200 width=200>" end if '###################################################### end if databaseA.MoveNext end if next loop
Do While Not databaseB.EOF And CInt(nopic) = 0 if fso.FileExists(Server.mappath("prod/billeder/200/" & databaseB("Varenr") & ".JPG")) then varevalgt = databaseB("Varenr") varevalgttext = databaseB("Beskriv100") nopic = 1 end if databaseB.MoveNext Loop
Prøvet. det gav mig igen 2 billeder, men 2 forskellige billeder. Det gav mig en ADODB.Field error '80020009' fejl igen, men ved 3 kategori fordi den ikke har 2 resultater databaseB
Jeg er sikker på der er en åbentlys fejl her. Der er selvfølgelig mere kode som jeg ikke har vist men jeg har kun vist det jeg syntes var relevant
Ja, jeg forstår bare ikke hvorfor og hvordan den kan få en BOF or EOF fejl på en String (varevalgt) især når jeg har en sat varevalgt = "" før den begynder en DO WHILE LOOP vis den loop køre fint en gang burde (varevalgt) være den første hit og ikke prøve at lave en anden billede
Her er hele sub koden med noter osv. igen koden mellem '######## er den jeg har tilføjet i stedet for det der er ud kommenteret.
Sub liste if database.EOF then if varekategorien = " - - " then 'her sker intet else response.write"<td align='center'><table align='center'>" if Request.querystring("Kategori2") = "NA" then strSQLA = "SELECT DISTINCT Kategori1, Kategori2, Kategori3 FROM Menu WHERE Kategori1 = '"& AAkonvert(request.querystring("Kategori1")) & "' AND Kategori2 <> '' and varetype='grej' Order by Kategori2, Kategori3" else strSQLA = "SELECT DISTINCT Kategori1, Kategori2, Kategori3 FROM Menu WHERE (Kategori1 = '"& AAkonvert(request.querystring("Kategori1")) & "' AND Kategori2 = '"& AAkonvert(request.querystring("Kategori2")) &"' AND Kategori3 <> '' and varetype='grej') Order by Kategori2, Kategori3"' end if set databaseA = Con.Execute(strSQLA) response.write"<td align='center'><table align='center'>" DO WHILE NOT databaseA.EOF for i=1 to 4 if databaseA.EOF then else kategori1 = AEkonvert(databaseA("Kategori1")) skategori1 = AEkonvert(databaseA("Kategori1")) if databaseA("Kategori2") = null then kategori2 = null skategori2 = "IS NULL " else kategori2 = AEkonvert(databaseA("Kategori2")) skategori2 = "= '"&AEkonvert(databaseA("Kategori2"))&"'" end if if databaseA("Kategori3") = null then kategori3 = null skategori3 = "IS NULL " else kategori3 = AEkonvert(databaseA("Kategori3")) skategori3 = "= '"&AEkonvert(databaseA("Kategori3"))&"'" end if if kategori2 = "" then kategori2 = null skategori2 = "IS NULL " end if if kategori3 = "" then kategori3 = null skategori3 = "IS NULL" end if strSQLB = "SELECT Varenr, beskriv100 FROM Varer WHERE Kategori1 = '"& sKategori1 &"' AND Kategori2 "& sKategori2 &" AND Kategori3 "& sKategori3 &" AND LagerAntal > 0 and varetype='grej'" set databaseB = Con.Execute(strSQLB) response.write "<td width='200'><table border='1'>" DBSTI = "" IF Kategori1 <> "" then DBSTI = Kategori1 IF Kategori2 <> "" then DBSTI = DBSTI & " - " & Kategori2 IF Kategori3 <> "" then DBSTI = DBSTI & " - " & Kategori3 end if end if end if response.write "<tr bgcolor='#004000'><td><font color='#FFFFFF'>" & EAkonvert(DBSTI) & "</font></td></tr>" set fso = Server.Createobject("scripting.filesystemobject") 'TAL = 0 'DO WHILE NOT fso.FileExists(Server.mappath("prod/billeder/200/" & databaseB("Varenr") & ".JPG")) AND TAL > 3 'databaseB.movenext ' TAL = TAL + 1 ' response.write TAL&"<br>" 'loop if isnull(kategori2) then kategori2 = "NA" end if if isnull(kategori3) then kategori3 = "NA" end if
if databaseB.EOF then response.write "<tr><td><a href='vare.asp?Kategori1="& kategori1 &"&Kategori2="& kategori2 &"&Kategori3="& kategori3 &"&Tilbud=NA&Nyhed=NA&SOEG=NA&EMPTY' target='HOVED'><img src=prod/billeder/200/nopic.png BORDER=0 height=200 width=200></a></td></tr>" else
'######################################################loop varer igennem og tjekker for billeder (tager den første den finder) nopic = 0 varevalgt = "" varevalgttext = "" set fso = Server.Createobject("scripting.filesystemobject") Do While Not databaseB.EOF if CInt(nopic) = 0 then if fso.FileExists(Server.mappath("prod/billeder/200/" & databaseB("Varenr") & ".JPG")) then varevalgt = databaseB("Varenr") varevalgttext = databaseB("Beskriv100") nopic = 1 Exit Do end if end if databaseB.MoveNext Loop 'Do While Not databaseB.EOF And CInt(nopic) = 0 ' if fso.FileExists(Server.mappath("prod/billeder/200/" & databaseB("Varenr") & ".JPG")) then ' varevalgt = databaseB("Varenr") ' varevalgttext = databaseB("Beskriv100") ' nopic = 1 ' end if ' databaseB.MoveNext 'Loop set fso=nothing
end if response.write "</table></td>" databaseA.MoveNext end if next response.write "</tr>" loop response.write "<tr><td align='center' colspan='4'>Klik overstående billeder for at se undermenuen</td></tr>" response.write "</table>" end if else varenrJava=database("Varenr") response.write"<td align='center'><table align='center'>" DO WHILE NOT database.EOF call lagertjek if NOT (database.EOF) then response.write "<tr height='*'>" for i=1 to w if NOT (database.EOF) then response.write"<td valign='top' width='200' border='1'>" call vare1 response.write"</td>" database.movenext else 'response.write"<td></td>" end if call lagertjek
next response.write "</tr>" end if loop response.write"<input type='hidden' value='"&a&"' name='demotal'>" response.write"</table>" call forbehold end if end sub
desværre for jeg denne fejl. den laver første kategori titel og billede, men fejler ved anden billede som ikke burde laves. med "AND" lavede den 2 billeder. ved "OR" er den første billede den samme som var ekstra ved brug af "AND"
ADODB.Field error '80020009'
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
ok - vi tager nødbremsen, og undgår bare billede nr 2. stykket if CInt(nopic) = 1 then response.write "<tr><td><a href='vare.asp?Kategori1="& kategori1 &"&Kategori2="& kategori2 &"&Kategori3="& kategori3 &"&Tilbud=NA&Nyhed=NA&SOEG=NA' target='HOVED'><img src='prod/billeder/200/"& varevalgt &".jpg' alt='"& varevalgt &" - "& varevalgttext &"' BORDER='0' height='200' width='200'></a></td></tr>" else
der indskydes et par linjer if CInt(nopic) = 1 then if len(varevalgt)>0 then response.write "<tr><td><a href='vare.asp?Kategori1="& kategori1 &"&Kategori2="& kategori2 &"&Kategori3="& kategori3 &"&Tilbud=NA&Nyhed=NA&SOEG=NA' target='HOVED'><img src='prod/billeder/200/"& varevalgt &".jpg' alt='"& varevalgt &" - "& varevalgttext &"' BORDER='0' height='200' width='200'></a></td></tr>" varevalgt = "" end if else
det nulstiller varevalgt efter første udskrift, så det ikke vises anden gang. Jeg håber ikke, at du bruger varevalgt senere i koden.
jeg tænkte på at skjule den med css, men enten om jeg tager min eller din kode så får jeg en bof/eof fejl, vis kategori ingen billede har eller vis den kun har en resultat i databasen.
jeg er ellers godt inden i asp, men når logik ikke vil give logiske resultater så står jeg på bar bund. når jeg får tid vil jeg prøve en anden side eller nogen andre.
Af en eller anden grund kørte min kode noget kode der var udkommentere med '
Synes godt om
Ny brugerNybegynder
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.