On Thursday, November 25, 2010 01:02:53 pm Adrian Klaver wrote:
> On Wednesday 24 November 2010 2:41:06 pm John Fabiani wrote:
> > I should have said - are you sure postgres is return the string
> > "timedelta"? I would have expected "interval"
> >
> > Johnf
>
> A quick and dirty way to get around this is shown below:
>
> def interval_str(val,cur):
> if val is None:
> return None
> else:
> return val
>
> def main():
> import psycopg2.extensions
> INTERVAL=psycopg2.extensions.new_type((1186,),"INTERVAL",interval_str)
> psycopg2.extensions.register_type(INTERVAL)
> app = dabo.dApp()
> app.MainFormClass = MainForm
> app.BasePrefKey = "intervalFrm"
> app.start()
>
> This makes psycopg2 return a string instead of a timedelta when pulling
> data from an interval field.
>
> Then if you declare the interval field as "C" in the bizobj DataStructure
> the string representation shows up.
>
> class IntervalTest(dabo.biz.dBizobj):
>
> def afterInit(self):
> self.DataSource = "public.interval_test"
> self.KeyField = "id"
> self.DataStructure = [
> ("id","I",True,"public.interval_test","id"),
> ("interval_fld","C",False,"public.interval_test",\
> "interval_fld")
> ]
> self.SaveNewUnchanged=True
> publicIntervalTest = IntervalTest(self.Connection)
> self.addBizobj(publicIntervalTest)
There are several tricks here - I wonder do you think it might be possible to
support the data type 'interval' without defining the DataSource? It would
be very nice to have complete support within Dabo.
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]