21. april 2005 - 15:46Der er
23 kommentarer og 1 løsning
Problemer med update i SQL?
Jeg har en Access DB med DB'en FISH. FISH indeholder tabellen fishTbl. fishTbl indeholder 3 kolonner: fishId, lastFishDate og fishName. fishId er autonummeringsfelt og primærnøgle. lastFishDate er et tekstfelt. fishName er et tekstfelt.
D.v.s. et record set er = fishId + lastFishDate + fishName
Jeg vil gerne individuelt kunne opdaterer datoen for de forskellige arter via min formular UPDATEfish.
Det her kan man vist ikke, men mon ikke det giver (bare lidt) mening alligevel:
strSQL = "Update fishTbl set " strSQL = strSQL & "lastFishDate= ' " & Request.form("updateAborreField")& "' " strSQL = strSQL & " Where Id = 1"
strSQL = strSQL & "lastFishDate= ' " & Request.form("updateGeddeField")& "' " strSQL = strSQL & " Where Id = 2"
strSQL = strSQL & "lastFishDate= ' " & Request.form("updateGubbibookField")& "' " strSQL = strSQL & " Where Id = 3"
strSQL = strSQL & "lastFishDate= ' " & Request.form("updateLaksField")& "' " strSQL = strSQL & " Where Id = 4"
jeg ved ikke lige hvad du mener med det sidste du skrev Alt jeg mente var at du skulle lave en response.write strSQl inden du executer Så kan man måske se hvorfor du får den der "missing operator"
Først vil jeg gerne skrive den gamle dato ud - dels til orientering, men også som value i de individuelle form inputs. Den Respons.Write jeg nævnte herover stammer fra udskrivningen til orientering, hvor jeg 'looper' den:
rs.MoveNext Loop While Not rs.EOF
Ønsket er så at redigerer de datoer der udskrives i form inputtene. Det er det, jeg skal bruge DB-forbindelse nr. 2 til ...
Prøv da lige at lave en response.write(strSQL) INDEN din Conn.Execute(strSQL) Så kan vi se hvordan din sql ser ud ...det er jo der den siger der er fejl
Ja, den skriver godt nok SQL'en ud, men den skriver stadig:
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'compressId = 1 UNION Update compressTbl set lastcompressDate = '' Where compressId = 2 UNION Update compressTbl set lastcompressDate = '' Where compressId = 3 UNION Update compressTbl set lastcompressDate = '' Where compressId = 4'.
/admin/pages/compress.asp, line 35
Damn, om jeg kan se hvor det er der mangler en 'gnyf' eller hvor det er, der er en for meget ..
hmm underligt måske kan man ikke bruge Union i en update så prøv evt lige sætte paranteser om --------- <% Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("../../data/compress/compress.mdb") Conn.Open DSN
strSQL = "(Update compressTbl set " strSQL = strSQL & "lastcompressDate = ' " & Request.form("updateAdminField")& "' " strSQL = strSQL & " Where Id = 1" strSQL = strSQL & ") UNION (" strSQL = strSQL & "Update compressTbl set " strSQL = strSQL & "lastcompressDate = ' " & Request.form("updateCompressField")& "' " strSQL = strSQL & " Where Id = 2" strSQL = strSQL & ") UNION (" strSQL = strSQL & "Update compressTbl set " strSQL = strSQL & "lastcompressDate = ' " & Request.form("updateGuestbookField")& "' " strSQL = strSQL & " Where Id = 3" strSQL = strSQL & ") UNION (" strSQL = strSQL & "Update compressTbl set " strSQL = strSQL & "lastcompressDate = ' " & Request.form("updateNewsletterField")& "' " strSQL = strSQL & " Where Id = 4)" Response.write(strSQL) Conn.Execute(strSQL)
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.