Wrox Programmer Forums

Need to download code?

View our list of code downloads.

Go Back   Wrox Programmer Forums > SQL Server > SQL Server ASP
Password Reminder
Register
Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read
SQL Server ASP Discussions about ASP programming with Microsoft's SQL Server. For more ASP forums, see the ASP forum category.
Welcome to the p2p.wrox.com Forums.

You are currently viewing the SQL Server ASP section of the Wrox Programmer to Programmer discussions. This is a community of tens of thousands of software programmers and website developers including Wrox book authors and readers. As a guest, you can read any forum posting. By joining today you can post your own programming questions, respond to other developersí questions, and eliminate the ads that are displayed to guests. Registration is fast, simple and absolutely free .
DRM-free e-books 300x50
Reply
 
Thread Tools Display Modes
  #1 (permalink)  
Old July 9th, 2003, 09:56 AM
Registered User
 
Join Date: Jul 2003
Location: Irving, TX, USA.
Posts: 3
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via AIM to stephaniejones Send a message via MSN to stephaniejones
Default Update Multiple Related Tables with 1 Form

:(I am trying to update two different tables in the same database. Using Macromedia's Tech Note titled "Inserting data from one page into two tables" I successfully coded the insert page. They say use the tech note for update and delete pages but after numerous attempts, I can't get it to work. I am figuring that there is more code to edit but I can't ascertain which extra code.

Below is the code

Can anyone help me?

Thanks,
Stephanie

<%
' *** 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 = ""
%>
<%
' *** Update Record: set variables

If (CStr(Request("MM_update")) = "form1" And CStr(Request("MM_recordId")) <> "") Then

MM_editConnection = MM_connQAMeasures_STRING
MM_editTable = "dbo.Sample"
MM_editColumn = "SampleID"
MM_recordId = "" + Request.Form("MM_recordId") + ""
MM_editRedirectUrl = "http://nacwebdev1.iweb.ey.com/US/205/NAC/QA/QAMonitor/GSGMeasures/sampledetails.asp"
MM_fieldsStr = "Exclude|value|SampleDate|value|ErrorA|value|ACoor dinatorUPN|value|ErrorT|value|TCoordinatorUPN|valu e|Reviewed|value|Finalized|value|DTReviewed|value| Source|value"
MM_columnsStr = "Exclude|none,1,0|SampleDate|',none,NULL|ErrorA|', none,''|CoordinatorUPN|',none,''|ErrorT|',none,''| TCoordinatorUPN|',none,''|Reviewed|none,1,0|Finali zed|none,1,0|DTReviewed|',none,NULL|Source|',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


'update GSGSample Table

MM_editTable2 = "dbo.GSGSample"
MM_editColumn2 = "GUID"
MM_recordId = "'" + Request.Form("MM_recordId") + "'"
' MM_editRedirectUrl = "\"
MM_fieldsStr2 = "SampleType|value|InvoiceNo|value|Amount|value|Cou ntry|value|Currency|value|ProjectNo.|value|Workshe et|value|Comments|value"
MM_columnsStr2 = "SampleType|',none,''|InvoiceNo|',none,''|Amount|n one,none,NULL|Country|',none,''|Currency|',none,'' |ProjectNo|',none,''|Worksheet|none,1,0|Comments|' ,none,''"

' create the MM_fields and MM_columns arrays
MM_fields2 = Split(MM_fieldsStr2, "|")
MM_columns2 = Split(MM_columnsStr2, "|")

' set the form values
For MM_i = LBound(MM_fields2) To UBound(MM_fields2) Step 2
MM_fields2(MM_i+1) = CStr(Request.Form(MM_fields2(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
%>
<%
' *** Update Record: construct a sql update statement and execute it

If (CStr(Request("MM_update")) <> "" And CStr(Request("MM_recordId")) <> "") Then

' create the sql update statement
MM_editQuery = "update " & MM_editTable & " set "
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_editQuery = MM_editQuery & ","
End If
MM_editQuery = MM_editQuery & MM_columns(MM_i) & " = " & MM_formVal
Next
MM_editQuery = MM_editQuery & " where " & MM_editColumn & " = " & MM_recordId

'Update GSG Sample Table
MM_editQuery2 = "update " & MM_editTable2 & " set "
For MM_i = LBound(MM_fields2) To UBound(MM_fields2) Step 2
MM_formVal = MM_fields2(MM_i+1)
MM_typeArray2 = Split(MM_columns2(MM_i+1),",")
MM_delim = MM_typeArray2(0)
If (MM_delim = "none") Then MM_delim = ""
MM_altVal = MM_typeArray2(1)
If (MM_altVal = "none") Then MM_altVal = ""
MM_emptyVal = MM_typeArray2(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_fields2)) Then
MM_editQuery2 = MM_editQuery2 & ","
End If
MM_editQuery2 = MM_editQuery2 & MM_columns2(MM_i) & " = " & MM_formVal
Next
MM_editQuery2 = MM_editQuery2 & " where " & MM_editColumn2 & " = " & MM_recordId

If (Not MM_abortEdit) Then
' execute the update
Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = MM_editQuery
MM_editCmd.Execute
' Code for second insert execution
MM_editCmd.CommandText = MM_editQuery2
MM_editCmd.Execute
'End of code for escond insert execution
MM_editCmd.ActiveConnection.Close

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

End If
%>


Stephanie Jones
stephanierjones@msn.com
__________________
Stephanie Jones
stephanierjones@msn.com
Reply With Quote
  #2 (permalink)  
Old July 9th, 2003, 06:34 PM
Friend of Wrox
 
Join Date: Jun 2003
Location: Sydney, NSW, Australia.
Posts: 215
Thanks: 0
Thanked 0 Times in 0 Posts
Default

Oh dear. I've oftem thought that Macromedia should be made to pay for the damage they have caused by creating point and click code generation.

Could you post a brief description of the two tables and the form values you want to insert into the table, or update the tables with. I'm sorry but I'm just not going to wade through 170 lines of Macromedia generated code.

regards
David Cameron
Reply With Quote
  #3 (permalink)  
Old July 10th, 2003, 08:40 PM
Friend of Wrox
 
Join Date: Jun 2003
Location: Sydney, NSW, Australia.
Posts: 215
Thanks: 0
Thanked 0 Times in 0 Posts
Default

It is generally better to send messages to the list. This allows toerh people to see the posted messages which gives two advantages, they can point out any errors in my code (and there are errors) and people can also learn from it.

Yes I am from Australia, No I don't ride a kangaroo to work and no I am not a convict/criminal.

One thing isn't quite clear to me from your table structure, are the tables related in any way, and if so on what way (eg Foreign Key etc).

Also what fields do you have in your form page?

regards
David Cameron
Reply With Quote
  #4 (permalink)  
Old July 11th, 2003, 07:30 AM
Registered User
 
Join Date: Jul 2003
Location: Irving, TX, USA.
Posts: 3
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via AIM to stephaniejones Send a message via MSN to stephaniejones
Default

Thanks for responding. The tables are related by a field called GUID (and the GUID is being generated in the ASP page and inserted into both tables). The fields in the form page that update the first table are chkExclude, txtSampleDate, txtAccuracyError, txtTimelinessError, chkReviewed, chkFinalized, txtSource. The fields that update the second table are txtAmount, txtProjectNo, txtInvoiceNo, txtComments. Both table identifers are a field called GUID (as I said earlier) and they are related by this field.

Hope this helps you help me.

Thanks,

Stephanie Jones
stephanierjones@msn.com
Reply With Quote
  #5 (permalink)  
Old July 13th, 2003, 08:52 PM
Friend of Wrox
 
Join Date: Jun 2003
Location: Sydney, NSW, Australia.
Posts: 215
Thanks: 0
Thanked 0 Times in 0 Posts
Default

I'm going to assume a few things. First, that you want to update existing rows in the table. Second, that you are using Access as your database. Third that a variable strConnect is defined elsewhere and that it holds the connection string to your database. ForthI am going to assume that the prefixes on your field names are related to the contents of the field.

Code:
<%
Dim cn
Dim strSQL
Dim blnExclude

Set cn = Server.CreateObject("ADODB.Connection")
cn.Open strConnect

' update the first table
strSQL = "UPDATE tblSample SET Reviewer = '" & Replace("'", "''", Request.Form("chkReviewed")) & _
        "', Exclude = '" & Replace("'", "''", Request.Form("chkExclude")) & _
        "', [Sample Received] = #" & Replace("'", "''", Request.Form("txtSampleDate")) & _
        "#, SampleType = " & Replace("'", "''", Request.Form("txtType")) & _
        " WHERE GUID = '" & Replace("'", "''", Request.Form("GUID")) & "'"

cn.Execute strSQL

' update the first table
strSQL = "UPDATE tblGSGSample SET InvoiceNo = '" & Replace("'", "''", Request.Form("txtInvoiceNo")) & _
        "', Amount = " & Replace("'", "''", Request.Form("txtAmount")) & _
        ", Currency = '" & Replace("'", "''", Request.Form("txtCurrency")) & _
        "', Country = '" & Replace("'", "''", Request.Form("txtCountry")) & _
        " WHERE GUID = '" & Replace("'", "''", Request.Form("GUID")) & "'"

cn.Execute strSQL

cn.Close
Set cn = Nothing
%>
I've had to guess at some table names because in the email you sent me you have specified some columns that don't seem to fit any of the fields in the database.

regards
David Cameron
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
single submit to related tables forumuser BOOK: ASP.NET 2.0 Website Programming Problem Design Solution ISBN: 978-0-7645-8464-0 10 December 2nd, 2007 09:29 AM
displaying multiple non related tables in gridv shoakat ASP.NET 2.0 Basics 7 September 11th, 2007 04:21 PM
update to multiple tables elania PHP Databases 1 February 21st, 2005 02:10 PM
UPDATE multiple fields in 1 form a_pathak SQL Server ASP 1 March 3rd, 2004 03:19 AM
Updating Multiple Tables with 1 Dreamweaver Form stephaniejones Dreamweaver (all versions) 0 July 9th, 2003 09:58 AM



All times are GMT -4. The time now is 05:36 PM.


Powered by vBulletin® Version 3.7.0
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
© 2013 John Wiley & Sons, Inc.