Page 1 of 12
ZeosLib 7.1 testers-thread
Posted: 14.01.2013, 22:48
by EgonHugeist
Dear Zeos comunity,
today i've added a new category for Zeos 7.1.x.
aim of this thread is simple to share your experiences. If some nightly changes do breaks the compiling or other things going terribly wrong post here.
To be clear: We're talking here allways about the latest changes of our SVN repositories: svn://svn.code.sf.net/p/zeoslib/code-0/branches/testing-7.1 (Here all changes start... Dangerous, tempting, coding fun, everybody's welcome)
For help or missing know how, simply open a new thread.
Posted: 15.01.2013, 11:22
by miab3
EgonHugeist,
Zeos7.1-alpha branches_ testing_R2126:
http://svn.code.sf.net/p/zeoslib/code-0 ... sting-7.1/
compiles and runs on (I have tested):
- D2006,
- D2007 -> C++,
- DXE2 32/64 -> C++(32),
- Lazarus Win 1.1/fpc 2.7.1 32/64,
- Lazarus Lin 1.1/fpc 2.7.1 64 on Debian 64-bit (LMDE 201204).
(Firebird 2.5.3, MySQL 5.5.18, MariaDB 5.5.28, PostgreSQL 9.2.1, MSSQL 2008 R2 Express, Oracle Database Express Edition 11g Release 2).
[s]PS: Does anyone know how to install (run)
Oracle Database Express Edition 11g Release 2(32-bit) on
Windows 8 Pro with Media Center (64-bit) ?[/s]
Michal
Posted: 15.01.2013, 22:59
by EgonHugeist
miab3,
thumbs up, i see you understand me!
Thank's again.
Posted: 22.01.2013, 02:39
by miab3
EgonHugeist,
Zeos7.1-alpha branches_ testing_R2137:
http://svn.code.sf.net/p/zeoslib/code-0 ... sting-7.1/
compiles and runs on (I have tested):
- D2006,
- D2007 -> C++,
- DXE2 32/64 -> C++(32),
- Lazarus Win 1.1/fpc 2.7.1 32/64,
- Lazarus Lin 1.1/fpc 2.7.1 64 on Debian 64-bit (LMDE 201204).
(Firebird 2.5.3, MySQL 5.5.18, MariaDB 5.5.28, PostgreSQL 9.2.1, MSSQL 2008 R2 Express, Oracle Database Express Edition 11g Release 2).
In line 1757 ZAbstractRODataset.pas I think it should be both:
Code: Select all
begin
Fields[i].Size := ResultSet.GetMetadata.GetColumnDisplaySize(I+1);
Fields[i].DisplayWidth := ResultSet.GetMetadata.GetColumnDisplaySize(I+1);
end;
or other Size determination.
Michal
Posted: 22.01.2013, 18:04
by EgonHugeist
miab3,
The size determination happens on creation the fields from the TFieldRefs. This is just a displaywidth alignment for MBCsets.
Michal, i've started with MariaDB. And currently i've new fails with the tests. The most of them happen if the current client encoding differ from the database encoding. Did you recognize something like this?
Posted: 23.01.2013, 17:44
by miab3
EgonHugeist,
[s]As for my watching MariaDB update is extremely slow compared to MySQL.[/s] (I use MySQL client).
I see that in version 5.5.28a it is fixed.
It is not good with Size.
In order to properly limit the number of characters in Delphi dbcontrols I now use(in line 1757):
Code: Select all
begin
{$IFNDEF FPC} Fields[i].Size := ResultSet.GetMetadata.GetColumnDisplaySize(I+1);{$ENDIF}
Fields[i].DisplayWidth := ResultSet.GetMetadata.GetColumnDisplaySize(I+1);
end;
For Lazarus I can not see a good way of limiting the number of input characters.
Michal
Posted: 24.01.2013, 21:52
by miab3
EgonHugeist,
EgonHugeist wrote:
Michal, i've started with MariaDB. And currently i've new fails with the tests. The most of them happen if the current client encoding differ from the database encoding. Did you recognize something like this?
Yes, I see that in fact the client encoding must be consistent with the encoding of the database on a server that was not errors.
Michal
Posted: 25.01.2013, 01:22
by EgonHugeist
miab3,
It is not good with Size.
In order to properly limit the number of characters in Delphi dbcontrols I now use(in line 1757):
Code: [Erweitern] [mehr anzeigen] [Verkleinern] [Alles auswählen]
begin
{$IFNDEF FPC} Fields.Size := ResultSet.GetMetadata.GetColumnDisplaySize(I+1);{$ENDIF}
Fields.DisplayWidth := ResultSet.GetMetadata.GetColumnDisplaySize(I+1);
end;
For Lazarus I can not see a good way of limiting the number of input characters.
patch applied R2144, thanks.
Yes, I see that in fact the client encoding must be consistent with the encoding of the database on a server that was not errors.
I see you confirm my current issues. Well i wrote with MDeams inbetween. What i didn't know is that libmariadb.dll is based on libmysql.dll v3.23 (the last pure GPL licence). AFAIK does monty provide a new v10 one, which i hope it fixes some of the isssues. Currently we've a very stable mysql implementation with libmysql.x.
Nice would be some answers how to fix that:
I've detected string truncations for varchar-fields. It seems linmariadb.dll doesn't convert the current client encoding. It might be possible the issue is another one?: 'SET NAMES blabla' has no effect on client side?
Also did i recognice using libmariadb.x fills no text-lobs but no exception is raised!? I'll debug me down to the hidden MySQL warings and check if something strange is suppressed currently. Lets hope the 10.0 client provide some more functionallity.
Michal, do you have some expiriences with 'INLINE' declarations? I'm thinking about using this compiler switch to speed up some code. But i don't know the real effect on using direct codebase instead of a procedure call. I had some thought's accordingly very small but oftenly called procedure like some of the core-layes and the current InternalGet/SetString of the RowAccessor.. What do you think?
Posted: 09.02.2013, 14:40
by miab3
EgonHugeist,
Zeos7.1-alpha branches_ testing_R2172:
http://svn.code.sf.net/p/zeoslib/code-0 ... sting-7.1/
compiles and runs on (I have tested):
- D2006,
- D2007 -> C++,
- DXE2 32/64 -> C++(32),
- Lazarus Windows7-64 1.1.0/fpc 2.7.1 32/64 (CodeTyphon ver 4.00),
(On Linux, I have not tried yet)
(Firebird 2.5.3, MySQL 5.5.18, MariaDB 5.5.28, PostgreSQL 9.2.1, MSSQL 2008 R2 Express, Oracle Database Express Edition 11g Release 2).
Why try to use Catalog (in TZConnection) for Oracle causes AV?!
Michal
Posted: 14.02.2013, 14:50
by miab3
EgonHugeist,
Arnaud Bouchez compared the performance of several libraries, including ZEOS 7.0.3:
http://blog.synopse.info/post/2013/02/1 ... RMot-s-ORM
Is not bad but you can see that the missing batch insert in ZEOS.
Watch the Catalog for Oracle, about which I wrote in the previous post?
Michal
Posted: 15.02.2013, 10:40
by EgonHugeist
miab3,
uh that looks like a great statistic! I'll register and start some contacts..
Watch the Catalog for Oracle, about which I wrote in the previous post?
Oh i've overlooked your hint. Well i'll make a test and check the reason for this nasty AV.
Posted: 21.02.2013, 13:13
by EgonHugeist
miab3,
iv'e started to optimize and support Synopse..
Is not bad but you can see that the missing batch insert in ZEOS.
Well that's true.
Why try to use Catalog (in TZConnection) for Oracle causes AV?!
Can you provide an example? I can't reproduce it...
Posted: 21.02.2013, 14:44
by miab3
EgonHugeist,
After press Catalog ComboBox in designtime I get (in attached):
The same thing killing Lazarus environment.
Michal
Posted: 22.02.2013, 12:04
by EgonHugeist
miab3,
patch done R2188 \testing-7.1
Thanks.
Now i'm thinking about redesigning the PropertyEditor. Oracle f.e. dosn't support Catalogs, but Schemas. MySQL, FB equals here. Postgre supports both. I din't test it yet but the logic tells me you wont see the oracle Schemas now. I've started a redisign but this means fixing some more MetaInformations which are present since years. This is a problem.
Proposal for a smarter way:
Code: Select all
procedure TZCatalogPropertyEditor.GetValueList(List: TStrings);
var
DbcConnection: IZConnection;
Url: string;
begin
if GetZComponent is TZAbstractConnection then
try
URL := (GetZComponent as TZAbstractConnection).GetURL;
(GetZComponent as TZAbstractConnection).ShowSqlHourGlass;
try
DbcConnection := DriverManager.GetConnectionWithParams(Url,
(GetZComponent as TZAbstractConnection).Properties);
if Assigned(DbcConnection) then
if DbcConnection.GetMetadata.GetDatabaseInfo.SupportsCatalogsInDataManipulation then
with DbcConnection.GetMetadata.GetCatalogs do
try
while Next do
List.Append(GetStringByName('TABLE_CAT'));
finally
Close;
end
else if DbcConnection.GetMetadata.GetDatabaseInfo.SupportsSchemasInDataManipulation then
with DbcConnection.GetMetadata.GetSchemas do
try
while Next do
List.Append(GetStringByName('TABLE_SCHEM'));
finally
Close;
end;
finally
(GetZComponent as TZAbstractConnection).HideSqlHourGlass;
end;
except
// raise;
end;
end;
So the driver decides what should be returned. What do you think?
Edit: Done R2190
Posted: 22.02.2013, 19:52
by miab3
EgonHugeist,
Thanks now is fine with Catalog in Oracle.
Zeos7.1-alpha branches_ testing_R2190:
http://svn.code.sf.net/p/zeoslib/code-0 ... sting-7.1/
compiles and runs on (I have tested):
- D2006,
- D2007 -> C++,
- DXE2 32/64 -> C++(32),
- Lazarus Windows7-64 1.1.0/fpc 2.7.1 32/64 (CodeTyphon ver 4.00),
(On Linux, I have not tried yet)
(Firebird 2.5.3, MySQL 5.5.18, MariaDB 5.5.28a, PostgreSQL 9.2.1, MSSQL 2008 R2 Express, Oracle Database Express Edition 11g Release 2).
Michal