Jag bygger just nu på ett nyhetsscript, ett väldigt simpelt. Saken är den att jag inte kan spara information i databasen. Det går att skriva ut nyheterna elegant.
Jag ser inget fel på min kod:
<%
Case "spara"
Dim rubrik, text, datum
rubrik = Trim(Request.Form("rubrik"))
text = Trim(Request.Form("text"))
datum = Trim(Request.Form("datum"))
If Len(rubrik) > 0 Then
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/databas.mdb")
Set Rs = Conn.Execute("INSERT INTO Post (Datum, Rubrik, Text) VALUES ('" & datum & "','" & rubrik & "','" & text & "')")
Response.Write("<b>Nyheten är sparad!</b>")
Conn.Close
Set Conn = Nothing
End If
%>
[kod]
Här är formuläret:
[kod]
<form name="post" method="post" action="nyheter.asp?visa=spara">
Datum:<input tpe="text" name="datum"><br>
Rubrik:<input type="text" name="rubrik"><br>
Text:<textarea name="text"></textarea><br>
<input type="submit" value="skicka">
</form>
Får du något felmeddelande, så inkludera detta i felbeskrivningen. (Det känns som att du skulle kunna få ett Syntax error in INSERT INTO-statement eller liknande)
red: dessutom; att skapa ett recordset när man gör INSERT, UPDATE eller DELETE är onödigt, eftersom dylika frågor inte returnerar någonting.
I mina tester med Access 2000 går det precis lika bra att använda apostrofer, och det känns ju mest normalt, eftersom det (vad jag vet) inte finns någon annan dbms som använder annat än apostrofer för att markera datumvärden.
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][Drivrutin för ODBC Microsoft Access] Typblandningsfel i villkorsuttryck.
/Nyheter/nyheter.asp, line 44
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i datum i frågeuttrycket '##'.
/Nyheter/nyheter.asp, line 44
Så här ser "spara" ut just nu. Rubrik och Datum är text, Nyhet är PM.
<%
Case "spara"
Dim rubrik, nyhet, datum
rubrik = Trim(Request.Form("rubrik"))
nyhet = Trim(Request.Form("nyhet"))
datum = Trim(Request.Form("datum"))
If Len(rubrik) > 0 Then
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/databas.mdb")
Set Rs = Conn.Execute("INSERT INTO Post (Datum, Rubrik, Nyhet) VALUES ('" & datum & "','" & rubrik & "','" & nyhet & "')")
Response.Write("<b>Nyheten är sparad!</b>")
Conn.Close
Set Conn = Nothing
End If
%>
Response.end finns med i koden för att inte asp-sidan skall fortsätta exekveras, alltså om du använde det jag gav dig senast så är det till för att slänga fram SQL-frågan till browsern för felsökning. Ingenting sparas alltså i databasen.