Re: [gnome-db] introspection issue

Murray Cumming <[email protected]>
Newsgroups gmane.comp.gnome.db
Message-ID <1302429176.2304.2.camel@murrayc-x61>
On Sat, 2011-04-09 at 18:39 +0200, Vivien Malerba wrote:
> On 8 April 2011 22:12, Murray Cumming <[email protected]> wrote:
> > GObject+Introspection is working quite well for me now with libgda.
> > Thanks. I am glad that pygda is now obsolete, so it's one less module
> > for me to maintain.
> >
> > However, I'm getting an error when trying to get the values from the
> > DataModel with get_value_at(). For instance, this script
> > http://git.gnome.org/browse/pygda/tree/examples/gda/select.py?h=introspection
> > produces this error:
> >
> > Traceback (most recent call last):
> >  File "./select.py", line 61, in <module>
> >    main ()
> >  File "./select.py", line 57, in main
> >    print "        value=", data_model.get_value_at(col_index,
> > row_index);
> >  File "/opt/gnome230/lib/python2.7/site-packages/gi/types.py", line 44,
> > in function
> >    return info.invoke(*args)
> > TypeError: unknown type (null)
> >
> >
> > Presumably it doesn't like GdaValues with GType=0 (when
> > gda_value_is_null(gvalue) is true).
> 
> Yes, the a GValue with a 0 GType represents a SQL NULL value, whereas
> if the returned value is NULL (the C NULL) then it means there was an
> error retreiving the value, hence the difference between the 2.

Can we just ignore that meaning of C NULL? We might need to check that
everything throws a GError instead, but the GdaConnection functions
already do:
http://developer.gnome.org/libgda/unstable/GdaConnection.html#gda-connection-execute-select-command

Otherwise we would need to distinguish between a SQL Null value and a C
NULL value, which would be hard in Python unless we have a Gda.Null
class with a GDA_TYPE_NULL GType. I don't think it's worth it unless we
can't always use GError instead.

-- 
[email protected]
www.murrayc.com
www.openismus.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.