Avatar billede oasen Nybegynder
27. april 2002 - 19:45 Der er 13 kommentarer og
1 løsning

Opdatér databasen - i tvivl om ' " ' "' " og flere SQL's

Jeg prøver at gøre det så kort så muligt. Jeg er i gang med at lave et sjovt billedearkiv. Når et billede vises, skal den aktuelle celle i kolonnen "Besoeg" i DB'en opdateres med én, så kan man se, hvor mange hits hvert billede har fået.

****************************************

strDato = Request.Querystring("dato")
strPic = Request.Querystring("pic")

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("pics.mdb")
Conn.Open DSN

strSQL = "SELECT * From picstab WHERE Dato = '" & strDato & "' And Filnavn = '" & strPic & "'"
Set rs = Conn.Execute(strSQL)
strBesoeg = rs("Besoeg") + 1
If isnull(rs("Besoeg")) Then
    strBesoeg = 1
End If

strSQL = "Update picstab set "
strSQL = strSQL & "Besoeg= '" & strBesoeg & "', " 
strSQL = strSQL & " Where Dato = '" & strDato & "' And Filnavn = '" & strPic '""
Set rs = Conn.Execute(strSQL)

Response.Write "<font class='small'>Dette billede er set " & strBesoeg & " gange.</font>"

*****************************************

Det eneste der ikke virker, er opdateringen. Her skal det aktuelle besøgstal hentes og tillægges én (strBesoeg) og gemmes igen i DB'en. Men der er rod i syntaksen. Nogen der kan hjælpe?
Avatar billede erikjacobsen Ekspert
27. april 2002 - 19:54 #1
Skal der '....' omkring  strBesoeg. Den er vel et tal i tabellen
Avatar billede oasen Nybegynder
27. april 2002 - 20:07 #2
Ja, det er bl.a. det jeg er i tvivl om. Jeg er ikke helt sikker på, hvor jeg skal bruge ' og " i selve update-afsnittet. Men kolonnen "Besoeg" er et tekstfelt. Ikke et talfelt.
Denne fejl opstår: "Syntax error in UPDATE statement."
Avatar billede erikjacobsen Ekspert
27. april 2002 - 20:18 #3
Så prøv først:

strSQL = strSQL & "Besoeg= " & strBesoeg & ", "
Avatar billede eagleeye Praktikant
27. april 2002 - 20:24 #4
den sidste linie i SQL er afsluttet forket ' er kommet uden for "" og mangler &:

Denne linie:
strSQL = strSQL & " Where Dato = '" & strDato & "' And Filnavn = '" & strPic '""

rettes til:

strSQL = strSQL & " Where Dato = '" & strDato & "' And Filnavn = '" & strPic & "'"
Avatar billede erikjacobsen Ekspert
27. april 2002 - 20:31 #5
Nå ja, eageleye. '"" blev til en kommentar.
Avatar billede oasen Nybegynder
27. april 2002 - 20:32 #6
Den der nu sådan ud:

strSQL = "Update picstab set "
strSQL = strSQL & "Besoeg= " & strBesoeg & ", " 
strSQL = strSQL & " Where Dato = '" & strDato & "' And Filnavn = '" & strPic & "'"
Set rs = Conn.Execute(strSQL)

Men det gav ingen bonus desværre. Den giver fejl i sidste linie!!?
Avatar billede eagleeye Praktikant
27. april 2002 - 20:41 #7
hvilken fejl?
Avatar billede oasen Nybegynder
27. april 2002 - 20:46 #8
Jo, nu skal du se. Når jeg trykker på en thumbnail ryger jeg til en side, hvor de store billeder vises. Men jeg får denne fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.

Spørg hvis der er noget, du ikke er med på. Jeg kan også lave et screenshot af databasen til dig.
Avatar billede oasen Nybegynder
27. april 2002 - 20:47 #9
Og siden hvor de store billeder vises er naturligvis den, jeg har postet i her.
Avatar billede eagleeye Praktikant
27. april 2002 - 20:53 #10
nej ikke i førte omgang.. Prøv at udskrive SQL sætningen det er tit letter at se hvor fejlen er så. Så copy-paste den sql sætningen som vises i browseren:

strSQL = strSQL & " Where Dato = '" & strDato & "' And Filnavn = '" & strPic & "'"
Response.write strSQL    '<--------- indsæt her
Set rs = Conn.Execute(strSQL)
Avatar billede erikjacobsen Ekspert
27. april 2002 - 20:55 #11
Dit datofelt er et tekstfelt og ikke en af Access-dato-typerne ??
Avatar billede eagleeye Praktikant
27. april 2002 - 20:55 #12
How så lige du har et , inden WHERE i denne linier:
strSQL = strSQL & "Besoeg= '" & strBesoeg & "', " 

Rettes til:
strSQL = strSQL & "Besoeg= '" & strBesoeg & "' "
Avatar billede erikjacobsen Ekspert
27. april 2002 - 20:55 #13
Nå nej, det er kommaet:

strSQL = strSQL & "Besoeg= " & strBesoeg & ", " 

skal være

strSQL = strSQL & "Besoeg= " & strBesoeg & " "
Avatar billede oasen Nybegynder
27. april 2002 - 21:51 #14
Så virker det hele perfekt!!

Den rigtige kode ser nu sådan ud:

strSQL = "Update picstab set "
strSQL = strSQL & "Besoeg= '" & strBesoeg & "' " 
strSQL = strSQL & " Where Dato = '" & strDato & "' And Filnavn = '" & strPic & "'"
Set rs = Conn.Execute(strSQL)

Mange tak for hjælpen, begge to :)
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