Avatar billede gigaload Nybegynder
12. december 2002 - 12:36 Der er 32 kommentarer og
1 løsning

update

Jeg får følgende fejl...

Microsoft JET Database Engine error '80040e14'

Syntax error (missing operator) in query expression 'id ='.

/kenneth/oplysningen/rediger_person_oplysningen.asp, line 11


lægger lige koden:

<%
Response.Buffer = True

DIM Conn, Filsti, navn, efternavn, alder, mobil, adresse, by, postnummer, beskrivelse, id

Set Conn = Server.CreateObject("ADODB.Connection")
Filsti = Server.MapPath("person.mdb")
Conn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filsti)

SQL = "SELECT id, navn, efternavn,  alder, mobil, adresse, by, postnummer, beskrivelse FROM oplysningen WHERE id = " & Request.QueryString("id")
Set RS = Conn.Execute(SQL)

id = RS("id")
navn = RS("navn")
efternavn = RS("efternavn")
alder = RS("alder")
mobil = RS("mobil")
adresse = RS("adresse")
by = RS("by")
postnummer = RS("postnummer")
beskrivelse = RS("beskrivelse")

update = Request("update")

If update = "True" Then
    id = Request.QueryString("id")
    navn = Request.Form("navn")
    efternavn = Requets.Form("efternavn")
    alder = Request.Form("alder")
    mobil = Request.Form("mobil")
    adresse = Request.Form("adresse")
    by = Request.Form("by")
    postnummer = Request.Form("postnummer")
    beskrivelse = Request.Form("beskrivelse")
        SQL = "UPDATE oplysningen SET id = '" & id & "', navn = '" & navn & "', efternavn = '" & efternavn & "', alder = '" & alder & "', mobil = '" & mobil & "', adresse = '" & adresse & "', by = '" & by & "', postnummer = '" & postnummer & "', beskrivelse = '" & beskrivelse & "' WHERE id = " & Request.QueryString("id")
        Conn.Execute(SQL)
        Response.Redirect("oplysningen.asp")
End If

start = "<tr><td valign='top' width='200'>"
mellem = "</td><td valign='top' width='200'>"
slut = "</td></tr>"
%>

<html>
<head>
<title>Oplysningen</title>
</head>
<body>
<table border="1">

<%
Response.Write start & "Navn:" & mellem & "<input type='text' name='navn' value='" & navn & "'>" & slut
Response.Write start & "Efternavn:" & mellem & "<input type='text' name='efternavn' value='" & efternavn & "'>" & slut
Response.Write start & "Alder:" & mellem & "<input type='text' name='alder' value='" & alder & "'>" & slut
Response.Write start & "Mobil:" & mellem & "<input type='text' name='mobil' value='" & mobil & "'>" & slut
Response.Write start & "Adresse:" & mellem & "<input type='text' name='adresse' value='" & adresse & "'>" & slut
Response.Write start & "By:" & mellem & "<input type='text' name='by' value='" & by & "'>" & slut
Response.Write start & "Postnummer:" & mellem & "<input type='text' name='postnummer' value='" & postnummer & "'>" & slut
Response.Write start & "Beskrivelse:" & mellem & "<textarea rows='5' cols='32' name='beskrivelse'>" & beskrivelse & "</textarea>" & slut
%>

<tr>
<td width="200" colspan="2" valign="top"><a href="rediger_person_oplysningen.asp?update=true&id= & id">Update</a>&nbsp;&nbsp;&nbsp;<a href="oplysningen.asp">Oversigt</a></td>
</tr>
</table>
</body>
</html>
Avatar billede medions Nybegynder
12. december 2002 - 12:37 #1
SQL = "UPDATE oplysningen SET id = '" & id & "', navn = '" & navn & "', efternavn = '" & efternavn & "', alder = '" & alder & "', mobil = '" & mobil & "', adresse = '" & adresse & "', by = '" & by & "', postnummer = '" & postnummer & "', beskrivelse = '" & beskrivelse & "' WHERE id = '" & Request.QueryString("id") & "'"
        Conn.Execute(SQL)

//>Rune
Avatar billede lange Nybegynder
12. december 2002 - 12:38 #2
Request.QueryString("id") indeholder ikke noget
Avatar billede medions Nybegynder
12. december 2002 - 12:38 #3
Ellers er det fordi du sender tekst til din IDQuery!

//>Rune
Avatar billede gigaload Nybegynder
12. december 2002 - 12:40 #4
min idquery er et tal... og der er noget i det...
Avatar billede lange Nybegynder
12. december 2002 - 12:42 #5
Generelt er det en meget god ide at lave en response.write SQL, når du oplever problemer med din SQL queries. På den måde kan du se, hvordan den faktisk SQL query, som du sender til databasen, ser ud.

