Re: [gnome-db] gda_value_new_from string()





2006/5/15, Bas Driessen <bas driessen xobas com>:

On Mon, 2006-05-15 at 09:45 +0200, Vivien Malerba wrote:
On 5/14/06, Murray Cumming <murrayc murrayc com> wrote:
> On Sun, 2006-05-14 at 15:38 +1000, Bas Driessen wrote:
> > Hello,
> >
> > Trying to get my applications to work with libgda CVS HEAD. Question
> > regarding function gda_value_new_from string(). I have a line like
> > this in my code:
> >
> > values = g_list_append(values, gda_value_new_from_string(dataValue,
> > gda_column_get_gda_type(fa)));
> >
> > This transforms a string to a GdaValue using the correct type.
> >
> > Compiled with libgda CVS HEAD, this is failing now in most instances.
> > Looking into gda_value_new_from_string(), it mostly fails the
> > condition:
> >
> > if (g_value_type_transformable(G_TYPE_STRING, type))
> >
> > If my type is G_TYPE_STRING, all works OK, but if my type is
> > G_TYPE_INT for instance, this test fails.
> >
> > How can I get this to work again? How can I get a string (=char*)
> > converted to a GValue of G_TYPE_INT?
>
> I wonder how this would be suppose to work, if at all? Should the string
> be human-readable (and therefore in the current locale.) or as used in a
> SQL statement?
>
> Whenever I see "string representation" in the libgda documentation, I
> need to see either "in the current locale", "in the SQL syntax", "in the
> C locale", or something similar.
>

The SQL representation is supposed to be DBMS dependant (that is using
whatever locale the DBMS we are connected to is using), and string
representation is supposed to be in the locale the user is using.

I'll update the documentation so there is no doubt about locales anymore.

Thanks Vivian, but still I am having problems finding a solution. The new gda_value_new_from_string() function is more limited than the old one before the GValue->GdaValue change.  Let's start at the core of the problems. How can I transform an integer value for instance to a GValue? There is no such function as gda_value_set_int for instance? Can you please advise?

Thanks,
Bas.


Remember that GDA is using GLib's GValue, then exist a function to Register any transformation TYPE to TYPE function. If you review the Code in gda-value.c you can find sime example functions to transform, for example, a Binary to String using:

g_value_register_transform_func (GType src_type,
GType dest_type,
GValueTransform transform_func);

Then you can custum the transformation of any GType to other.


--
Trabajar, la mejor arma para tu superación
"de grano en grano, se hace la arena" (R) (entrámite, pero para los cuates: LIBRE)

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]