17. juli 2002 - 15:17Der er
38 kommentarer og 1 løsning
recordset + 1
Kan man ikke det her? altså tage den sidste record og plusse med 1? <% varetypeid = rs("varetypeid") if rs.eof then varetypeid = "varetypeid + 1" end if %>
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.
hvis du vil have fat i det højest id i basen + 1 så gør nogenlunde sådan her:
<% set rs = server.createobject("adodb.recordset") rs.open "select max(varetypeid) as maxid from [tabelnavn]", conn, 1, 1 if not rs.eof then varetypeid = rs("maxid") + 1 else varetypeid = 1 'hvis der ikke er poster i basen end if
det er da klart det andet ikke virker. Enten vil du få en fejl fordi du i linien: >> varetypeid = rs("varetypeid") forsøger at hente en post der ikke findes, ellers vil rs.eof være false, og du kommer aldrig ind hvor du lægger 1 til.
så prøv <% set rs = server.createobject("adodb.recordset") rs.open "select max(varetypeid) as maxid from tblvaretype", conn, 1, 1 if not rs.eof then varetypeid = cint(rs("maxid")) + 1 end if rs.close set rs = nothing %>
<% set rs2 = server.createobject("adodb.recordset") rs2.open "select max(varetypeid) as maxid from tblvaretype", MyConn, 1, 1 if not rs2.eof then varetypeid = cint(rs(0)) + 1 end if rs2.close set rs2 = nothing %>
<% id = Request.Querystring("ID") Set MyConn=Server.CreateObject("ADODB.Connection") MyConn.open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../db/ep.mdb") SQL = "Select * From tblvaregruppe" Set RS = MyConn.Execute(SQL) while not rs.eof varegruppeid = rs("varegruppeid") rs.movenext response.write""& varegruppeid & " " if rs.eof then varegruppeid = varegruppeid + 1 end if wend %>
<% Set MyConn=Server.CreateObject("ADODB.Connection") MyConn.open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../db/ep.mdb") SQL = "Select MAX(varetypeid)+1 as maxID From tblvaregruppe" Set RS = MyConn.Execute(SQL) if not rs.eof then response.write rs("maxID") end if %>
...istedet for din egen. Det SKAL kunne virke. Jeg bruger det da så tit selv
hvorfor er det at jeg har skrevet "varetypeid" i mine kodestumper, og du er begyndt at skrive "varegruppeid" - hvilken er den rigtige? og sørg så lige for at bruge den.
For jeg har lige lavet en test med min kode på en db jeg selv har. Kun ændret tabel og DB-navn. Det virker fint
<% Set MyConn=Server.CreateObject("ADODB.Connection") MyConn.open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("./shop.mdb") SQL = "Select max(id1)+1 as maxid From categories" Set RS = MyConn.Execute(SQL) if not rs.eof then response.write rs("maxid") end if
%>
du skal selvfølgelig tilpasse stien, tabellen og inden i parentesen efter MAX skal du skrive feltnavnet du vil finde den største værdi for
Det er jo netop ikke et autonummeringsfelt, derfor vil jeg finde den sidste post og ligge en til...og det virker fint nu. Tusinde tak for hjælpen...;-)
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.