Og generelt er det en meget, meget skidt ide at sende værdier direkte til databasen fra querystring uden at validere dem først. Principielt giver det ondsindede brugere mulighed for at gøre hvad de lyster med databasen, så du bør checke om den modtagede id-værdi rent faktisk er et gyldigt id først (fx med isNumeric).
Avatar billede medions Nybegynder
12. december 2002 - 12:42 #6
SQL = "UPDATE oplysningen SET id = '" & id & "', navn = '" & navn & "', efternavn = '" & efternavn & "', alder = '" & alder & "', mobil = '" & mobil & "', adresse = '" & adresse & "', by = '" & by & "', postnummer = '" & postnummer & "', beskrivelse = '" & beskrivelse & "' WHERE id = " & CInt(Request.QueryString("id"))
        Conn.Execute(SQL)


//>Rune
Avatar billede eagleeye Praktikant
12. december 2002 - 12:43 #7
Du kan ikke overføre data uden du har en form...

Så du skal havde denne liniem med efter dette:
<table border="1">

<%
Response.write "<form method=""post"" action="""">"    '<---DENNE SKAL MED


Og efter sidste form-input

Response.write "</form>"
Avatar billede eagleeye Praktikant
12. december 2002 - 12:44 #8
Det ud over skal det ikke kun være et "simpelt"-link men et submit

Prøv i første omgang at lave en submit knap før </form>


Response.write "<input type=""submit"" value=""gem"" name=""gem"">"
Avatar billede eagleeye Praktikant
12. december 2002 - 12:45 #9
Hvis du skal havde id med som querystring så skal denne linie som jeg viste:

Response.write "<form method=""post"" action="""">"   


Være

Response.write "<form method=""post"" action=""?id="&id&""">"
Avatar billede lange Nybegynder
12. december 2002 - 12:47 #10
gigaload, hvis du kommer frem til den fejl, efter at have klikket på det link, som du outputter med

<a href="rediger_person_oplysningen.asp?update=true&id= & id">Update</a>

så ja, din id-værdi indeholder måske noget: et mellemrum. Prøv med

<a href="rediger_person_oplysningen.asp?update=true&id=" & id & ">Update</a>

i stedet for.

Eagleeye, man kan sagtens overføre data uden en form - fx lissom gigaload gør via et link.
Avatar billede eagleeye Praktikant
12. december 2002 - 12:49 #11
doh man skal også skrive skære det totalt ud i pap. NEJ man kan ikke overføre form data uden en form.. JA man kan overføre et ID med en QueryString... Men det er ikke det som er problemmet her...
Avatar billede eagleeye Praktikant
12. december 2002 - 12:52 #12
At rette linket så det får ID men hjælper ikke en pind... Form skal sumittes og dte gøres ikke med at almindeligt link,...


HVis du vil bruger tekst link og ikke en submit kanp kan du lave linket sådan her:

<a href="java script:document.formName.submit()">Opdater</a>


Så skal du lige endnu engang rette denne linie som jeg vist fra:
Response.write "<form method=""post"" action=""?id="&id&""">"

Til også at havde form navnet med..:
Response.write "<form method=""post"" name=""formName"" action=""?id="&id&""">"
Avatar billede gigaload Nybegynder
12. december 2002 - 12:55 #13
nu har jeg lavet det om til en form, men jeg får stadig samme fejl...
Avatar billede eagleeye Praktikant
12. december 2002 - 12:57 #14
Har du en submit knap eller stadig et link ??

Prøv at lave <form> tag linien sådan her:

Response.write "<form method=""post"" action=""?id="&id&""">"
Avatar billede gigaload Nybegynder
12. december 2002 - 12:59 #15
jeg har en form og en submit knap...


Response.Write "<form method='post' action='?update=true&id= &id'>"
Response.Write start & "Navn:" & mellem & "<input type='text' name='navn' value='" & navn & "'>" & slut
Response.Write start & "Efternavn:" & mellem & "<input type='text' name='efternavn' value='" & efternavn & "'>" & slut
Response.Write start & "Alder:" & mellem & "<input type='text' name='alder' value='" & alder & "'>" & slut
Response.Write start & "Mobil:" & mellem & "<input type='text' name='mobil' value='" & mobil & "'>" & slut
Response.Write start & "Adresse:" & mellem & "<input type='text' name='adresse' value='" & adresse & "'>" & slut
Response.Write start & "By:" & mellem & "<input type='text' name='by' value='" & by & "'>" & slut
Response.Write start & "Postnummer:" & mellem & "<input type='text' name='postnummer' value='" & postnummer & "'>" & slut
Response.Write start & "Beskrivelse:" & mellem & "<textarea rows='5' cols='32' name='beskrivelse'>" & beskrivelse & "</textarea>" & slut
Response.Write "<tr><td colspan='2'>"
Response.Write "<input type='submit' value='update'></form>&nbsp;&nbsp;&nbsp;<a href='oplysningen.asp'>Oversigt</a></td>"
Avatar billede eagleeye Praktikant
12. december 2002 - 13:00 #16
Ret denne linie :

