Click to See Complete Forum and Search --> : Dreamweaver Insert Record - Help!


jazzy639
04-29-2005, 12:36 PM
Hello,

I have a page to add a new user in asp. I used the built-in dreamweaver funtion. I get the following error when clicking on the "insert record" button:

Microsoft JET Database Engine error '80040e14'

Syntax error in INSERT INTO statement.

/signup.asp, line 115


Here is the code:
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/users.asp" -->
<%
' *** Edit Operations: declare variables

Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd

Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId

Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i

MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
MM_editAction = MM_editAction & "?" & Server.HTMLEncode(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")) = "form1") Then

MM_editConnection = MM_users_STRING
MM_editTable = "users"
MM_editRedirectUrl = "/default.asp"
MM_fieldsStr = "Username|value|Password|value|Email|value|FirstName|value|LastName|value|Department|value"
MM_columnsStr = "Username|',none,''|Password|',none,''|Email|',none,''|FirstName|',none,''|LastName|',none,''|Departm ent|',none,''"

' create the MM_fields and MM_columns arrays
MM_fields = Split(MM_fieldsStr, "|")
MM_columns = Split(MM_columnsStr, "|")

' set the form values
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_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

Dim MM_tableValues
Dim MM_dbValues

If (CStr(Request("MM_insert")) <> "") Then

' create the sql insert statement
MM_tableValues = ""
MM_dbValues = ""
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_formVal = MM_fields(MM_i+1)
MM_typeArray = Split(MM_columns(MM_i+1),",")
MM_delim = MM_typeArray(0)
If (MM_delim = "none") Then MM_delim = ""
MM_altVal = MM_typeArray(1)
If (MM_altVal = "none") Then MM_altVal = ""
MM_emptyVal = MM_typeArray(2)
If (MM_emptyVal = "none") Then MM_emptyVal = ""
If (MM_formVal = "") Then
MM_formVal = MM_emptyVal
Else
If (MM_altVal <> "") Then
MM_formVal = MM_altVal
ElseIf (MM_delim = "'") Then ' escape quotes
MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
Else
MM_formVal = MM_delim + MM_formVal + MM_delim
End If
End If
If (MM_i <> LBound(MM_fields)) Then
MM_tableValues = MM_tableValues & ","
MM_dbValues = MM_dbValues & ","
End If
MM_tableValues = MM_tableValues & MM_columns(MM_i)
MM_dbValues = MM_dbValues & MM_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
Line 115>> MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close

If (MM_editRedirectUrl <> "") Then
Response.Redirect(MM_editRedirectUrl)
End If
End If

End If
%>
Any ideas?

Thanks

wmif
04-29-2005, 07:56 PM
holy crap. that reminds me why i hate dreamweaver code. :)

put this in the line 115 moving that down:

response.write mm_editquery
response.end()

then post the query string that this puts on the page.

jazzy639
04-30-2005, 12:20 PM
Hi,

I inserted those two lines at 115.

I now get this when i click the submit button:


insert into users (Username,Password,Email,FirstName,LastName,Department) values ('testusername','testpass','test@test.com','fname','lnametest','English')


The SQL statement seems to be working as text!

Any ideas for this?

Thanks

jazzy639
05-02-2005, 02:06 PM
Found the solution!!!

Password is a registered value for SQL statements. I chanegd it to Pass and it works!

Thanks anyway,

Jazzy639

Morpheous
05-24-2005, 01:50 PM
Hi. I am having the exact same problem as jazzy is. However, the solution does not seem to work for me. I have added the two lines as recommended by wmif, and got the text message that jazzy did. The problem for jazzy was the Password field, and having to name it Pass. I had that as well and changed it, but my page still does not work.
The problem may be in wmif's reply. After giving the two lines to add in, you typed: then post the query string that this puts on the page.
What does that mean?
Please help. I have been trying to get this to work for 4 months now!!!!!

Morpheous

wmif
05-24-2005, 06:58 PM
those 2 lines make the page show the query that you are sending to the db. comment out those lines to take the page back to normal. if you are still having problems, then uncomment them and post up the error details and the query.

Morpheous
05-25-2005, 09:05 AM
Thank you!!! Commenting out those two lines made it work!! You are a God, or at least a Major Deity!!!!!!!!!

Morpheous