[Gtk-sharp-list] Re: gda-sharp (Gda.Value)

Mikkel Kruse Johnsen mikkel@linet.dk
Fri, 24 Sep 2004 12:48:06 +0200


--=-ZEDcPKtkwJVnbeRUQduB
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

Hi

I got Gda.Value working, juhuu.

The file "gda/generated/Value.cs" must have a layout like:

...
	[StructLayout(LayoutKind.Explicit)]
	public struct Value {

		[FieldOffset(0)] public Gda.ValueType Type;
		[FieldOffset(4)] public long VBigint;
		[FieldOffset(4)] public ulong VBiguint;
		[FieldOffset(4)] private IntPtr _v_binary;
		[FieldOffset(4)] public Gda.Blob VBlob;
		[FieldOffset(4)] public bool VBoolean;
		[FieldOffset(4)] public Gda.Date VDate;
		[FieldOffset(4)] public double VDouble;
		[FieldOffset(4)] public Gda.GeometricPoint VPoint;
		[FieldOffset(4)] private IntPtr _v_gobj;
		[FieldOffset(4)] public int VInteger;
		[FieldOffset(4)] private IntPtr _v_list;
		[FieldOffset(4)] public Gda.Money VMoney;
		[FieldOffset(4)] public Gda.Numeric VNumeric;
		[FieldOffset(4)] public float VSingle;
		[FieldOffset(4)] public short VSmallint;
		[FieldOffset(4)] public ushort VSmalluint;
		[FieldOffset(4)] public string VString;
		[FieldOffset(4)] public Gda.Time VTime;
		[FieldOffset(4)] public Gda.Timestamp VTimestamp;
		[FieldOffset(4)] public string VTinyint;
		[FieldOffset(4)] public byte VTinyuint;
		[FieldOffset(4)] public Gda.ValueType VType;
		[FieldOffset(4)] public uint VUinteger;
		[FieldOffset(8)] public long BinaryLength;
...

Because all the values (marked with FieldOffste(4)) is a union in the C
code:

...

typedef GList GdaValueList;
typedef struct {
        GdaValueType type;
        union {
                gint64 v_bigint;
                guint64 v_biguint;
                gpointer v_binary;
                GdaBlob v_blob;
                gboolean v_boolean;
                GdaDate v_date;
                gdouble v_double;
                GdaGeometricPoint v_point;
                GObject *v_gobj;
                gint v_integer;
                GdaValueList *v_list;
                GdaMoney v_money;
                GdaNumeric v_numeric;
                gfloat v_single;
                gshort v_smallint;
                gushort v_smalluint;
                gchar *v_string;
                GdaTime v_time;
                GdaTimestamp v_timestamp;
                gchar v_tinyint;
                guchar v_tinyuint;
                GdaValueType v_type;
                guint v_uinteger;
        } value;
        glong binary_length;
} GdaValue;

...

But I don't know how to make a patch, it must be the C perl wrapper that
should take care of it, or mayby a xml fixup file later.=20

I could use some input, please ?

/Mikkel


On Wed, 2004-09-22 at 23:23, Rodrigo Moya wrote:
> On Wed, 2004-09-22 at 21:23 +0200, Mikkel Kruse Johnsen wrote:
> > Hi Rodrigo
> >=20
> > Is there any development on gda-sharp. Gda.Value has been broken for
> > month (or never worked).
> >=20
> seems it never worked :(
>=20
> > Is there a way I can get data from the database (postgresql) without
> > using Gda.Value ?
> >=20
> no, since both get_row and get_value are failing in the C# bindings. You
> are not the first that reports this ->
> http://bugzilla.ximian.com/show_bug.cgi?id=3D58798
>=20
> > Is there anything I can do to help, have been looking at the code, but
> > don't know where to start.
> >
> seems to be a problem either in the generated code, or a problem in the
> GTK# code, not sure. You could try to look for a fix :) That would be
> great to have someone fixing it, since it's been around for months.

--=-ZEDcPKtkwJVnbeRUQduB
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQBBU/tks/DIef2Kq/IRAv4mAKC4iJDST/Awse316l1XMYOa+oGGCACfQbQA
5VyykR7BbkzCw0l1kK/nHLE=
=Iewt
-----END PGP SIGNATURE-----

--=-ZEDcPKtkwJVnbeRUQduB--