Response.Write "<form method='post' action='?update=true&id= &id'>"

Til dette eller så overføres ID ikke som tallet men som " &id"
Response.write "<form method='post' action='?id="&id&"'>"
Avatar billede gigaload Nybegynder
12. december 2002 - 13:04 #17
samme fejl
Avatar billede eagleeye Praktikant
12. december 2002 - 13:06 #18
Din update SQL skal ikek opdater ID'et:


SQL = "UPDATE oplysningen SET navn = '" & navn & "', efternavn = '" & efternavn & "', alder = '" & alder & "', mobil = '" & mobil & "', adresse = '" & adresse & "', by = '" & by & "', postnummer = '" & postnummer & "', beskrivelse = '" & beskrivelse & "' WHERE id = " & id
Avatar billede eagleeye Praktikant
12. december 2002 - 13:06 #19
Prøv at uskrive den og vis det her:

Response.write SQL
Avatar billede gigaload Nybegynder
12. december 2002 - 13:18 #20
hvor skal man sætte Response.Write SQL
Avatar billede eagleeye Praktikant
12. december 2002 - 13:20 #21
Hvis du får fejl så prøv at udskirft disse to linier:

        Conn.Execute(SQL)
        Response.Redirect("oplysningen.asp")

med

  Response.write SQL
Avatar billede gigaload Nybegynder
12. december 2002 - 13:23 #22
Microsoft JET Database Engine error '80040e14'

Syntax error (missing operator) in query expression 'id ='.

/kenneth/oplysningen/rediger_person_oplysningen.asp, line 11


Den melder ikke andet end dette...
Avatar billede eagleeye Praktikant
12. december 2002 - 13:25 #23
Prøv at rette denne linie:
Response.write "<form method='post' action='?id="&id&"'>"

Til så det ikke er med ' men rigtige "

Response.write "<form method='post' action=""?id="&id&""">"
Avatar billede eagleeye Praktikant
12. december 2002 - 13:26 #24
trykker du op Submit knappen eller dit link Opdater ??
Avatar billede gigaload Nybegynder
12. december 2002 - 13:31 #25
nu har jeg fået den til ikke at melde fejlen, men den opdatere ikke...
Avatar billede eagleeye Praktikant
12. december 2002 - 13:31 #26
For hvis du trykker på linkt Opdater så vil fejlen komme da id ikke er med der. Fejlen skulle ikke komme hvis du trykker på Submit knappen.

Som før hvis du vil havde et link til at sende formen skal linket se sådan her ud:
<a href="java script:document.formName.submit()">Opdater</a>
Avatar billede eagleeye Praktikant
12. december 2002 - 13:32 #27
ho du har også en upload = true det skal med i <form> taggen:


Response.write "<form method='post' action=""?update=true&id="&id&""">"
Avatar billede gigaload Nybegynder
12. december 2002 - 13:33 #28
ja den har jeg med...
Avatar billede eagleeye Praktikant
12. december 2002 - 13:35 #29
Når du tjekker på update så tjekkers der på True og hvis du sender true er det ikke det samme så prøv at skriver:

If update = "true" Then
Avatar billede gigaload Nybegynder
12. december 2002 - 13:39 #30
nu melder den følgende fejl:


Microsoft JET Database Engine error '80040e14'

Syntax error in UPDATE statement.

/kenneth/oplysningen/rediger_person_oplysningen.asp, line 35
Avatar billede gigaload Nybegynder
12. december 2002 - 13:40 #31
den ser således ud:

SQL = "UPDATE oplysningen SET navn = '" & navn & "', efternavn = '" & efternavn & "', alder = '" & alder & "', mobil = '" & mobil & "', adresse = '" & adresse & "', by = '" & by & "', postnummer = '" & postnummer & "', beskrivelse = '" & beskrivelse & "' WHERE id = " & Request.QueryString("id")
Avatar billede eagleeye Praktikant
12. december 2002 - 13:41 #32
by er reserveret ord i SQL (ORDER BY) og så må kolonnen ikke hedde det samme, men det kan løses ved at sætte [] omkring [by]:

SQL = "UPDATE oplysningen SET navn = '" & navn & "', efternavn = '" & efternavn & "', alder = '" & alder & "', mobil = '" & mobil & "', adresse = '" & adresse & "', [by] = '" & by & "', postnummer = '" & postnummer & "', beskrivelse = '" & beskrivelse & "' WHERE id = " & id
Avatar billede gigaload Nybegynder
12. december 2002 - 13:44 #33
DEN virker!!!!!
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