Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Chriss Miller on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

multiple rows insert

Status
Not open for further replies.

qasmi

Programmer
Joined
Feb 19, 2004
Messages
9
Location
PK
I am inserting multiple rows in access database via asp. I wrote a script which actually insert multiple rows but that only works with traditional recordset format. I need to make it working with the dreamweaver insert behaviour. my problem is when i change values of the MM_fieldStr row. I need 'selectDepartments|value' changed to a variable 'k'. how can i change this and in working condition. Any ideas....

MM_fieldsStr = "txtValues|value|selectDepartments|value"

All code is below :

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/connection.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 & "?" & 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_cm_STRING
MM_editTable = "test"
MM_editRedirectUrl = "success.html"

stringid=Request.Form("txtValues")

For i = 1 To Len( stringid)
j= mid(stringid,i,1)
if j = "," then
MM_fieldsStr = "txtValues|value|selectDepartments|value"
MM_columnsStr = "name|',none,''|dept_id|none,none,NULL"
k=""
else
k=k & j
end if
next
if len(k)<=0 then
else
MM_fieldsStr = "txtValues|value|selectDepartments|value"
MM_columnsStr = "name|',none,''|dept_id|none,none,NULL"

end if


' 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
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close

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

End If
%>
<%
Dim RsDepartments
Dim RsDepartments_numRows

Set RsDepartments = Server.CreateObject("ADODB.Recordset")
RsDepartments.ActiveConnection = MM_cm_STRING
RsDepartments.Source = "SELECT * FROM Department"
RsDepartments.CursorType = 0
RsDepartments.CursorLocation = 2
RsDepartments.LockType = 1
RsDepartments.Open()

RsDepartments_numRows = 0
%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="form1" method="POST" action="<%=MM_editAction%>">
<p>
<input name="txtValues" type="text" id="txtValues">
</p>
<p>
<select name="selectDepartments" size="10" multiple id="selectDepartments">
<%
While (NOT RsDepartments.EOF)
%>
<option value="<%=(RsDepartments.Fields.Item("Dept_ID").Value)%>"><%=(RsDepartments.Fields.Item("Dept_Name").Value)%></option>
<%
RsDepartments.MoveNext()
Wend
If (RsDepartments.CursorType > 0) Then
RsDepartments.MoveFirst
Else
RsDepartments.Requery
End If
%>
</select>
</p>
<p>
<input type="submit" name="Submit" value="Submit">
</p>

<input type="hidden" name="MM_insert" value="form1">
</form>

</body>
</html>
<%
RsDepartments.Close()
Set RsDepartments = Nothing
%>
 
here is a DELETE version of it:
just apply INSERT command....YES it HAS to be a command that whole "builtin" insert record behavior will not fly and even if u loop it so it does .....it will generate so much code that u don't really need.
that my advise....I dont know how bady u need to stick with MM_stuff
All the best!

> need more info?
:: don't click HERE ::
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top