On Thursday 29 October 2009 11:52:24 am Aaron Carlow wrote:
> I think I get it now.  For some reason I never made the connection that
> bizObj.DataSource == TableName.  I assumed that the table name was not tied
> directly to the DataSource name.  If I'm correct this means that you cannot
> create more than one instance of a bizobj that uses the same table because
> then the DataSource string/identifier is the same and the program has no
> way of differentiating between the two, correct?  What is the recommended
> way of having two unconnected dPages that the use the same table as the
> source?
>
> class EventBizobj(dabo.biz.dBizobj):
>   def afterInit(self):
>     self.DataSource = "Event"
>     self.KeyField = "EventID"
>     self.addFrom("Event")
>     self.addField("Event.EventName")
>     ...
>
> def createBizobjs(self):
>   conn = self.Application.getConnectionByName('ServerName-MySQL')
>
>   bizEvent = self.Application.biz.EventBizobj(conn)
>   self.addBizobj(bizEvent)
>
>   bizEventView = self.Application.biz.EventBizobj(conn)
>   self.addBizobj(bizEventView)
>
> With this code both bizobjs have the same DataSource since they are using
> the same table and therefore the Dabo framework can't differentiate the
> two. Could I do:
>
>   bizEventView.DataSource="SomeArbitraryname"
>
> and have it accessible as a DataSource in a dGrid for instance using
> "SomeArbitraryName" but in fact pulling data from the "Event" table?
>
> Really appreciate how helpful you guys are, especially to someone who is
> such an obvious newbie.
>
> Aaron L. Carlow

I have run into the issue myself several times.  It could be that my history 
with VFP has influenced my believing I need the ability to re-use a table.  I 
still believe it would be a very nice feature.  But I have gotten around the 
issue too.

You could use a database view for one of the tables.  This works if you do not 
need to update the data.  You could also use a filter on the database.  I 
have not used this feature.   I have also used something similar to a filter 
where I created a dabo dict using direct sql statements and handled all the 
update requirements.

tempCur = self.PrimaryBizobj.getTempCursor
tempCur.execute("select * from some_table where some_filter")

Now do what you need to do with the data.

Johnf




_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users
Searchable Archives: http://leafe.com/archives/search/dabo-users
This message: 
http://leafe.com/archives/byMID/[email protected]

Reply via email to