MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"
response.write "SQL:" & MM_editQuery
response.end
Kan du posta resultatet av utskriften?
8 svar · 314 visningar · startad av plelkes
Hej,
jag har i dagar försökt få ordning på en egenhändigt gjort gästbok. Trots att jag flera gånger har gjort om allt från början, får jag hela tiden samma felmeddelande. Jag kör win98SE och MS Access 2000.
På min skriv- sida ser koden ut som följer
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/gastbok.asp" -->
<%
' *** Edit Operations: declare variables
MM_editAction = CStr(Request("URL"))
If (Request.QueryString <> "") Then
MM_editAction = MM_editAction & "?" & Request.QueryString
End If
' boolean to abort record edit
MM_abortEdit = false
' query string to execute
MM_editQuery = ""
%>
<%
' *** Insert Record: set variables
If (CStr(Request("MM_insert")) <> "") Then
MM_editConnection = MM_gastbok_STRING
MM_editTable = "Tabell1"
MM_editRedirectUrl = "/guestbook.asp"
MM_fieldsStr = "Namn|value|E-post|value|Kommentarer|value"
MM_columnsStr = "Namn|',none,''|E-post|',none,''|Kommentarer|',none,''"
' create the MM_fields and MM_columns arrays
MM_fields = Split(MM_fieldsStr, "|")
MM_columns = Split(MM_columnsStr, "|")
' set the form values
For i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_fields(i+1) = CStr(Request.Form(MM_fields(i)))
Next
' append the query string to the redirect URL
If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
End If
End If
End If
%>
<%
' *** Insert Record: construct a sql insert statement and execute it
If (CStr(Request("MM_insert")) <> "") Then
' create the sql insert statement
MM_tableValues = ""
MM_dbValues = ""
For i = LBound(MM_fields) To UBound(MM_fields) Step 2
FormVal = MM_fields(i+1)
MM_typeArray = Split(MM_columns(i+1),",")
Delim = MM_typeArray(0)
If (Delim = "none") Then Delim = ""
AltVal = MM_typeArray(1)
If (AltVal = "none") Then AltVal = ""
EmptyVal = MM_typeArray(2)
If (EmptyVal = "none") Then EmptyVal = ""
If (FormVal = "") Then
FormVal = EmptyVal
Else
If (AltVal <> "") Then
FormVal = AltVal
ElseIf (Delim = "'") Then ' escape quotes
FormVal = "'" & Replace(FormVal,"'","''") & "'"
Else
FormVal = Delim + FormVal + Delim
End If
End If
If (i <> LBound(MM_fields)) Then
MM_tableValues = MM_tableValues & ","
MM_dbValues = MM_dbValues & ","
End if
MM_tableValues = MM_tableValues & MM_columns(i)
MM_dbValues = MM_dbValues & FormVal
Next
MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"
If (Not MM_abortEdit) Then
' execute the insert
Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = MM_editQuery
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close
If (MM_editRedirectUrl <> "") Then
Response.Redirect(MM_editRedirectUrl)
End If
End If
End If
%>
<html>
<head>
<title>skriv</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form METHOD="POST" name="skriv" action="<%=MM_editAction%>">
<table width="600" border="0">
<tr>
<td width="68">Namn:</td>
<td width="522">
<input type="text" name="Namn" size="88">
</td>
</tr>
<tr>
<td width="68">E-post</td>
<td width="522">
<input type="text" name="E-post" size="88">
</td>
</tr>
<tr>
<td width="68">Inlägg</td>
<td width="522">
<textarea name="Kommentarer" cols="88" rows="10"></textarea>
</td>
</tr>
<tr>
<td width="68"> </td>
<td width="522">
<div align="right">
<input type="submit" name="Submit" value="Posta">
</div>
</td>
</tr>
</table>
<input type="hidden" name="MM_insert" value="true">
</form>
</body>
</html>
När jag kör i min PWS får jag hela tiden följande fel-meddelande:
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i INSERT INTO-uttryck.
/gastboken/skriv.asp, rad 90
Snälla ni hjälp mig!
MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"
response.write "SQL:" & MM_editQuery
response.end
Kan du posta resultatet av utskriften?
Hej Lars,
och tack för ditt svar. Som dock jag tyvärr inte riktigt förstår.
Vilket utskrift menar du? Jag postade ju i mitt ursprungsmeddelande:
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i INSERT INTO-uttryck.
/gastboken/skriv.asp, rad 90
det är det anda som händer på skärmen.
Sitter just nu på jobbet, men på väg hit läste jag att:
felmeddelande i stil med Microsoft OLE DB Provider for ODBC kan bero på inställningar hos PWS och den mappen där databasen finns skall ha både skriv- och läsrättigheter
Vad LarsG menade var att du skulle lägga till de två kodraderna precis under sql-satsen (se nedanstående kod). När du sedan exekverar (kör) sidan så kommer sql-satsen att skrivas ut. Kopiera den utskrivna satsen och posta den här. Då blir det lättare att se var det är för fel.
MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"
response.write "SQL:" & MM_editQuery
response.end
Det kan absolut vara felet att du har bindestreck (minustecken) i fältnamn. Det skall man inte ha.
mvh
Inga tecken förutom underscore '_' är att rekommendera...
klamra?
Tyvärr har jag ej hunnit med att ändra fältnamnet, men den önskade utskrivten ser ut som följer:
SQL:insert into Tabell1 (Namn,E-post,Kommentarer) values ('peter','ajaja@@','ajkkjala')
Nu fungerar det efter att jag ändrade från E-post till mail...men det går jätte segt nu när jag testar på min lokala disk Det tar ca 30 sekunder innan det händer ngt.
Ngra förslag varför?
Bifogar sidorna