BDL 3.00 fglExt diferences

Started by Carlos L., February 02, 2016, 01:06:45 PM

Previous topic - Next topic

Carlos L.

When updating our code from current version from 2.5 to 3.0 I'm having some problems compiling C extensions code due to some changes made on the fglExt.h include file.

The error is a missing macro called SQLCHAR which is defined in esql/decimal.h on both version 2.50 and 3.0.
Problem is, on version 2.50, esql/decimal.h was included on fglExt.h.
On version 3.0 fglExt.h does not include this file and thus the macro is never defined.

Also, I can't find any documentation on fglExt.h changes made on version 3.0 and how I can update my code to comply with those changes.

What's the correct approach on this situation?

Thanks in advance,
José Virtuoso

Carlos L.

NOTE(no edit available): When I said esql/decimal.h I meant esql/sqltypes.h.

NOTE2: OS is AIX

Reuben B.

QuoteAlso, I can't find any documentation on fglExt.h changes made on version 3.0

Hi Carlos,

I think the piece of information you are missing is that 3.0 release includes the changes for 2.51 release, and so you also need to pay attention to the 2.51 upgrade guide which has some information on what changed with the C-Extensions https://4js.com/online_documentation/fjs-fgl-manual-html/#c_fgl_Migrate_to_251_cext_api.html

The key part being that the IBM Informix ESQL/C product cannot be part of the Genero product and so doing a diff on fglExt.h ...

Code (diff) Select
33,39c40,42
< #include <esql/decimal.h>
< #include <esql/datetime.h>
< #include <esql/locator.h>
< #include <esql/sqltypes.h>
< #ifndef MAXBIGINT
< typedef long long bigint;
< #endif
---
> #include "fglDecimal.h"
> #include "fglDatetime.h"
> #include "fglLocator.h


... you see the change where we no longer explicitly link to the esql library, but to our own library.  Your code is free to link to the IBM Informix ESQL/C libraries.

FYI the 2.51 release was the changes to the BDL product that were included for the initial GeneroMobile releases that occurred between 2.50 and 3.0.  These improvements are know available to all in the 3.0 release.  Anyone upgrading to 3.0 should read both the 3.0 and 2.51 new features, and the 2.51 upgrade guide and the 3.0 upgrade guide (and any other versions they have skipped in between)

Hope that helps,

Reuben
Product Consultant (Asia Pacific)
Developer Relations Manager (Worldwide)
Author of https://4js.com/ask-reuben
Contributor to https://github.com/FourjsGenero

Carlos L.

Yes that helped me clarify why the errors on 3.0 started showing up.
I'll have to spend a few more time reviewing our C Extentions in order to comply with the new framework.

Thanks for the help!