* Status of GNADE ODBC under Debian 64-bit
@ 2012-09-03 19:17 Dmitry A. Kazakov
2012-09-04 9:40 ` Graham Stark
2012-09-07 9:51 ` Stephen Leake
0 siblings, 2 replies; 11+ messages in thread
From: Dmitry A. Kazakov @ 2012-09-03 19:17 UTC (permalink / raw)
What is the status of the bug reported by Ludovic Brenta:
https://sourceforge.net/tracker/?func=detail&aid=1591916&group_id=23045&atid=377331
I am asking because it seems there that the latest version of libgnadeodbc2
has the issue not resolved. In particular gnu-db-sqcli.adb has GetData
declared as:
function GetData (StatementHandle : in SQLHSTMT;
ColumnNumber : in SQL_Column_Number;
TargetType : in SQL_C_DATA_TYPE;
TargetValue : in SQLPOINTER;
BufferLength : in SQLINTEGER;
StrLen_Or_Ind : access SQLINTEGER)
return SQLRETURN;
This is wrong and causes programs using GNADE ODBC crash.
BufferLength must have been SQLLEN. StrLen_Or_Ind must have been access
SQLLEN. The type SQLLEN is 64-bit under Debian 64-bit (32-bit under Debian
32-bit).
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Status of GNADE ODBC under Debian 64-bit
2012-09-03 19:17 Status of GNADE ODBC under Debian 64-bit Dmitry A. Kazakov
@ 2012-09-04 9:40 ` Graham Stark
2012-09-04 11:54 ` Dmitry A. Kazakov
2012-09-07 9:51 ` Stephen Leake
1 sibling, 1 reply; 11+ messages in thread
From: Graham Stark @ 2012-09-04 9:40 UTC (permalink / raw)
Cc: mailbox
I'm interested in this as I use GNADE quite a bit.
If you just change SQLUINTEGER to SQLUBIGINT in the indicated places Ludovic's
warning goes away. It seems harmless either way, to the limited extent that I understand the code - the thing that's declared as a pointer is really just a bitmap, so it's just that the top 32 bits can't be set by that function.
The SQLLEN thing looks like a different problem and really quite nasty - I hadn't come across this before. My reading of it is that some ODBC drivers might need 32 bits there even on 64 bit systems; see this, for instance: http://www.martin-evans.me.uk/node/99
I have notice some funny behaviour retrieving strings from databases, where the length is not returned correctly, so maybe that's the cause. Never seen a crash, though.
Graham
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Status of GNADE ODBC under Debian 64-bit
2012-09-04 9:40 ` Graham Stark
@ 2012-09-04 11:54 ` Dmitry A. Kazakov
0 siblings, 0 replies; 11+ messages in thread
From: Dmitry A. Kazakov @ 2012-09-04 11:54 UTC (permalink / raw)
On Tue, 4 Sep 2012 02:40:32 -0700 (PDT), Graham Stark wrote:
> I'm interested in this as I use GNADE quite a bit.
>
> If you just change SQLUINTEGER to SQLUBIGINT in the indicated places Ludovic's
> warning goes away.
Maybe, but he reported rather a need to verify consistency on 64-bit
platform.
Should I report it independently to sourceforge?
> The SQLLEN thing looks like a different problem and really quite nasty - I
> hadn't come across this before. My reading of it is that some ODBC drivers
> might need 32 bits there even on 64 bit systems; see this, for instance:
> http://www.martin-evans.me.uk/node/99
>
> I have notice some funny behaviour retrieving strings from databases,
> where the length is not returned correctly, so maybe that's the cause.
> Never seen a crash, though.
Specifically to unixodbc and Debian, the macro BUILD_LEGACY_64_BIT_MODE if
defined in sqltypes.h, makes SQLLEN 32-bit. When undefined it is 64-bit.
The effect of SQLINTEGER (always 32-bit) passed instead of 64-bit is memory
corruption.
It should also become an issue for native Windows 64-bit applications, once
GNAT to support them.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Status of GNADE ODBC under Debian 64-bit
2012-09-03 19:17 Status of GNADE ODBC under Debian 64-bit Dmitry A. Kazakov
2012-09-04 9:40 ` Graham Stark
@ 2012-09-07 9:51 ` Stephen Leake
2012-09-07 10:57 ` Ludovic Brenta
` (2 more replies)
1 sibling, 3 replies; 11+ messages in thread
From: Stephen Leake @ 2012-09-07 9:51 UTC (permalink / raw)
As far as I know, there is no current Debian maintainer for GNADE. I was
the maintainer, but I've resigned, partly because the code is hard to
maintain in the first place, and needs to be re-written.
I suggest you switch to gnatcoll, which includes Ada front-ends for
postgres and SQLite3 (but not ODBC). That code is better written, and
actively maintained, supported by paying customers.
It also includes higher-level object oriented front-ends.
If paying customers lobby for ODBC support, it will happen.
--
-- Stephe
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Status of GNADE ODBC under Debian 64-bit
2012-09-07 9:51 ` Stephen Leake
@ 2012-09-07 10:57 ` Ludovic Brenta
2012-09-07 11:25 ` Graham Stark
2012-09-08 19:17 ` Stephen Leake
2012-09-07 11:56 ` Dmitry A. Kazakov
2012-09-07 16:06 ` Georg Bauhaus
2 siblings, 2 replies; 11+ messages in thread
From: Ludovic Brenta @ 2012-09-07 10:57 UTC (permalink / raw)
Stephen Leake wrote on comp.lang.ada:
> As far as I know, there is no current Debian maintainer for GNADE.
> I was the maintainer, but I've resigned, partly because the code is
> hard to maintain in the first place, and needs to be re-written.
>
> I suggest you switch to gnatcoll, which includes Ada front-ends for
> postgres and SQLite3 (but not ODBC). That code is better written,
> and actively maintained, supported by paying customers.
>
> It also includes higher-level object oriented front-ends.
>
> If paying customers lobby for ODBC support, it will happen.
But gnatcoll doesn't have a Debian maintainer either and is not even
packaged in Debian. If someone here on comp.lang.ada would like to
make a difference, the one thing to know is that the sources of
gnatcoll are part of the sources of GPS, therefore packaging gnatcoll
for Debian requires modifying the packaging of gnat-gps; see
http://bugs.debian.org/640532. As much as I would like to do that
work myself, I lack time for it.
PS. AFAIU, part of gnatcoll is built on top of GNADE (and includes a
fork of GNADE).
--
Ludovic Brenta.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Status of GNADE ODBC under Debian 64-bit
2012-09-07 10:57 ` Ludovic Brenta
@ 2012-09-07 11:25 ` Graham Stark
2012-09-07 12:10 ` Dmitry A. Kazakov
2012-09-08 19:17 ` Stephen Leake
1 sibling, 1 reply; 11+ messages in thread
From: Graham Stark @ 2012-09-07 11:25 UTC (permalink / raw)
I'd think Gnade is worth persevering with.
The changes that need to be made to support 64 bit ODBC are detailed here:
http://support.microsoft.com/kb/298678
the scary bit is that (if I've read this right) sometimes function returns are 32 bit and sometimes 64 bit depending on the inputs. We're going to need a slightly thicker binding than at present to handle this, I'd think.
Graham
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Status of GNADE ODBC under Debian 64-bit
2012-09-07 9:51 ` Stephen Leake
2012-09-07 10:57 ` Ludovic Brenta
@ 2012-09-07 11:56 ` Dmitry A. Kazakov
2012-09-07 16:06 ` Georg Bauhaus
2 siblings, 0 replies; 11+ messages in thread
From: Dmitry A. Kazakov @ 2012-09-07 11:56 UTC (permalink / raw)
On Fri, 07 Sep 2012 05:51:09 -0400, Stephen Leake wrote:
> As far as I know, there is no current Debian maintainer for GNADE. I was
> the maintainer, but I've resigned, partly because the code is hard to
> maintain in the first place, and needs to be re-written.
Thank you for the information.
> I suggest you switch to gnatcoll, which includes Ada front-ends for
> postgres and SQLite3 (but not ODBC). That code is better written, and
> actively maintained, supported by paying customers.
Being DB-specific none of these is an alternative to ODBC.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Status of GNADE ODBC under Debian 64-bit
2012-09-07 11:25 ` Graham Stark
@ 2012-09-07 12:10 ` Dmitry A. Kazakov
0 siblings, 0 replies; 11+ messages in thread
From: Dmitry A. Kazakov @ 2012-09-07 12:10 UTC (permalink / raw)
On Fri, 7 Sep 2012 04:25:32 -0700 (PDT), Graham Stark wrote:
> the scary bit is that (if I've read this right) sometimes function returns
> are 32 bit and sometimes 64 bit depending on the inputs.
This was always the case for most C bindings and MS ones especially.
> We're going to
> need a slightly thicker binding than at present to handle this, I'd think.
Yes. Simple components provide a safer layer on top GNADE ODBC. E.g.
controlled types for handles, typed SQLGetData, etc.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Status of GNADE ODBC under Debian 64-bit
2012-09-07 9:51 ` Stephen Leake
2012-09-07 10:57 ` Ludovic Brenta
2012-09-07 11:56 ` Dmitry A. Kazakov
@ 2012-09-07 16:06 ` Georg Bauhaus
2 siblings, 0 replies; 11+ messages in thread
From: Georg Bauhaus @ 2012-09-07 16:06 UTC (permalink / raw)
On 07.09.12 11:51, Stephen Leake wrote:
> I suggest you switch to gnatcoll, which includes Ada front-ends for
> postgres and SQLite3 (but not ODBC). That code is better written, and
> actively maintained, supported by paying customers.
GNATcoll relies a few GNAT specific packages; any experience whether
these work with other Ada compilers?
with GNAT.Strings, GNATCOLL.*, GNAT.Calendar... etc. Nothing
terrible, and I am not complaining, just mentioning.
Also, for those who might need copy protection for their
sources, the license (GPL) might not be what they'd like, IINM.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Status of GNADE ODBC under Debian 64-bit
2012-09-07 10:57 ` Ludovic Brenta
2012-09-07 11:25 ` Graham Stark
@ 2012-09-08 19:17 ` Stephen Leake
2012-09-10 18:10 ` Graham Stark
1 sibling, 1 reply; 11+ messages in thread
From: Stephen Leake @ 2012-09-08 19:17 UTC (permalink / raw)
Ludovic Brenta <ludovic@ludovic-brenta.org> writes:
> PS. AFAIU, part of gnatcoll is built on top of GNADE (and includes a
> fork of GNADE).
The GPL 2012 version says (in gnatcoll-gpl-2012-src/docs/sql.rs):
The *gnade* part in the file names
indicate that this code was initially inspired by the **GNADE** library
that used to be available on the internet. Part of the code might in fact
come from that library.
--
-- Stephe
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Status of GNADE ODBC under Debian 64-bit
2012-09-08 19:17 ` Stephen Leake
@ 2012-09-10 18:10 ` Graham Stark
0 siblings, 0 replies; 11+ messages in thread
From: Graham Stark @ 2012-09-10 18:10 UTC (permalink / raw)
It would be interesting to know if the other database interfaces out there (I know of gnatcol and SOCI) are immune to these 64/32 bit problems.
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2012-09-14 17:44 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-09-03 19:17 Status of GNADE ODBC under Debian 64-bit Dmitry A. Kazakov
2012-09-04 9:40 ` Graham Stark
2012-09-04 11:54 ` Dmitry A. Kazakov
2012-09-07 9:51 ` Stephen Leake
2012-09-07 10:57 ` Ludovic Brenta
2012-09-07 11:25 ` Graham Stark
2012-09-07 12:10 ` Dmitry A. Kazakov
2012-09-08 19:17 ` Stephen Leake
2012-09-10 18:10 ` Graham Stark
2012-09-07 11:56 ` Dmitry A. Kazakov
2012-09-07 16:06 ` Georg Bauhaus
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox