Solved

Insert into multiple tables

Posted on 2004-10-07
6
190 Views
Last Modified: 2013-12-24
Good morning,
  I have a process where a user can input, edit or delete employee information.It's the example app that comes with CF6 and is working fine.

Here's what I need...the example app creates a UUID that is input into a text/35 length field in an Access employee table.  The UUID and insert statement is below.
 
I have a second table that contains a list of 300 questions

I would like to use that second table, marry it with the UUID and append the (tblemployee.UUID,tble2.*Data into a third table.

TblEmployee has 21 fields and tbl 2 is a series of 300 "questions/survery's" that have to be updated and changed periodically

Can you help?

<cfset NewEmpID = CreateUUID()>
                  
<cfquery name="AddEmployee" dataSource="vianalysis_mdb">
  INSERT INTO tblviater (EmployeeID, FirstName, LastName, Email, Phone, Addr1,Addr2,Addr3,City,State,Zip,Comments)
       values ('#NewEmpID#',
       <cfqueryparam value="#form.FirstName#" CFSQLType="CF_SQL_CHAR">,
       <cfqueryparam value="#form.LastName#" CFSQLType="CF_SQL_CHAR">,
       <cfqueryparam value="#form.Email#" cfsqltype="CF_SQL_VARCHAR">,
       <cfqueryparam value="#form.Phone#" cfsqltype="CF_SQL_VARCHAR">,
       <cfqueryparam value="#form.Addr1#" cfsqltype="CF_SQL_VARCHAR">,
       <cfqueryparam value="#form.Addr2#" cfsqltype="CF_SQL_VARCHAR">,
       <cfqueryparam value="#form.Addr3#" cfsqltype="CF_SQL_VARCHAR">,
       <cfqueryparam value="#form.City#" cfsqltype="CF_SQL_VARCHAR">,
       <cfqueryparam value="#form.State#" cfsqltype="CF_SQL_VARCHAR">,
       <cfqueryparam value="#form.Zip#" cfsqltype="CF_SQL_VARCHAR">,
       <cfqueryparam value="#form.Comments#" cfsqltype="CF_SQL_LONGVARCHAR">
     )
</cfquery>

0
Comment
Question by:lrbrister
  • 3
  • 2
6 Comments
 
LVL 17

Expert Comment

by:anandkp
ID: 12248500
<CFQUERY dataSource="vianalysis_mdb">
     insert into tble2 (employeeid, field1, field2)
     values ('#NewEmpID#', 1,1)
</CFQUERY>

& go the same way for table 3 ...

this way - u'll have related records in ur tables ...
or r u looking for something else ?
0
 

Author Comment

by:lrbrister
ID: 12248600
anandkp,
  Table 2 is just a list of questions.
I want to take all of the table 2 questions plus the new UUID and insert all of that into table 3

fields in the tables

table 1 (UUID,First,Last)

table 2 (field1,field2,...)

merger into table 3

table 3 (tbl1.UUID,tbl2.field1,tbl2.field2, tbl2.field(...))
0
 
LVL 5

Expert Comment

by:kkhipple
ID: 12249093
is thsi waht you mean?


<cfset NewEmpID = CreateUUID()>

<!--- insert new employee--->
<CFQUERY dataSource="vianalysis_mdb" NAME="ins_emp">
     INSERT INTO table1  
      VAULES ('#NewEmpID#', '#FirstName#','#LastName#')
</CFQUERY>

<!--- grab all questions --->
<CFQUERY dataSource="vianalysis_mdb" NAME="sel_questions">
     SELECT *
     FROM table2  
</CFQUERY>

<!--- merge into table 3 --->
<CFQUERY dataSource="vianalysis_mdb">
     INSERT INTO table3  
      VAULES ('#NewEmpID#', '#sel_questions.field1#', '#sel_questions.field2#', '#sel_questions.field(...)#')
</CFQUERY>
0
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 

Author Comment

by:lrbrister
ID: 12261199
kkhipple,
 
That worked...partially.

It inserts the new record into table 1

But table two (the merge table) has 267 records in it that have to all go into table three with the NewEmpID on each row.

It's only inserting the top record.

Should I have some kind of cfloop statement?

Thanks,
0
 
LVL 5

Accepted Solution

by:
kkhipple earned 500 total points
ID: 12263217
yes. you'll need a loop


try this ----


<!--- merge into table 3 --->
<CFLOOP QUERY="sel_questions">
    <CFQUERY dataSource="vianalysis_mdb">
      INSERT INTO table3  
        VAULES    
('#NewEmpID#',  '#sel_questions.field1#',  '#sel_questions.field2#',  '#sel_questions.field(...)#')
     </CFQUERY>
</CFLOOP
0
 

Author Comment

by:lrbrister
ID: 12266405
kkhipple,
  You put me on the right track.  Thanks.  After merging your information with other cfloop questions I came up with the winner.  
Points being awarded now...

This is the code.

<!--Other queries first...........-->

<cfquery name="get_questions" datasource="vianalysis_mdb">
SELECT *
FROM Test_Questions
</cfquery>

<cfset Start=1>
<cfset End=267>
<cfloop query="get_questions"
   startrow="#Start#"
   endrow="#End#">
    <cfquery name="AddQuestions" dataSource="vianalysis_mdb">
       INSERT INTO test_input (EmployeeID, Question_ID, Test_ID, Sort_Order, Type, Question)
      values ('#NewEmpID#','#get_questions.Question_ID#',
      '#get_questions.Test_ID#','#get_questions.Sort_Order#',
      '#get_questions.Type#','#get_questions.Question#')
    </cfquery>
</cfloop>
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
how to configure and install nginx ? 1 432
Internal DNS Zone Issue 13 60
Web server load balancing technologies and methods 3 85
spamming  on Hosted svrs? 6 74
Article by: kevp75
Hey folks, 'bout time for me to come around with a little tip. Thanks to IIS 7.5 Extensions and Microsoft (well... really Windows 8, and IIS 8 I guess...), we can now prime our Application Pools, when IIS starts. Now, though it would be nice t…
When it comes to showing a 404 error page to your visitors, you do not want that generic page to show, and you especially do not want your hosting provider’s ad error page to show either. In this article, I will show you how to enable the custom 40…
This Micro Tutorial will teach you how to censor certain areas of your screen. The example in this video will show a little boy's face being blurred. This will be demonstrated using Adobe Premiere Pro CS6.
Migrating to Microsoft Office 365 is becoming increasingly popular for organizations both large and small. If you have made the leap to Microsoft’s cloud platform, you know that you will need to create a corporate email signature for your Office 365…

920 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now