Four Js Development Tools Forum

Discussions by product => Genero BDL => Topic started by: Carlos L. on February 02, 2016, 01:06:45 pm



Title: BDL 3.00 fglExt diferences
Post by: Carlos L. on February 02, 2016, 01:06:45 pm
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


Title: Re: BDL 3.00 fglExt diferences
Post by: Carlos L. on February 02, 2016, 01:16:18 pm
NOTE(no edit available): When I said esql/decimal.h I meant esql/sqltypes.h.

NOTE2: OS is AIX


Title: Re: BDL 3.00 fglExt diferences
Post by: Reuben B. on February 02, 2016, 10:00:35 pm
Quote
Also, 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
  1. 33,39c40,42
  2. < #include <esql/decimal.h>
  3. < #include <esql/datetime.h>
  4. < #include <esql/locator.h>
  5. < #include <esql/sqltypes.h>
  6. < #ifndef MAXBIGINT
  7. < typedef long long bigint;
  8. < #endif
  9. ---
  10. > #include "fglDecimal.h"
  11. > #include "fglDatetime.h"
  12. > #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


Title: Re: BDL 3.00 fglExt diferences
Post by: Carlos L. on February 16, 2016, 03:39:08 pm
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!