30. april 2002 - 08:54Der er
22 kommentarer og 1 løsning
resultset
Hvilke komandoer er det muligt at bruge her??
Jeg har et resultdet jeg har opbygget på baggrund af en sql streng, og nu vil jeg gerne lave forskellige operationer på det. F.eks, hente den record ud, hvor id =4.
Er et recordset ikke bygget op som en kopi af databasen ??
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Ja etrecordset er en kopi af databasen og du kan begrænse den kopi til dit behov via SQL.
Prøv at kikke her: http://www.w3schools.com/sql/default.asp Linket er en "SQL Tutorial" som er let at gå til. Også godt som hurtigt opslag når man er i tvivl om SQL syntaxen, om der skal ' eller ikke på...
'Du laver en SQL streng, denne vælger den record som har ID=4: SQL = "SELECT * FROM tabel WHERE ID = '4'"
Se nu har jeg alderrede lavet en fejl i SQL hvis ID er autonummer/tal så skal der nemlig ikke '' omkring 4. Så SQL-sætningen skal se sådan her ud: SQL = "SELECT * FROM tabel WHERE ID = 4"
Hvis du har udført dit SQL kald, så kan du bevæge dig frem og tilbage i dit resultset, dette gøres ved "resultsetnavn".moveNext() el .moveLast .moveFirst
Du kan så søge i det med enten if for eller while sætninger..
JEg vile nok tilpasse min SQL-sætning så jeg kun fik det med jeg skulle bruge!!
Det lyder jo lækkert, her kommer så næste del af historien.
Jeg er ved at lave et billede arkiv, hvor man vælger en billedeserie, og derefter får vist alle billeder i det pågældende billedearkiv. HErefter kan man så trykke på billedet og få det vist i et nytvindue. Det er så her jeg har skal kunne bladre frem og tilbage i de billeder der er i den valgte billedeserie.
I øjeblikket kalder jeg popupvinduet med billede id'et, på denne måde: SQL = "SELECT * FROM tabel WHERE ID = 4", og derved får jeg vis det pågældende billede.
Jeg skal nu bare have det lavet sådan at den når vinduet åbnes opbygger et resultset der kun indeholder billederne fra den valgte billedeserie, så jeg udfra det kan vælge billedet med id = 4, og derefter bladre frem og tilbage.
Systemet bygger på en database med to tabeller, en der hedder billedeserie, og en der hedder image, de har følgende attributer:
Tabellen billedeserie ---------------------------------- BSId - Id for billedeserie besk - Beskrivelse af billedeserien overskrift - Overskrift på billedeserien UID - Userid for personen der har oprettet billedet
Tabellen image ------------------------------------ ImageID - Billedets unikke id beskrivelse - beskrivelse af billedet BsId - Id'et på den billedeserie den høre til UId - Id'et på den bruger der har uploadet det sti - den fysiske sti på billedet billedenavn - det fysiske navn på billedet
Visningen af billederne foregår ved at man vælger en billedeserien der ønskes vist. Derefter vises alle billederne i serien i små billeder, hvis man så trykker på billedet bliver det vist i stor format i et popopvindue. Jeg skal så bare finde ud af hvordan jeg får holdt styr på de belleder der er i den pågældende serie, så jeg kan gøre det muligt at bladre frem og tilbage i den enkelte serie. Når man når til den ene eller den anden ende af billedeserien, skal muligheden for at bladre videre den pågældende vej forsvinde.
På den side der viser billedet. Du skal linke til pop-up vindet ved: visbillede.asp?id=4&bs=X
'Hend det ID smat serie som skal vises i popup vinduet imageID = reqest.querystring("id") bs = reqest.querystring("id") previousID = "" 'ID til forrige billed nextID = "" 'ID til næste billede
'Find alle biller i billede serienen sql = "SELECT ImageID FROM image WHERE BsID = " & bs set rs = conn.execute(sql) do while not rs.EOF if CInt(rs("ImageID")) = CInt(imageID) then rs.MoveLast if not rs.BOF then previousID = rs("imageID") end if rs.Movenext rs.MoveNext if not rs.EOF nextID = rs("imageID") end if break 'break ud af loopen.. end if rs.movenext loop
'Find sti til billede: sql = "SELECT * FROM images WHERE ImageID = " imageID set rs = conn.execute 'Udskriv/vise billed
'lav links til forrige og næste: if previousID = "" then Response.write " forrige " else Response.write "< href='visbilled.asp?id=" & previousID & "&bs=" & bs & "'> forrige </a>" end if
'lav links til forrige og næste: if nextID = "" then Response.write " næste " else Response.write "< href='visbilled.asp?id=" & nextID & "&bs=" & bs & "'> næste </a>" end if
imageID = reqest.querystring("id") bsid = reqest.querystring("id") previousID = "" 'ID til forrige billed nextID = "" 'ID til næste billede
sql = "SELECT ImageID FROM image WHERE BsID = " & bs set rs = imageConn.execute(sql) do while not rs.EOF if CInt(rs("ImageID")) = CInt(imageID) then rs.MoveLast if not rs.BOF then previousID = rs("imageID") end if rs.Movenext rs.MoveNext if not rs.EOF nextID = rs("imageID") end if break 'break ud af loopen.. end if rs.movenext loop
'Find sti til billede: sql = "SELECT * FROM images WHERE ImageID = " imageID set rs = imageConn.execute 'Udskriv/vise billed
%> <html> <head> <style type="text/css"> <!-- a { text-decoration: none; color: #0A246A} a:hover { color: #0A246A; text-decoration: underline} --> </style> <title>Billed (fuld størrelse)</title> </head> <body bgcolor="#FFFFFF" text="#000000"> <%If NOT ns.BOF OR ns.EOF Then%> <table border="0" width="100%" height="423"> <tr> <td width="100%" colspan="3" height="341"><p align="center"><img border="1" src="<%=ns("sti")%><%=ns("billedenavn")%>" width="475" height="355"></td> </tr> <tr> <td width="100%" colspan="3" height="52"> <p align="left"><i><font face="Verdana" size="2"><%=ns("beskrivelse")%><br><br></font></i></td> </tr> <tr> <td width="100%" align="center" height="9" colspan="3"><hr noshade width="410" size="1" id="barfarve"></td> </tr> <tr> <td width="33%" align="center" height="9"><font size="2" face="Verdana" color="#0000FF"> <% 'lav links til forrige og næste: if previousID = "" then Response.write " forrige " else Response.write "< href='visbilled.asp?id=" & previousID & "&bs=" & bs & "'> forrige </a>" end if %> </font></td> <td width="33%" align="center" height="9"><font size="2" face="Verdana" color="#0000FF"><a href='java script:onClick=window.close()'>Luk vindue</a></font></td> <td width="34%" align="center" height="9"><font size="2" face="Verdana" color="#0000FF"> <% 'lav links til forrige og næste: if nextID = "" then Response.write " næste " else Response.write "< href='visbilled.asp?id=" & nextID & "&bs=" & bs & "'> næste </a>" end if %> </font></td> </tr> </table> <%End If%> </body> </html> <% Set SQL = Nothing imageConn.Close Set imageConn = Nothing %>
-----------------------
Men jeg får følgende fejl
Error Type: Microsoft VBScript compilation (0x800A0400) Expected statement /moejensen/VAG/se_billede_stor.asp, line 13, column 20 do while not rs.EOF Then -------------------^
Error Type: Microsoft VBScript compilation (0x800A03F9) Expected 'Then' /moejensen/VAG/se_billede_stor.asp, line 22, column 13 if not rs.EOF ------------^
Her nu rettet nogle enkelte navne til, så det skulle passe. Jeg får nu denne fejl:
Error Type: Microsoft OLE DB Provider for ODBC Drivers (0x80040E24) Rowset does not support fetching backward. /moejensen/VAG/se_billede_stor.asp, line 16
sql = "SELECT ImageID FROM image WHERE BsID = " & bs set rs = imageConn.execute(sql)
previousIDtmp = "" do while not rs.EOF if CInt(rs("ImageID")) = CInt(imageID) then if previousIDtmp <> "" then previousID = previousIDtmp end if rs.MoveNext if not rs.EOF then nextID = rs("imageID") end if break 'break ud af loopen.. end if previousIDtmp = rs("imageID") rs.movenext loop
Nu har jeg fået rettet en del fejl mere, og nu virker det SKU...næsten, jeg kan bladre tilbage, og forrige forsvinder når der ikke er flere billeder, men når jeg når den skal til at vise sidste billede, kommer følgende fejl:
Error Type: ADODB.Field (0x800A0BCD) Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record. /moejensen/VAG/se_billede_stor.asp, line 27
Koden ser i øjeblikket sådan ud:
<% Set imageConn = Server.CreateObject("ADODB.Connection") Set rs = Server.CreateObject("ADODB.Recordset") imageConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../Database/VAG/image.mdb")
imageID = request.querystring("imageID") bsid = request.querystring("BSId") previousID = "" 'ID til forrige billed nextID = "" 'ID til næste billede
sql = "SELECT ImageID FROM image WHERE BsID = " & bsid set rs = imageConn.execute(sql)
previousIDtmp = "" do while not rs.EOF if CInt(rs("ImageID")) = CInt(imageID) then if previousIDtmp <> "" then previousID = previousIDtmp end if rs.MoveNext if not rs.EOF then nextID = rs("imageID") end if 'break 'break ud af loopen.. end if previousIDtmp = rs("imageID") rs.movenext loop
'Find sti til billede: sql2 = "SELECT * FROM image WHERE ImageID = " & imageID set ns = imageConn.execute(sql2) 'Udskriv/vise billed
%> <html> <head> <style type="text/css"> <!-- a { text-decoration: none; color: #0A246A} a:hover { color: #0A246A; text-decoration: underline} --> </style> <title>Billed (fuld størrelse)</title> </head> <body bgcolor="#FFFFFF" text="#000000"> <table border="0" width="100%" height="423"> <tr> <td width="100%" colspan="3" height="341"><p align="center"><img border="1" src="<%=ns("sti")%><%=ns("billedenavn")%>" width="475" height="355"></td> </tr> <tr> <td width="100%" colspan="3" height="52"> <p align="left"><i><font face="Verdana" size="2"><%=ns("beskrivelse")%><br><br></font></i></td> </tr> <tr> <td width="100%" align="center" height="9" colspan="3"><hr noshade width="410" size="1" id="barfarve"></td> </tr> <tr> <td width="33%" align="center" height="9"><font size="2" face="Verdana" color="#0000FF"> <% 'lav links til forrige og næste: if previousID = "" then Response.write " forrige " else Response.write "<a href='se_billede_stor.asp?ImageID=" & previousID & "&BSId=" & bsid & "'>forrige</a>" end if %> </font></td> <td width="33%" align="center" height="9"><font size="2" face="Verdana" color="#0000FF"><a href='java script:onClick=window.close()'>Luk vindue</a></font></td> <td width="34%" align="center" height="9"><font size="2" face="Verdana" color="#0000FF"> <% 'lav links til forrige og næste: if nextID = "" then Response.write " næste " else Response.write "<a href='se_billede_stor.asp?imageID=" & nextID & "&BSId=" & bsid & "'> næste </a>" end if %> </font></td> </tr> </table>
</body> </html> <% Set SQL = Nothing imageConn.Close Set imageConn = Nothing %>
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.