Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 9 of 9 total
Thread DBISam 4.31 B2 in Delphi XE2
Sun, Dec 4 2011 7:02 AMPermanent Link

Jose Pascoa

Avatar


I tested you CD Collector example in Delphi XE2 and it crashes when
opening the Listening Times report.
This happens both in 32-bit and 64-bit.

The sample works fine in Delphi 7

Since I am here, small problem i noticed on that sample is that the
windows open on desktop center instead of screen center and I have
muliple monitors

JP.
Mon, Dec 5 2011 2:34 AMPermanent Link

Jose Pascoa

Avatar

On Sun, 04 Dec 2011 12:02:17 +0000, temp@temp.com wrote:

>
>I tested you CD Collector example in Delphi XE2 and it crashes when
>opening the Listening Times report.
>This happens both in 32-bit and 64-bit.
>
>JP.

Actually the sample does not work at all in 64-bit or I am missing
something.
The tables show corrupt header information error #8961.

I am trying to build my own application and have the same problem. And
tables generated at runtime by a 64-bit application are not readable
by dbsys.exe and tables built by a 32-bit application are not opened
by 64-bit app.

Packed records, and you have lots of them in your source, are normally
a good candidate for these problems.

As I said, I may be missing something but don't know what, otherwisel,
I hope this can be fixed soon.

JP





Mon, Dec 5 2011 4:35 AMPermanent Link

Jose Pascoa

Avatar

On Mon, 05 Dec 2011 07:33:53 +0000, temp@temp.com wrote:

The include Zlibpas.pas has not been ported to 64-bit.
There is 32-bit pointer arythmetic and declarations like:
ptr2int = uInt;   { a pointer to integer casting is used to do pointer
arithmetic }


However this is not the reason for the problem of my initial post
because I am not doing any compression/decompression.

JP

Mon, Dec 5 2011 4:50 AMPermanent Link

Jose Pascoa

Avatar

On Mon, 05 Dec 2011 09:35:46 +0000, temp@temp.com wrote:

>On Mon, 05 Dec 2011 07:33:53 +0000, temp@temp.com wrote:

Packed records are not always keeping their sizes between 32-bit and
64-bit, namely when you include pointers in them.

Note for example that the size of TObject is 8 bytes in 64-bits and 4
bytes in 32-bits.

There are TObject in some of your packed records.

JP
Mon, Dec 5 2011 6:36 AMPermanent Link

Jose Pascoa

Avatar

On Mon, 05 Dec 2011 09:50:10 +0000, temp@temp.com wrote:

I was right TObject was f* the header tables, fortunatly this was I
easily solve.

In TFieldDefinition = packed record insert
{$IFDEF CPUX64}
     EmptySpace: array [1..72] of Byte;
{$else}
     EmptySpace: array [1..76] of Byte;
{$endif}


and in TV123FieldDefinition = packed record
{$IFDEF CPUX64}
     EmptySpace: array [1..304] of Byte;
{$else}
     EmptySpace: array [1..308] of Byte;
{$endif}


What I have not solved and have no time right now to check is the
Query exception I mentioned earlier.

And I have also not solved the Zlibpas, which is so damn old.
Fortunatly,  I had a replacement for it.

Anyway, I would love to hear something. No one is posting here
nowadys.


JP


Mon, Dec 5 2011 7:15 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Jose,

Thank you for the bug reports.

<< I was right TObject was f* the header tables, fortunatly this was I
easily solve. >>

This has been reported/fixed already, but a new build has not been released
yet (B3).

<< What I have not solved and have no time right now to check is the Query
exception I mentioned earlier. >>

I'll check it out and see what the issue is.  A fix will also be in B3.

<< And I have also not solved the Zlibpas, which is so damn old.
Fortunatly,  I had a replacement for it. >>

I've reviewed the code (which was missed in the 64-bit code audit), and the
only thing that I can see that is problematic is the ptr2int pointer
arithemetic, so I'll have a fix for this also in the next build.

<< Anyway, I would love to hear something. No one is posting here nowadys.
>>

DBISAM is an older, fairly mature product, so there aren't many bugs anymore
and most people that use it don't really need to post that many questions.

--
Tim Young
Elevate Software
www.elevatesoft.com
Mon, Dec 5 2011 7:35 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Jose,

<< I tested you CD Collector example in Delphi XE2 and it crashes when
opening the Listening Times report.  This happens both in 32-bit and 64-bit.
>>

What is the error message that you're seeing ?  I tried it here with the B3
candidate code and it works fine, so I'm thinking that it's the same issue
with the headers, but I need to know the error message in order to confirm
this.

--
Tim Young
Elevate Software
www.elevatesoft.com
Mon, Dec 5 2011 8:09 AMPermanent Link

Jose Pascoa

Avatar

On Mon, 5 Dec 2011 07:15:11 -0500, "Tim Young [Elevate Software]"
<timyoung@elevatesoft.com> wrote:

>Jose,
>
>Thank you for the bug reports.
>
><< I was right TObject was f* the header tables, fortunatly this was I
>easily solve. >>
>
>This has been reported/fixed already, but a new build has not been released
>yet (B3).
>
><< What I have not solved and have no time right now to check is the Query
>exception I mentioned earlier. >>
>
>I'll check it out and see what the issue is.  A fix will also be in B3.
>
><< And I have also not solved the Zlibpas, which is so damn old.
>Fortunatly,  I had a replacement for it. >>
>
>I've reviewed the code (which was missed in the 64-bit code audit), and the
>only thing that I can see that is problematic is the ptr2int pointer
>arithemetic, so I'll have a fix for this also in the next build.
>
><< Anyway, I would love to hear something. No one is posting here nowadys.
> >>
>
>DBISAM is an older, fairly mature product, so there aren't many bugs anymore
>and most people that use it don't really need to post that many questions.


Hi Tim,

I like DBISam, it has always been very reliable.
Probably all issues in ZlibPas will be fixed when we change ptr2int to
NativeInt.
The CDCollector raises an exception $C00000005 read of address
0x00000004 both in 32-bit and 64-bit of XE2. No problem with Delphi 7.

JP
Mon, Dec 5 2011 3:44 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Jose,

<< I like DBISam, it has always been very reliable. >>

Thanks.  It's gotten a lot more reliable over the last several years once I
got really serious about our internal automated testing.

<< Probably all issues in ZlibPas will be fixed when we change ptr2int to
NativeInt. >>

It appears that way to me, although I just used an uInt64 and a Win64 define
instead due to issues with NativeInt in older versions of Delphi.  I ported
the ZLib code to "managed" Object Pascal for EDB, so I'm pretty familiar
with what the code, and thoses Ptr2Int calls are the only place where
pointer arithmetic takes place.

<< The CDCollector raises an exception $C00000005 read of address 0x00000004
both in 32-bit and 64-bit of XE2. No problem with Delphi 7. >>

Hmmm, I'll have to check this out further.

Thanks again,

--
Tim Young
Elevate Software
www.elevatesoft.com
Image