NNicklasMedlem sedan juni 200133 inlägg Trådstart#1 Jag håller på att bli tokig, vad är det för fel i denna kod ? -->
Default.asp
<html>
<body>
<form method="POST" action="link.asp">
<input type="text" size="30" name="namn" value="Adress"><br>
<input type="text" size="30" name="desc" value="Beskrivning"><br>
<input type="submit" value="Uppdatera">
</form>
</body>
</html>
Och så link.asp
<%
Set Databas = Server.CreateObject("Adodb.Connection")
Databas.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\databas\db1.mdb")
Databas.ConnectionString = "Data Source = '"&MdbFilePath&"'"
Databas.open
namn = Request.Form("namn")
desc = Request.Form("desc")
strSQL = "Insert Into db"
strSQL = srtSQL & "( namn, desc )"
strSQL = strSQL & "Values('"&namn&"','"&desc&"');"
Response.write( strSQL )
Databas.Execute( strSQL )
%>
Jag får följande felmeddelande:
Feltyp:
Microsoft JET Database Engine (0x80004005)
Syntaxfel i unionsfråga.
/databas/link.asp, line 13
Plz Help / Nicklas
NNicklasMedlem sedan juni 200133 inlägg Japp, jag har försökt med alla möjliga namn, skapat nya databaser med andra namn osv.
Tabellen heter db och fälten namn & desc
LLarsGMedlem sedan dec. 200012 464 inlägg Desc är ett reserverat ord i SQL, så det är inget bra som kolumnnamn.
Det är bäst om du kan döpa om kolumnen.
Annars så kan du skriva
strSQL = "Insert Into db"
strSQL = srtSQL & "( namn, [desc] )"
strSQL = strSQL & "Values('"&namn&"','"&desc&"');"
om du använder Access,SQL server 7 eller Sybase.
Om inte så är den standardmässiga syntaxen att ange sådana namn inom ""
strSQL = "Insert Into db"
strSQL = srtSQL & "( namn, ""desc"" )"
strSQL = strSQL & "Values('"&namn&"','"&desc&"');"
NNicklasMedlem sedan juni 200133 inlägg Jag testade men inget av det funkade.
Men om jag skriver -->
<%
Set Databas = Server.CreateObject("Adodb.Connection")
Databas.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\databas\db1.mdb")
Databas.ConnectionString = "Data Source = '"&MdbFilePath&"'"
Databas.open
strSQL = "Insert Into db (namn, [desc]) Values('Test','testigen')"
Response.write( strSQL )
Databas.Execute( strSQL )
%>
Så funkar det.
Har jag missat något i följande ?
namn = Request.Form("namn")
desc = Request.Form("desc")
strSQL = "Insert Into db"
strSQL = srtSQL & "( namn, [desc] )"
strSQL = strSQL & "Values('"&namn&"','"&desc&"')"
Kan tillägga att jag kör med Win2k, IIS5.0 och Access 2000
/Nicklas
LLarsGMedlem sedan dec. 200012 464 inlägg vad händer när du kör den koden? Dvs
strSQL = "Insert Into db"
strSQL = srtSQL & " ( namn, [desc] ) "
strSQL = strSQL & "Values('" & namn & "','" & desc & "')"
Något felmeddelande?
Hur ser strSQL ut?
Innehåller något av fälten en '?
I så fall så får du skriva
namn = replace(Request.Form("namn"),"'","''")
desc = replace(Request.Form("desc"),"'","''")
NNicklasMedlem sedan juni 200133 inlägg Jag får samma felmeddelande.
Jag ska testa att börja om från början med en ny databas andra namn osv en tredje gång 
CCy-4Medlem sedan maj 200180 inlägg Hallå!
Jag vet inte om det kan vara några av de sakerna som de andra har sagt också men det jag skulle ändra på först är:
strSQL = "Insert Into db"
strSQL = srtSQL & "( namn, desc )"
strSQL = strSQL & "Values('"&namn&"','"&desc&"');"
Byt ut den mot:
strSQL = "Insert Into db"
strSQL = [b]strSQL[/b] & "( namn, desc )"
strSQL = strSQL & "Values('"&namn&"','"&desc&"');"
Sen kanske du får göra några av de andra sakerna också.
[Redigerat av Cy-4 den 04 okt 2001]
NNicklasMedlem sedan juni 200133 inlägg Skriiik, ett stavfel.
Tack nu funkar det allt som det ska.