ZeosLib 7 64 bits support
Moderators: gto, EgonHugeist, olehs
-
- Fresh Boarder
- Posts: 22
- Joined: 24.09.2009, 13:25
- Contact:
-
- Fresh Boarder
- Posts: 22
- Joined: 24.09.2009, 13:25
- Contact:
-
- Fresh Boarder
- Posts: 22
- Joined: 24.09.2009, 13:25
- Contact:
- mdaems
- Zeos Project Manager
- Posts: 2766
- Joined: 20.09.2005, 15:28
- Location: Brussels, Belgium
- Contact:
Felicitations, I also have failures in the test suite, no worries. Only the Core and Parsesql suites should be quite reasonabe. They would be a nice starter.
Statistics are a bit weird. Tests are run multiple times depending on the connections you have defined and the enabled drivers. It would be nice if we could fix that a little, but at the moment that's not our concern.
Here an overview of my 'normal' statistics. I did run these from the GUI in non-debug mode. (BTW : for the test suite in debug mode you should ignore all exceptions. The test are written explicitly to raise some, just because error conditions should also been tested.)
Core : Runs 68/53 Errors : 0 Failures : 5
ParseSql : Runs 58/58 Errors : 0 Failures : 0
Dbc : Runs 268/170 Errors : 0 Failures : 11
Component : Runs 225/42 Errors : 0 Failures : 33
Bugreport : Runs 152/63 Errors : 7 Failures : 9
I also attach result files for core and parsesql run in batch mode using
As you'll see there's too much information to be practical, so I'm thinking about adding a verbose mode and a normal mode. Don't know yet how to do that.
Mark
P.S. Sometimes it's easier to talk over IM. My coordinates should be public, so contact me when needed/useful and I'm alive. I tried to contact you but that didn't work
Statistics are a bit weird. Tests are run multiple times depending on the connections you have defined and the enabled drivers. It would be nice if we could fix that a little, but at the moment that's not our concern.
Here an overview of my 'normal' statistics. I did run these from the GUI in non-debug mode. (BTW : for the test suite in debug mode you should ignore all exceptions. The test are written explicitly to raise some, just because error conditions should also been tested.)
Core : Runs 68/53 Errors : 0 Failures : 5
ParseSql : Runs 58/58 Errors : 0 Failures : 0
Dbc : Runs 268/170 Errors : 0 Failures : 11
Component : Runs 225/42 Errors : 0 Failures : 33
Bugreport : Runs 152/63 Errors : 7 Failures : 9
I also attach result files for core and parsesql run in batch mode using
Code: Select all
ztestall -b --format=plain --suite=core>result.core.txt
ztestall -b --format=plain --suite=parsesql>result.parsesql.txt
Mark
P.S. Sometimes it's easier to talk over IM. My coordinates should be public, so contact me when needed/useful and I'm alive. I tried to contact you but that didn't work
You do not have the required permissions to view the files attached to this post.
- mdaems
- Zeos Project Manager
- Posts: 2766
- Joined: 20.09.2005, 15:28
- Location: Brussels, Belgium
- Contact:
OK,
I just committed some changes that make the dbc layer working more or less for mysql on a 64 bit machine, based on your patches.
I tried the test suite on it and basically it works. (After I manually loaded the test database. Seems like the code that loads the database on Delphi isn't working yet on Lazarus/Fpc.
Now the dbc tests for mysql don't show more errors than they do on 32 bit systems.
The components layer however still complains about the bookmarks. Your patch didn't work out on the other compilers, however, so I couldn't apply it right away. I hope I maight find some time to have a look at that issue.
Mark
I just committed some changes that make the dbc layer working more or less for mysql on a 64 bit machine, based on your patches.
I tried the test suite on it and basically it works. (After I manually loaded the test database. Seems like the code that loads the database on Delphi isn't working yet on Lazarus/Fpc.
Now the dbc tests for mysql don't show more errors than they do on 32 bit systems.
The components layer however still complains about the bookmarks. Your patch didn't work out on the other compilers, however, so I couldn't apply it right away. I hope I maight find some time to have a look at that issue.
Mark
-
- Expert Boarder
- Posts: 113
- Joined: 06.10.2006, 14:41
- Location: Chapecó - Santa Catarina
- Contact:
-
- Expert Boarder
- Posts: 113
- Joined: 06.10.2006, 14:41
- Location: Chapecó - Santa Catarina
- Contact:
- mdaems
- Zeos Project Manager
- Posts: 2766
- Joined: 20.09.2005, 15:28
- Location: Brussels, Belgium
- Contact:
And it's committed now.
TO EVERYBODY:
Now Zeoslib 7 is also (more or less) usable on 64-bit Lazarus. At least when you use mysql.
For other databases we don't know yet if there are problems with the interface records of the driver libraries. Using the new 'universal' datatypes Fabio added to ZCompatibility.pas should make the job quite easy.
Mark
TO EVERYBODY:
Now Zeoslib 7 is also (more or less) usable on 64-bit Lazarus. At least when you use mysql.
For other databases we don't know yet if there are problems with the interface records of the driver libraries. Using the new 'universal' datatypes Fabio added to ZCompatibility.pas should make the job quite easy.
Mark
-
- Expert Boarder
- Posts: 113
- Joined: 06.10.2006, 14:41
- Location: Chapecó - Santa Catarina
- Contact:
TO EVERBODY (2):
I tested with SQLite3 and it is working fine under 64 bits (better than 32
bits, got less failures in 64 than 32bits). Postgres raises one exception
in 32 and 64 bits, but not in same test. I don't know if it is related
with my version of Postgres Server (8.4) and the client api is 8.1.
Others drivers I can't test it. If somebody can do this and found some
problem, contact-me using msn.
Regards,
Fabio
I tested with SQLite3 and it is working fine under 64 bits (better than 32
bits, got less failures in 64 than 32bits). Postgres raises one exception
in 32 and 64 bits, but not in same test. I don't know if it is related
with my version of Postgres Server (8.4) and the client api is 8.1.
Others drivers I can't test it. If somebody can do this and found some
problem, contact-me using msn.
Regards,
Fabio
Hi People:
I was download Zeos 7 from SourgeForge Page.
I use it with Fedora12 64bits with Lazarus 0.9.29 but when I connect with Firebird 2.1.3 a access violation like error appears.
Tracing TZConnection.Connect := True I found that it necessary to make 2 changes to files ZCompatibility.pas and ZPlainLoader.
The FHandle and HMODULE properties, fields must be of type PtrInt.
FPC automatically change this data-type to corresponding long depending of processor type (32 or 64).
Good I continue probing it
Best Regards
I was download Zeos 7 from SourgeForge Page.
I use it with Fedora12 64bits with Lazarus 0.9.29 but when I connect with Firebird 2.1.3 a access violation like error appears.
Tracing TZConnection.Connect := True I found that it necessary to make 2 changes to files ZCompatibility.pas and ZPlainLoader.
The FHandle and HMODULE properties, fields must be of type PtrInt.
FPC automatically change this data-type to corresponding long depending of processor type (32 or 64).
Good I continue probing it
Best Regards
-
- Fresh Boarder
- Posts: 22
- Joined: 24.09.2009, 13:25
- Contact:
- mdaems
- Zeos Project Manager
- Posts: 2766
- Joined: 20.09.2005, 15:28
- Location: Brussels, Belgium
- Contact:
donaldshimoda,
Can you just try this change? It's a FPC only change as Delphi doesn't support PtrInt.
For Windows this patch works:
Mark
Can you just try this change? It's a FPC only change as Delphi doesn't support PtrInt.
For Windows this patch works:
Code: Select all
Index: core/ZCompatibility.pas
===================================================================
--- core/ZCompatibility.pas (revision 803)
+++ core/ZCompatibility.pas (working copy)
@@ -126,7 +126,7 @@
INVALID_HANDLE_VALUE = 0;
type
- HMODULE = LongWord;
+ HMODULE = PtrInt;
function LoadLibrary(ModuleName: PChar): HMODULE;
function FreeLibrary(Module: HMODULE): LongBool;
Index: plain/ZPlainLoader.pas
===================================================================
--- plain/ZPlainLoader.pas (revision 803)
+++ plain/ZPlainLoader.pas (working copy)
@@ -67,7 +67,11 @@
TZNativeLibraryLoader = class (TObject)
private
FLocations: TStringDynArray;
+ {$IFDEF FPC}
+ FHandle: PtrInt;
+ {$ELSE}
FHandle: LongWord;
+ {$ENDIF}
FLoaded: Boolean;
FCurrentLocation: String;
function ZLoadLibrary(Location: String): Boolean;
@@ -85,7 +89,11 @@
procedure LoadIfNeeded; virtual;
property Loaded: Boolean read FLoaded write FLoaded;
+ {$IFDEF FPC}
+ property Handle: PtrInt read FHandle write FHandle;
+ {$ELSE}
property Handle: LongWord read FHandle write FHandle;
+ {$ENDIF}
property CurrentLocation: String read FCurrentLocation write FCurrentLocation;
function GetAddress(ProcName: PAnsiChar): Pointer;
end;
-
- Fresh Boarder
- Posts: 22
- Joined: 24.09.2009, 13:25
- Contact: