Re: [gnome-db] gda_value_new_from string()
- From: "Daniel Espinosa" <esodan gmail com>
- To: bas driessen xobas com
- Cc: GNOME-DB List <gnome-db-list gnome org>, Vivien Malerba <vmalerba gmail com>
- Subject: Re: [gnome-db] gda_value_new_from string()
- Date: Mon, 15 May 2006 09:52:28 -0500
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]