Re: [Vala] Creating bindings for Oracle OCI
- From: Shawn Ferris <shawn ferris gmail com>
- To: Vala <vala-list gnome org>
- Subject: Re: [Vala] Creating bindings for Oracle OCI
- Date: Tue, 16 Jun 2009 21:51:01 -0600
Ooops.. Resending, didn't realize this didn't go to the list.. my
apologies.
On Tue, 2009-06-16 at 21:44 -0600, Shawn Ferris wrote:
Man.. I'm so close I can smell it.. I actually have the bindings working
to the point were I am fetching a value from a table. Unfortunately, the
way it sits, I'm stuck with ints alone.. as soon as I try to return a
string, the code aborts.. there's actually two cases where the results
are the same and I'm assuming the fix for one will fix the other, so
I'll ask for help on the easier one. In this case, it's the ErrorGet
function defined as:
sword OCIErrorGet ( void *hndlp,
ub4 recordno,
OraText *sqlstate,
ub4 *errcodep,
OraText *bufp,
ub4 bufsiz,
ub4 type );
My vapi definition:
[CCode (cname = "OCIErrorGet")]
public int ErrorGet (
Error* error,
int record,
out string* sqlstate,
out int* errcode,
out string* buffer,
int buffersz,
HType type
);
And a C example:
text errbuf[512];
OCIErrorGet ((dvoid *) errhp, (ub4) 1, (text *) NULL, &errcode,
errbuf, (ub4) sizeof(errbuf), (ub4) OCI_HTYPE_ERROR);
If I leave off errbuf (which should be the physical message string
assoctiate to errcode) everything works fine. EG:
int* errno;
OCI.ErrorGet ( err, 1, null, out errno, null, 0, HType.ERROR);
stdout.printf("Error - ORA-%5.5d (%s)\n", (int)errno, action);
I absolutely get the right error code (i can force which error I gen)
but as soon as I try to touch errbuf the program aborts.. I can not for
the life of me find the correct way to do this. Can someone point me in
the right direction? And then, I'll warn you that I'll have at least one
more email.. but more critique and style.. I'm assuming I haven't
followed the vala way, but I'm more interested in getting it to work and
addressing style later.
Thanks for the help!
SMF
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]