22. november 2006 - 14:14Der er
15 kommentarer og 1 løsning
Auktions script fra mysql til Access DB
Hey Jeg har fundet et auktions script, men det køre på en MYSQL DB, og ville derfor lave det om til at køre på en Access DB, men det lykkes dog ikke... index.asp: <% '************************************************' '* *' '* (C) 21/11/2003 *' '* by *' '* Shorty *' '* *' '************************************************' Set Conn = Server.CreateObject("ADODB.Connection") conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("billeder.mdb") strSQL = "SELECT id, sti, overskrift, tekst, minimum FROM varer" set rs = Conn.Execute(strSQL)
response.write("<table>") do while not (rs.Bof or rs.EOF) response.write("<tr><td>"& vbcrlf) response.write("<img src="""& rs("sti") &""">"& vbcrlf) response.write("</td><td>"& vbcrlf) response.write("<b>"& rs("overskrift") &"</b><br>"& vbcrlf) response.write( rs("tekst") &"<br>Min. bud: "& rs("minimum") & vbcrlf) response.write("</td></tr>"& vbcrlf) response.write("<tr><td colspan=""2"">"& vbcrlf) response.write("<form action=""gembud.asp"" method=""post"">"& vbcrlf) response.write("<input type=""hidden"" name=""id"" value="""& rs("id")&""">"& vbcrlf) response.write("Email: <input type=""text"" name=""email"">"& vbcrlf) response.write("Bud: <input type=""text"" name=""bud"">"& vbcrlf) response.write("<input type=""Submit"" value=""Byd!"">"& vbcrlf) response.write("<br>"& vbcrlf) SQL = "SELECT MAX(bud) as maxbud FROM bud WHERE vare="&rs("id") Set rs_bud = conn.execute(strSQL) if (rs_bud("maxbud")=NULL) then response.write("Højeste bud pt: <b> Indet bud </b>"& vbcrlf) else response.write("Højeste bud pt: <b> kr. "& rs_bud("maxbud") &"</b>"& vbcrlf) end if
conn.close %> gembud.asp <% '************************************************' '* *' '* (C) 21/11/2003 *' '* by *' '* Shorty *' '* *' '************************************************' id = request.form("id") email = request.form("email") bud = request.form("bud") Set Conn = Server.CreateObject("ADODB.Connection") conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("billeder.mdb") strSQL = "SELECT overskrift, minimum FROM varer WHERE id = "& id set rs = Conn.Execute(strSQL)
fejl = false response.write("<div align=""center"">") if (email = "") then response.write("Du skal skrive en email<br>") fejl = true end if
if (bud < rs("minimum")) then response.write("Dit bud er mindere end minimums budet.<br>") fejl = true end if
if not (fejl) then SQL = "SELECT MAX(bud) as maxbud FROM bud WHERE vare = "& id Set rs_bud = conn.execute(SQL) if ((rs_bud("maxbud")>Clng(bud)) or (rs_bud("maxbud")=Clng(bud))) then fejl = true response.write("Dit bud er mindere eller lig det højeste bud.<br>") end if end if
if not (fejl) then SQL = "INSERT INTO bud (vare,bud,email) VALUES ("&id&","&bud&",'"&email&"')" conn.execute(SQL) response.write("Du har nu afgivet et bud på: <b>"& bud &"</b> for varen <b>"&rs("overskrift")&"</b>.<br>") end if
Item cannot be found in the collection corresponding to the requested name or ordinal.
index.asp, line 31
I min db har jeg en der hedder varer hvor der er felter der hedder id, sti, overskrift, tekst, minimum, maxbud i bud står der: id, email, bud, vare, maxbud
prøv at rette disse linier: SQL = "SELECT MAX(bud) as maxbud FROM bud WHERE vare="&rs("id") Set rs_bud = conn.execute(strSQL) if (rs_bud("maxbud")=NULL) then response.write("Højeste bud pt: <b> Indet bud </b>"& vbcrlf) else response.write("Højeste bud pt: <b> kr. "& rs_bud("maxbud") &"</b>"& vbcrlf) end if
til: SQL = "SELECT top 1 bud FROM bud WHERE vare="&rs("id") & " ORDER BY bud DESC" Set rs_bud = conn.execute(strSQL) if (rs_bud.eof) then response.write("Højeste bud pt: <b> Indet bud </b>"& vbcrlf) else response.write("Højeste bud pt: <b> kr. "& rs_bud("bud") &"</b>"& vbcrlf) end if
Synes godt om
Slettet bruger
22. november 2006 - 15:48#6
nu får jeg denne fejl ADODB.Recordset error '800a0cc1'
Item cannot be found in the collection corresponding to the requested name or ordinal.
index.asp, line 34
line 34 response.write("Højeste bud pt: <b> kr. "& rs_bud("bud") &"</b>"& vbcrlf)
Jeg har nu rettet min index.asp så den virker nu... men problemet er gembud.asp den kommer med følgende fejl:
ADODB.Recordset error '800a0cc1'
Item cannot be found in the collection corresponding to the requested name or ordinal.
gembud.asp, line 32
line 32 if ((rs_bud("maxbud")>Clng(bud)) or (rs_bud("maxbud")=Clng(bud))) then
Gembud.asp
<% '************************************************' '* *' '* (C) 21/11/2003 *' '* by *' '* Shorty *' '* *' '************************************************' id = request.form("id") email = request.form("email") bud = request.form("bud") Set Conn = Server.CreateObject("ADODB.Connection") conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("billeder.mdb") strSQL = "SELECT overskrift, minimum FROM varer WHERE id = "& id set rs = Conn.Execute(strSQL)
fejl = false response.write("<div align=""center"">") if (email = "") then response.write("Du skal skrive en email<br>") fejl = true end if
if (bud < rs("minimum")) then response.write("Dit bud er mindere end minimums budet.<br>") fejl = true end if
if not (fejl) then SQL = "SELECT MAX(bud) as maxbud FROM bud WHERE vare = "& id Set rs_bud = conn.execute(strSQL) if ((rs_bud("maxbud")>Clng(bud)) or (rs_bud("maxbud")=Clng(bud))) then fejl = true response.write("Dit bud er mindere eller lig det højeste bud.<br>") end if end if
if not (fejl) then SQL = "INSERT INTO bud (vare,bud,email) VALUES ("&id&","&bud&",'"&email&"')" conn.execute(SQL) response.write("Du har nu afgivet et bud på: <b>"& bud &"</b> for varen <b>"&rs("overskrift")&"</b>.<br>") end if
En anden ting: Lav kun 1 kald til recordsettet, per kolonne.. Det gør du ved at putte værdien i variabler:
Set rs_bud = conn.execute(strSQL) if not (rs.bof or rs.eof) then dim maxbud maxbud = CLng(rs("maxbud")) if maxbud > CLng(bud) OR maxbud > CLng(bud) then ...osv..
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.