Avatar billede wandaxp Praktikant
14. juli 2002 - 23:43 Der er 15 kommentarer og
1 løsning

SQL streng i ASP

strSQL = "UPDATE Deltager SET Adresse='" & Request.form("Adresse") & "' AND Postnr='" & Request.form("Postnr") & "' AND By='" & Request.form("By") & "' AND Tlf='" & Request.form("Tlf") & "' WHERE Kaldenavn='" & Brugernavn & "'"

Hvad er der galdt med denne SQL streng, den lader som om den kører den, men databasen opdateres ikke, og forbindelsen er ok?

På forhånd TAK for hjælpen....
Avatar billede keysersoze Ekspert
14. juli 2002 - 23:45 #1
der må ske et eller andet... en fejlmeddelelse eller noget
Avatar billede wandaxp Praktikant
14. juli 2002 - 23:47 #2
Nej, den skriver som om det bare er gennemført, men felterne i databasen ændres ikke...
Avatar billede whatever Nybegynder
14. juli 2002 - 23:47 #3
Prøv dette:

strSQL = "UPDATE Deltager SET Adresse='" & Request.form("Adresse") & "',  Postnr='" & Request.form("Postnr") & "', By='" & Request.form("By") & "',  Tlf='" & Request.form("Tlf") & "' WHERE Kaldenavn='" & Brugernavn & "'"
Avatar billede whatever Nybegynder
14. juli 2002 - 23:48 #4
Du skal ikke bruge AND men istedet ,
Avatar billede hells Nybegynder
14. juli 2002 - 23:48 #5
Du skal bruge kommaer i stedet for and:
strSQL = "UPDATE Deltager SET Adresse='" & Request.form("Adresse") & "', Postnr='" & Request.form("Postnr") & "', By='" & Request.form("By") & "', Tlf='" & Request.form("Tlf") & "' WHERE Kaldenavn='" & Brugernavn & "'"
prøv lige at se, om det virker
Avatar billede wandaxp Praktikant
14. juli 2002 - 23:50 #6
det giver denne fejl :

Microsoft JET Database Engine error '80040e14'

Syntax error in UPDATE statement.
Avatar billede keysersoze Ekspert
14. juli 2002 - 23:57 #7
samtidig med som whatever skriver at du skal bruge komme i steder for AND, så skal du så vidt der er nogle tal-felter fjerne ' '
Avatar billede wandaxp Praktikant
14. juli 2002 - 23:59 #8
alle felter er i databasen defineret som tekst felter, da de i tlf og kan bruge mellemrum og der er ingen kontrol på postnr...
Avatar billede keysersoze Ekspert
15. juli 2002 - 00:13 #9
prøv at kom med koden som den er nu
Avatar billede wandaxp Praktikant
15. juli 2002 - 00:16 #10
fra den side der gemmer informationerne :

Dim con, upd, data, dbpath, strSQL, Brugernavn
' åbner databaseforbindelsen
dbPath = "d:\home\bak-elteknik.dk\scripts\res.mdb"

    Set Con = Server.CreateObject("ADODB.Connection")
    Con.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & dbPath

    ' Sætning tjecker for om der er ændret i data?   
    If ((Session("Adresse1") <> Request.form("Adresse")) OR (Session("Postnr1") <> Request.form("Postnr")) OR (Session("By1") <> Request.form("By")) OR (Session("Tlf1") = Request.form("Tlf"))) then
        call GEM
      else
        call IKKE
    end if

SUB GEM
  ' Opdater ændringer i databasen
  Brugernavn=Session("Brugernavn")
  strSQL = "UPDATE Deltager SET Adresse='" & Request.form("Adresse") & "' AND  Postnr=" & Request.form("Postnr") & " AND By='" & Request.form("By") & "' AND  Tlf='" & Request.form("Tlf") & "' WHERE Kaldenavn='" & Brugernavn & "'"
  Con.Execute(strSQL)
  response.write strSQL
  Response.write "Dine oplysninger er nu blevet opdateret<BR>TAk fordi du holder os opdateret med oplysningerne :-)"
END SUB

SUB IKKE
    Response.write "Du har ikke lavet nogle ændringer...."
END SUB

con.Close()
Avatar billede wandaxp Praktikant
15. juli 2002 - 00:18 #11
og fra siden med indtastningsfelterne :

    Dim con, upd, data, query, dbpath

