webForumDet fria alternativet
Logga in / Bli medlem

Skrivskydd

ASP

7 svar · 203 visningar · startad av Mika3l

Medlem sedan nov. 20018 492 inlägg
Trådstart#1

Hej!
Jag håller på med ett litet meddelandesystem.
Jag har provat att skicka ett meddelande men jag får ett felmeddelande att det inte går att uppdatera databasen p.g.a att den är skrivskyddad.
Men det är inte skrivskyddad!
Körde då med rs.AddNew...rs.Update(gammal modell) men innan det så provade jag en INSERT kod.
Men då fick jag ett felmeddelande direkt;
Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A0400)
Programsats förväntas.
/ingenjorerna/skrivmess.asp, line 9
"INSERT INTO mess (fran, till, rubrik, mess, datum, last) VALUES('" & Session("user") & "','" & Request.Form("till") & "','" & Request.Form("rubrik") & "','" & Request.Form("mess") & "', now(), False)"

Kod

"INSERT INTO mess (fran, till, rubrik, mess, datum, last) VALUES('" & Session("user") & "','" & Request.Form("till") & "','" & Request.Form("rubrik") & "','" & Request.Form("mess") & "', now(), False)"

Tacksam för svar!

/Mika3l

Medlem sedan dec. 200012 464 inlägg
#2

Hur ser hela koden ut? Du behöver göra execute.

connect.execute "INSERT INTO mess (fran, till, rubrik, mess, datum, [last]) VALUES('" & Session("user") & "','" & Request.Form("till") & "','" & Request.Form("rubrik") & "','" & Request.Form("mess") & "', now(), False)",,128

du lär också få problem med ordet last som är ett reserverat ord i SQL. Man kan skriva det inom [] så skall det gå bra.

Medlem sedan nov. 20018 492 inlägg
#3

Jag skickar hela sidan.

<!-- #Include file="check.asp" -->
<%
If Request.Form("skriv") = "true" Then
If Request.Form("till") = "" Then
Response.Write"<script language=javascript>alert('Du måste välja till vilken medlem meddelandet ska skickas!\n\nKlicka på Bakåt/Back i din webbläsare och välj medlem.')</script>"
Else
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("mess.mdb")
"INSERT INTO mess (fran, till, rubrik, mess, datum, last) VALUES('" & Session("user") & "','" & Request.Form("till") & "','" & Request.Form("rubrik") & "','" & Request.Form("mess") & "', now(), False)"
Connection.Execute(SQL)
Set Connection = Nothing
Response.Write"<script language=javascript>alert('Meddelandet är skickat!')</script>"
Response.Redirect"skrivmess.asp"
End If
End If
%>
<html>
<head>
<title>Skriv meddelande</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>

<center><strong>Skriv meddelande</strong></center>
<br>
<form method="post" action="skrivmess.asp">
<table align="center" cellpadding="2">
 <tr>
  <td>
<font color="#000000">
Till:
</font>
  </td>
  <td>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; dbq=" & Server.MapPath("members.mdb")
Set rst = Conn.Execute("SELECT user FROM members ORDER BY user")
%>
<select name="till">
<option value=""> -- Välj medlem -- </option>
<option value="">--------------------------</option>
<% Do Until rst.EOF %>
<option value="<%=rst("user")%>"><%=rst("user")%></option>
<%
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
Conn.Close
Set Conn = Nothing
%>
  </td>
 </tr>
 <tr>
  <td>
<font color="#000000">
Rubrik:
</font>
  </td>
  <td>
<input type="text" name="rubrik" maxlength="70">
  </td>
 </tr>
</table>
<center>
Meddelande:<br>
<textarea name="mess" rows="13" cols="50" maxlength="4000"></textarea>
<br><br>
<input type="hidden" name="skriv" value="true">
<input type="submit" value="  Skicka!  ">
&nbsp;&nbsp;&nbsp;
<input type="reset" value="  Rensa  ">
</form>
</center>

</body>
</html>

/Mika3l

Medlem sedan dec. 200012 464 inlägg
#4
Connection.Open "Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("mess.mdb")
[b]sql = [/b]"INSERT INTO mess (fran, till, rubrik, mess, datum, [last]) VALUES('" & Session("user") & "','" & Request.Form("till") & "','" & Request.Form("rubrik") & "','" & Request.Form("mess") & "', now(), False)"
Connection.Execute SQL
Medlem sedan nov. 20018 492 inlägg
#5

Dumma lilla mig, glömde skriva SQL = framför, ska prova...
Loggar in...
Går till inkorgen...
Går till skriv meddelande...
Skriver...
Skickar...

Nej!
Jag fick ett felmeddelande!
Det ser ut så här:

Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Drivrutin för ODBC Microsoft Access] Operationen måste använda en fråga som kan uppdateras.
/ingenjorerna/skrivmess.asp, line 10

Koden ser nu ut så här:

<!-- #Include file="check.asp" -->
<%
If Request.Form("skriv") = "true" Then
If Request.Form("till") = "" Then
Response.Write"<script language=javascript>alert('Du måste välja till vilken medlem meddelandet ska skickas!\n\nKlicka på Bakåt/Back i din webbläsare och välj medlem.')</script>"
Else
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("mess.mdb")
SQL = "INSERT INTO mess (fran, till, rubrik, mess, datum, last) VALUES('" & Session("user") & "','" & Request.Form("till") & "','" & Request.Form("rubrik") & "','" & Request.Form("mess") & "', now(), False)"
Connection.Execute(SQL) ///rad 10[/red]
Set Connection = Nothing
Response.Write"<script language=javascript>alert('Meddelandet är skickat!')</script>"
Response.Redirect"skrivmess.asp"
End If
End If
%>

/Mika3l

Medlem sedan feb. 20012 412 inlägg
#6

Hej!

Låter som du inte har tillräckliga rättigheter.
http://cgi.webforum.nu/wf/Forum11/HTML/001680.html

Sedan är datum ett reserverat ord i access, prova skriv [datum]

mvh Jörgen :)

Medlem sedan dec. 200012 464 inlägg
#7

Då är det problem med rättigheterna på den katalog där databasen ligger.

IUSR_<servernamn> måste ha rxwd

Det här har varit uppe tidigare så du kan ju söka på updatable query så lär du hitta några trådar.

Medlem sedan nov. 20018 492 inlägg
#8

Tack!
Nu fungerar det!

/Mika3l

257 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)