<object name="activity">
<hasone name="sponsor">
<link name="sponsor" />
</hasone>
</object>
<object name="sponsor">
<hasmany name="activity">
<relate from="sponsor_id" to="sponsor_id" />
</hasmany>
</object>
</objects>
Looking closer I noticed the error says "does have have'.
At first I thought it said "does not have".
From: Brian Billings [mailto: [EMAIL PROTECTED]]
Sent: Friday, February 10, 2006 7:30 PM
To: '[email protected]'
Subject: RE: Reactor For CF output relational recordset
All,
Im getting this now.. I compared my Reactor.xml syntax to the help doc and it seems right.
Message
Relationship Does Not Exist
Detail
The object 'Activity' does have have a relationship with an alias of 'Sponsor'
<cffunction name="ListActivities" access="public" output="false" returntype=" ModelGlue.Core.Event">
<cfargument name="event" type="ModelGlue.Core.Event" required="true">
<cfset var local = structnew() />
<cfset ActivityGateway = variables.reactor.createGateway("Activity") />
<cfset query = ActivityGateway.createQuery() />
<cfset query.join("Activity","Sponsor") />
<cfset ActivityList = ActivityGateway.getByQuery(query) />
<cfset arguments.event.setValue("Activities",ActivityList) />
<cfreturn arguments.event />
</cffunction>
<reactor>
<config>
<dsn value="CCARC" />
<type value="mssql" />
<mapping value="/Reactor" />
<mode value="always" />
</config>
<objects>
<object name="activity">
<hasone name="sponsor" alias="sponsor">
<relate from="sponsor_id" to="sponsor_id" />
</hasone>
</object>
<object name="sponsor">
<hasmany name="activity">
<relate from="sponsor_id" to="sponsor_id" />
</hasmany>
</object>
</objects>
</reactor>
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] On Behalf Of Michael Lantz
Sent: Friday, February 10, 2006 12:41 AM
To: [email protected]
Subject: RE: Reactor For CF output relational recordset
Brian,
I am little bit confused by your code below, so I will use my own example.
If you are using a gateway object, you would just want to do a join to get the results you want.<cfset ActivityGateway = variables.reactor.createGateway("Activity") />
<cfset query = ActivityGateway.createQuery() />
<cfset query.join("Activity","Sponsor") />
<cfset ActivityList = ActivityGateway.getByQuery(query) />
Now, you will have access to the fields in both tables (Activity and Sponsor) in the "ActivityList" object.
Hope that makes sense.
Michael
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] On Behalf Of Brian Billings
Sent: Thursday, February 09, 2006 9:48 PM
To: [email protected]
Subject: Reactor For CF output relational recordset
All, I have two tables. ACTIVITIES and SPONSORS. Each sponsor has many activities.
When I use the gateway I get this output. How do I get the text value of the sponsor to show in the activities list?
Output:
Name Sponsor Duration Code
Test1 6 60 code1
Teat2 3 30 code2
Controller function:
<cffunction name="ListActivities" access="public" output="false"
returntype="ModelGlue.Core.Event">
<cfargument name="event" type=" ModelGlue.Core.Event"
required="true">
<cfset var local = structnew() />
<cfset local.gateway = variables.reactor />
<cfset local.gateway.creategateway('Activity') />
<cfset
arguments.event.setValue("Activities",local.gateway.getall()) />
<cfreturn arguments.event />
</cffunction>
Reactor config:
<reactor>
<config>
<dsn value="CCARC" />
<type value="mssql" />
<mapping value="/Reactor" />
<mode value="development" />
</config>
<objects>
<object name="activity">
<hasone name="sponsor">
<relate from="sponsor_id" to="sponsor_id" />
</hasone>
</object>
</objects>
</reactor>
Tables:
CREATE TABLE [dbo].[ACTIVITY] (
[ACTIVITY_ID] [int] IDENTITY (1, 1) NOT NULL ,
[SPONSOR_ID] [int] NOT NULL ,
[ACTIVITY_CODE] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[ACTIVITY_NAME] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ACTIVITY_DESC] [varchar] (2000) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[DURATION] [int] NOT NULL ,
[ORIG_UPDATE] [smalldatetime] NOT NULL ,
[LAST_UPDATE] [smalldatetime] NOT NULL ,
[IS_ACTIVE] [bit] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[SPONSOR] (
[SPONSOR_ID] [int] IDENTITY (1, 1) NOT NULL ,
[CONTACT_NAME] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[CONTACT_PHONE] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[SPONSOR_NAME] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[ORIG_UPDATE] [smalldatetime] NOT NULL ,
[LAST_UPDATE] [smalldatetime] NOT NULL ,
[IS_ACTIVE] [bit] NOT NULL
) ON [PRIMARY]
GO-- Reactor for ColdFusion Mailing List -- [email protected] -- Archives at http://www.mail-archive.com/reactor%40doughughes.net/
-- Reactor for ColdFusion Mailing List -- [email protected] -- Archives at http://www.mail-archive.com/reactor%40doughughes.net/