' åbner databaseforbindelsen
dbPath = "d:\home\bak-elteknik.dk\scripts\res.mdb"

    Set Con = Server.CreateObject("ADODB.Connection")
    Con.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & dbPath

    ' SQL sætning for at checke brugernavnet
    query = "SELECT * FROM Deltager WHERE Kaldenavn='" & Request.Form("BrugerNavn") & "' AND Kode='" & Request.Form("Kode") & "'"
    Set data = Con.Execute(query)

    ' Tjecker om brugeren eksister
    If data.bof OR data.eof Then
      ' Deltager findes ikke
      Response.write "Kaldenavn eller kode er forkert skrevet - Prøv igen" & "<BR><H6><A HREF='kode.htm'>Tilbage</A>"
      data.Close()
      con.Close()
    Else
      session("Brugernavn")=Request.form("Brugernavn")
      Session("Kode")=request.form("Kode")
      session("Navn1")=data("Navn")
      session("Adresse1")=data("Adresse")
      session("Postnr1")=data("Postnr")
      session("By1")=data("By")
      session("Tlf1")=data("Tlf")
      response.write "<FORM NAME='Skift' METHOD='post' ACTION='gemoplysninger.asp'>"
      response.write "<TABLE BORDER='0'>"
      response.write "<TR><TD>Navn : </TD>"
      response.write "<TD>" & session("Navn1") & "</TD></TR>"
      response.write "<TR><TD>Adresse : </TD>"
      response.write "<TD><INPUT TYPE='text' NAME='Adresse' SIZE='30' VALUE='" & data("Adresse") & "'></TD></TR>"
      response.write "<TR><TD>Post nr. : </TD>"
      response.write "<TD><INPUT TYPE='text' NAME='Postnr' SIZE='4' VALUE='" & data("Postnr") & "'></TD></TR>"
      response.write "<TR><TD>By : </TD>"
      response.write "<TD><INPUT TYPE='text' NAME='By' SIZE='30' VALUE='" & data("By") & "'></TD></TR>"
      response.write "<TR><TD>Tlf. : </TD>"
      response.write "<TD><INPUT TYPE='text' NAME='Tlf' SIZE='8' VALUE='" & data("Tlf") & "'></TD></TR>"
      response.write "<TR><TD>Evt. oplysninger : </TD>"
      response.write "<TD>" & data("Oplysninger") & "</TD></TR>"
      response.write "<TR></TR><tr>"
      response.write "<td><CENTER><INPUT NAME='reset' TYPE='reset' VALUE='Tilbage'></TD>"
      response.write "<td><CENTER><INPUT NAME='submit' TYPE='submit' VALUE='Gem ændringer'></TD></TR>"
      response.write "</TABLE></FORM>"
    End If
data.Close()
con.Close()
Avatar billede keysersoze Ekspert
15. juli 2002 - 00:46 #12
så har du vist heller ikke fulgt særlig meget med her... ændre til dette;

SUB GEM
  ' Opdater ændringer i databasen
  Brugernavn=Session("Brugernavn")
  strSQL = "UPDATE Deltager SET Adresse='" & Request.form("Adresse") & "', Postnr=" & Request.form("Postnr") & ", By='" & Request.form("By") & "',  Tlf='" & Request.form("Tlf") & "' WHERE Kaldenavn='" & Brugernavn & "'"
  Con.Execute(strSQL)
  response.write strSQL
  Response.write "Dine oplysninger er nu blevet opdateret<BR>TAk fordi du holder os opdateret med oplysningerne :-)"
END SUB


og så lige en sidste ting - er du 100% sikker på at din session("brugernavn" indeholder en værdi?
Avatar billede wandaxp Praktikant
15. juli 2002 - 00:48 #13
ja 100%
har brugt response.wrte på den og den har den rigtige værdi og jeg har også haft det ændre til , istedet for AND men ændrede det lige tilbage for at teste det på en anden måde....
Avatar billede keysersoze Ekspert
15. juli 2002 - 01:04 #14
så prøv;

SUB GEM
  ' Opdater ændringer i databasen
  Brugernavn=Session("Brugernavn")
  strSQL = "UPDATE Deltager SET Adresse='" & Request.form("Adresse") & "', Postnr=" & Request.form("Postnr") & ", [By]='" & Request.form("By") & "',  Tlf='" & Request.form("Tlf") & "' WHERE Kaldenavn='" & Brugernavn & "'"
  Con.Execute(strSQL)
  response.write strSQL
  Response.write "Dine oplysninger er nu blevet opdateret<BR>TAk fordi du holder os opdateret med oplysningerne :-)"
END SUB
Avatar billede wandaxp Praktikant
15. juli 2002 - 01:12 #15
TAK keysersoze, lav lige et svar så får du pointene....
By er jo selvfølgelig et reserveret ord hehe havde jeg helt glemt... TAK :-)
Avatar billede keysersoze Ekspert
15. juli 2002 - 01:21 #16
svar så
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