31. juli 2002 - 16:07
Der er
13 kommentarer og 1 løsning
Hvad er det for en fejl?
Den her fejl giver da ikke ret meget mening eller hvad: Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression '1<br>'. /login/lotto/opret2.asp, line 41 Linie 41 ser således ud: 40 strOpretLottoSQL = "UPDATE lotto SET kuponnr= "& kuponnr &", raekkenr = "& i &", tal1= "& tal1 &", tal2= "& tal2 &", tal3= "& tal3 &", tal4= "& tal4 &", tal5= "& tal5 &", tal6= "& tal6 &", tal7= "& tal7 &" WHERE ugenr = "& CInt(Session("ugenr")) &"" 41 Conn.Execute(strOpretLottoSQL)
Annonceindlæg tema
Cloud & AI
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.
WHERE ugenr = "& CInt(Session("ugenr")) &"" 41 Hvordan skal det forstås? Hvorfor de to efterfølgende anførselstegn? Og 41? Tror der er en fejl dér. Ud over det, har du sat et linieskift ind i SQL-strengen et sted, i en af variablerne. Da du kun har sat den til at modtage numeriske værdier, vil et <br> give en fejl.
41 er der hvor linie 41 starter og de to "" er til for at afslutte linie 40 er det ikke rigtigt
Denne fejl får du fordi du har en streng der ikke kun består af tal! Det vil sige, at hvis du fx. vil indsætte en tekst streng skal du lave ' og ' rundt om! Prøv at fjern Conn.Execute() og istedet skriv: Response.Write(strOpretLottoSQL) og vis mig hvad der kommer til at stå! //>Rune
strOpretLottoSQL = "UPDATE lotto SET kuponnr= "& kuponnr &", raekkenr = "& i &", tal1= "& tal1 &", tal2= "& tal2 &", tal3= "& tal3 &", tal4= "& tal4 &", tal5= "& tal5 &", tal6= "& tal6 &", tal7= "& tal7 &" WHERE ugenr = "& CInt(Session("ugenr")) Men prøv lige med denne! //>Rune
er alle dine felter tal-felter? hvis ikke det er skal der '' omkring til forespørgsler og så vidt jeg kan se forsøger du at indsætte et ikke tal ind (1<br>) - og det er lidt svært at sætte ind i et talfelt
Altså sådan her: strOpretLottoSQL = "UPDATE lotto SET kuponnr= "& kuponnr &", raekkenr = "& i &", tal1= "& tal1 &", tal2= "& tal2 &", tal3= "& tal3 &", tal4= "& tal4 &", tal5= "& tal5 &", tal6= "& tal6 &", tal7= "& tal7 &" WHERE ugenr = "& CInt(Session("ugenr")) Conn.Execute(strOpretLottoSQL) //>Rune
linieskitet er kun opstået fordi der ikke er plads nok her i den rigtige kode eksisterer det ikke
Præcis hvad jeg sagde. Hvorfor vil du bruge "" til at afslutte linien? Det er komplet unødvendigt.
Udskriften ser således ud hvis Conn.Execute erstattes med response.write UPDATE lotto SET kuponnr = 1, raekkenr = 1, tal1= 1 , tal2= 2 , tal3= 3 , tal4= 4 , tal5= 5 , tal6= 6 , tal7= 7 WHERE ugenr = 1234UPDATE lotto SET kuponnr = 1, raekkenr = 2, tal1= 8 , tal2= 9 , tal3= 10 , tal4= 11 , tal5= 12 , tal6= 13 , tal7= 14 WHERE ugenr = 1234UPDATE lotto SET kuponnr = 1, raekkenr = 3, tal1= 15 , tal2= 16 , tal3= 17 , tal4= 18 , tal5= 19 , tal6= 20 , tal7= 21 WHERE ugenr = 1234
31. juli 2002 - 16:28
#10
Koden ser således ud: <% antallinier = Request.QueryString("antallin") If request.form("kuponnr") <> "" Then kuponnr = Request.Form("kuponnr") Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" + Server.MapPath("XXXXXX")) for i=1 to antallinier tal1 = (Request.Form("lotto"&i&"1") & "<br>") tal2 = (Request.Form("lotto"&i&"2") & "<br>") tal3 = (Request.Form("lotto"&i&"3") & "<br>") tal4 = (Request.Form("lotto"&i&"4") & "<br>") tal5 = (Request.Form("lotto"&i&"5") & "<br>") tal6 = (Request.Form("lotto"&i&"6") & "<br>") tal7 = (Request.Form("lotto"&i&"7") & "<br>") If kuponnr = "1" Then strOpretLottoSQL = "UPDATE lotto SET kuponnr = "& kuponnr &", raekkenr = "& i &", tal1= "& tal1 &", tal2= "& tal2 &", tal3= "& tal3 &", tal4= "& tal4 &", tal5= "& tal5 &", tal6= "& tal6 &", tal7= "& tal7 &" WHERE ugenr = "& CInt(Session("ugenr")) Else strOpretLottoSQL = "INSERT INTO lotto (ugenr, kuponnr, raekkenr, tal1, tal2, tal3, tal4, tal5, tal6, tal7)" & "VALUES ("& CInt(Session("ugenr"))&", "&raekkenr&", "&tal1&", "&tal2&", "&tal3&", "&tal4&", "&tal5&", "&tal6&", "&tal7&")" End If Response.write(strOpretLottoSQL) Next Conn.Close Set Conn = Nothing %> I DB er der 10 kolonner (ugenr, kuponnr, raekkenr, tal1, tal2.... tal7) Er problemet at programmet ikke er klar over at den skal starte på en ny linie hver gang raekkenr stiger en
31. juli 2002 - 16:28
#11
Vis lige hvor du laver variablene tal1 til tal7
31. juli 2002 - 16:29
#12
Du skal ikke havde <br> i hvor du laver tal1 til tal så gør sådan her: tal1 = Request.Form("lotto"&i&"1") tal2 = Request.Form("lotto"&i&"2") tal3 = Request.Form("lotto"&i&"3") tal4 = Request.Form("lotto"&i&"4") tal5 = Request.Form("lotto"&i&"5") tal6 = Request.Form("lotto"&i&"6") tal7 = Request.Form("lotto"&i&"7")
31. juli 2002 - 16:29
#13
Dem laver jeg i for...next stykket
31. juli 2002 - 16:32
#14
Det kommer sig af at jeg startede med at lave det som en response.write - man kan stirre sig blind på det - tak for hjælpen
Kurser inden for grundlæggende programmering