Avatar billede kovalt Nybegynder
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)
Avatar billede avlund Nybegynder
31. juli 2002 - 16:10 #1
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.
Avatar billede kovalt Nybegynder
31. juli 2002 - 16:11 #2
41 er der hvor linie 41 starter og de to "" er til for at afslutte linie 40 er det ikke rigtigt
Avatar billede medions Nybegynder
31. juli 2002 - 16:11 #3
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
Avatar billede medions Nybegynder
31. juli 2002 - 16:12 #4
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
Avatar billede keysersoze Ekspert
31. juli 2002 - 16:12 #5
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
Avatar billede medions Nybegynder
31. juli 2002 - 16:13 #6
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
Avatar billede kovalt Nybegynder
31. juli 2002 - 16:13 #7
linieskitet er kun opstået fordi der ikke er plads nok her i den rigtige kode eksisterer det ikke
Avatar billede avlund Nybegynder
31. juli 2002 - 16:13 #8
Præcis hvad jeg sagde.

Hvorfor vil du bruge "" til at afslutte linien? Det er komplet unødvendigt.
Avatar billede kovalt Nybegynder
31. juli 2002 - 16:19 #9
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
Avatar billede kovalt Nybegynder
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
Avatar billede eagleeye Praktikant
31. juli 2002 - 16:28 #11
Vis lige hvor du laver variablene

tal1  til  tal7
Avatar billede eagleeye Praktikant
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")
Avatar billede kovalt Nybegynder
31. juli 2002 - 16:29 #13
Dem laver jeg i for...next stykket
Avatar billede kovalt Nybegynder
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
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester