|
| Opdater i database Fra : Keld Fuglsang |
Dato : 18-04-01 17:21 |
|
Hej
jeg skal have lavet så en bruger kan opdatere i en database via en HTML
formular men jeg får denne fejl :
Microsoft OLE DB Provider for ODBC Drivers fejl '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Invalid SQL statement; expected
'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.
/opdater.asp, linje 26
og mit ASP script ser sådan ud :
<html>
<title>The Complex</title>
<head>
</head>
<body>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("borde.mdb")
Conn.Open DSN
' SQL sætning opbygges
strSQL = "Update borde set"
strSQL = strSQL & "Navn= '" & Request.Form("Navn") ', "
strSQL = strSQL & "Nickname= '" & Request.Form("Nickname") ', "
strSQL = strSQL & "Adresse= '" & Request.Form("adresse") ', "
strSQL = strSQL & "By= '" & Request.Form("by") ', "
strSQL = strSQL & "Post nummer= '" & Request.Form("post nummer") ', "
strSQL = strSQL & "Email= '" & Request.Form("email") ', "
strSQL = strSQL & "Hjemmeside= '" & Request.Form("hjemmeside") ', "
strSQL = strSQL & " Where bord = 1"
' SQL sætning eksekveres
Conn.Execute("strSQL")
' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
<h1>Databasen er opdateret!</h1>
</body>
</html>
Mvh
Kenneth Fuglsang
kenneth-fuglsang@pc.dk
| |
Jørn Andersen (18-04-2001)
| Kommentar Fra : Jørn Andersen |
Dato : 18-04-01 20:51 |
|
On Wed, 18 Apr 2001 18:21:29 +0200, "Keld Fuglsang"
<keld-fuglsang@mail.dk> wrote:
Hej Keld,
Sjovt nok har jeg netop i dag tumlet med samme problem. Min løsning
var:
<SNIP>
>strSQL = strSQL & "By= '" & Request.Form("by") ', "
Prøv med:
>strSQL = strSQL & "[By]= '" & Request.Form("by") ', "
- altså firkant parantes omkring By - det er sikkert et reserveret ord
eller noget i den retning.
Good luck,
Jørn
| |
Lauritz Jensen (18-04-2001)
| Kommentar Fra : Lauritz Jensen |
Dato : 18-04-01 20:56 |
|
Keld Fuglsang wrote:
>
> ' SQL sætning opbygges
> strSQL = "Update borde set"
> strSQL = strSQL & "Navn= '" & Request.Form("Navn") ', "
Jeg tror du gerne vil have et mellemrum imellem "set" og "navn" ((synges
på bakke-snagvendt-sang-melodien =>) ellers bliver det til "setnavn")
> [... senere i samme sql streng]
> strSQL = strSQL & "Hjemmeside= '" & Request.Form("hjemmeside") ', "
> strSQL = strSQL & " Where bord = 1"
Men jeg tror ikke du gerne vil have et "," inden "where".
Hint: Brug en response.write til at skrive din sql ud i browseren (evt.
med hjælp fra noget <pre></pre>) og klip-kopier det ind i en forspørgsel
i access. Så får du nogle udenmærkede fejlbeskrivelser.
--
Lauritz
| |
Lauritz Jensen (18-04-2001)
| Kommentar Fra : Lauritz Jensen |
Dato : 18-04-01 20:58 |
|
Keld Fuglsang wrote:
>
> strSQL = strSQL & "Post nummer= '" & Request.Form("post nummer") ', "
(jeg havde ikke set den med "by", pinligt, men jeg har fundet en til)
Du bliver nok også nød til at skrive "[Post nummer]", da der er
mellemrum i kolonnenavnet (dårlig stil).
--
Lauritz
| |
Lauritz Jensen (18-04-2001)
| Kommentar Fra : Lauritz Jensen |
Dato : 18-04-01 21:01 |
|
Keld Fuglsang wrote:
>
> <html>
> <title>The Complex</title>
> <head>
> </head>
(mere, det her er jo en sand guldgruppe
Put <title></title> ind i <head></head>, ellers er der jo ikke nogen
grund til at have en head-sektion overhovedet (den er afair ikke
påkrævet) (og nej, det har ikke noget med sql'en af gøre).
> Conn.Execute("strSQL")
jeg tror du mener Conn.Execute(strSQL) (ellers prøver du har udfører en
meget lille sql
--
Lauritz
| |
|
|