Full Unicode/Ansi-Support in /testing branch

The alpha/beta tester's forum for ZeosLib 7.0.x series

Report problems concerning our Delphi 2009+ version and new Zeoslib 7.0 features here.

This is a forum that will be removed once the 7.X version goes into stable!!

Moderators: gto, EgonHugeist, olehs

Locked
User avatar
EgonHugeist
Zeos Project Manager
Zeos Project Manager
Posts: 1936
Joined: 31.03.2011, 22:38

Post by EgonHugeist »

miab3,

This is possible. Ludo did start the first implementations for the Nestedfields so we do actually discuss how we we implement this structure. The main issue is see is that this nesteds can have a endless full recursive structure. Also do we miss some internal enumerations to handle these type. And i was affraid the nestet datasets where supported sind BDE32 which means since Delphi3 or somithing like this. Oracle and other providers do support also other object we want to handle.

Actully did Ludo define a null lob for this type... So let's say this type is actually not supported and youve not recognized this (: . For a while ((;

You see we do what we can, Michal.

Michael
Best regards, Michael

You want to help? http://zeoslib.sourceforge.net/viewtopic.php?f=4&t=3671
You found a (possible) bug? Use the new bugtracker dude! http://sourceforge.net/p/zeoslib/tickets/

Image
miab3
Zeos Test Team
Zeos Test Team
Posts: 1310
Joined: 11.05.2012, 12:32
Location: Poland

Post by miab3 »

@EgonHugeist

After replacing in appropriate packages from ZPlainOracle9i to ZPlainOracleConstants and removing ZPlainDbLibMsSql7 and ZPlainDbLibSybaseAse125
Zeos7testing_1583 compiles and runs on D2006, DXE2 32/64, LazarusWin1.1.0/fpc 2.7.1 32/64.

(DXE2 still generated an error when I try open the Oracle table AQ$_QUEUES)

Michal
ludob
Fresh Boarder
Fresh Boarder
Posts: 17
Joined: 04.07.2012, 09:35

Post by ludob »

@miab3

is there an ora-something or other error message that comes with the exception? I don't have dxe2 so I can't test. Is the error on win32?

Ludo
miab3
Zeos Test Team
Zeos Test Team
Posts: 1310
Joined: 11.05.2012, 12:32
Location: Poland

Post by miab3 »

@ludob

I wrote about it three posts before (with a picture attached):

http://zeos.firmos.at/viewtopic.php?t=3 ... &start=269

line 306:

CheckOracleError(FPlainDriver, FErrorHandle,
FPlainDriver.ObjectPin(Connection.GetConnectionHandle, FErrorHandle, ptype, nil,
OCI_PIN_ANY, OCI_DURATION_SESSION, OCI_LOCK_NONE,
@addr_tdo)
,lcExecute, FSQL);

Michal
User avatar
EgonHugeist
Zeos Project Manager
Zeos Project Manager
Posts: 1936
Joined: 31.03.2011, 22:38

Post by EgonHugeist »

@ludob,

got the same Result. Wondering that i have this with D7 and XE but not with D2007.
But like i wrote Michal before, we actually do discuss the "Howto" and actually nested tables are not supported..

Michael
Best regards, Michael

You want to help? http://zeoslib.sourceforge.net/viewtopic.php?f=4&t=3671
You found a (possible) bug? Use the new bugtracker dude! http://sourceforge.net/p/zeoslib/tickets/

Image
miab3
Zeos Test Team
Zeos Test Team
Posts: 1310
Joined: 11.05.2012, 12:32
Location: Poland

Post by miab3 »

@EgonHugeist

Michael,

About:
http://zeosbugs.firmos.at/view.php?id=263

Why have you founded the first column is integer type?
http://www.sqlite.org/faq.html#q3

Michal
User avatar
EgonHugeist
Zeos Project Manager
Zeos Project Manager
Posts: 1936
Joined: 31.03.2011, 22:38

Post by EgonHugeist »

miab3,

Michael, thank you for pointing me to the documentation. But isn't this self explainatory?
IF a type is defined like TEXT, Char, Varchar then this column is a strng value for the PrimaryKey on the other hand if nothing is defined it is an Integer. I got this results also on debugging in various modes, Michal.

So the patch is right, i'm sure.

Michael
Best regards, Michael

You want to help? http://zeoslib.sourceforge.net/viewtopic.php?f=4&t=3671
You found a (possible) bug? Use the new bugtracker dude! http://sourceforge.net/p/zeoslib/tickets/

Image
miab3
Zeos Test Team
Zeos Test Team
Posts: 1310
Joined: 11.05.2012, 12:32
Location: Poland

Post by miab3 »

@EgonHugeist

I did not know this about SQLite, thanks.

Zeos7testing_1590 compiles and runs on D2006, DXE2 32/64, LazarusWin1.1.0/fpc 2.7.1 32/64. (With a small exception on Oracle AQ$_QUEUES)

Michal
User avatar
EgonHugeist
Zeos Project Manager
Zeos Project Manager
Posts: 1936
Joined: 31.03.2011, 22:38

Post by EgonHugeist »

miab3,

Don't worry about SQLite knowledge. SQLite is out of al rules of the SQL standarts. Terrible but light weight engine and easy to portate.. Curious to deveop the support.

Thank you again for checking the packages.

Michael
Best regards, Michael

You want to help? http://zeoslib.sourceforge.net/viewtopic.php?f=4&t=3671
You found a (possible) bug? Use the new bugtracker dude! http://sourceforge.net/p/zeoslib/tickets/

Image
miab3
Zeos Test Team
Zeos Test Team
Posts: 1310
Joined: 11.05.2012, 12:32
Location: Poland

Post by miab3 »

@EgonHugeist

Michael,
Light but not for ZEOS.
I recall that for SQLite does not fetch limiting in ZEOS. To open a table in dataset takes time equal to the load needed for the entire table.
Thus, for table with 1 million records takes 15-30 seconds to open.

Michal
User avatar
EgonHugeist
Zeos Project Manager
Zeos Project Manager
Posts: 1936
Joined: 31.03.2011, 22:38

Post by EgonHugeist »

miab3,

again right. As far is i know do we use FetchAll for SQLite. Then the whole table is fuffered. I personally di never play with this db. So i can't say if this is an issue of SQLite or Zeos(FetchAll).

I only fixed all lately reported leaks and do run the suites again an again. Michal actually we do discuss about the Mantis reports. Some of them are surely totaly outdated. Hm but have not the time to create all tests for all issues on the bugtracker. Also are some in the forum to find. Can you help us here? What do you propose we should do with such veeerrry old reports?

Michael
Best regards, Michael

You want to help? http://zeoslib.sourceforge.net/viewtopic.php?f=4&t=3671
You found a (possible) bug? Use the new bugtracker dude! http://sourceforge.net/p/zeoslib/tickets/

Image
miab3
Zeos Test Team
Zeos Test Team
Posts: 1310
Joined: 11.05.2012, 12:32
Location: Poland

Post by miab3 »

@EgonHugeist

Michael,
I wrote about it.
On the main portal page Zeoslib put an extensive note with the current date on the current status of the project with links.
A report bugs outdated guide for this entry and the local forum.

Michal
miab3
Zeos Test Team
Zeos Test Team
Posts: 1310
Joined: 11.05.2012, 12:32
Location: Poland

Post by miab3 »

@EgonHugeist

Michael,
Lazarus does not know GetDetailDataSets ()

Michal
User avatar
EgonHugeist
Zeos Project Manager
Zeos Project Manager
Posts: 1936
Joined: 31.03.2011, 22:38

Post by EgonHugeist »

miab3,

Michal, thank you for that hint. I reverted this patch and will it improve otherwise. R1596 The purpose was this:

Code: Select all

procedure TZTestMasterDetailCase.TestClientDatasetWithForeignKey;
var
  SQLMonitor: TZSQLMonitor;
  CommitCount, I: Integer;

begin
  SQLMonitor := TZSQLMonitor.Create(nil);
  SQLMonitor.Active := True;
  MasterQuery.SQL.Text := 'SELECT * FROM department ORDER BY dep_id';
  MasterQuery.Open;

  DetailQuery.SQL.Text := 'SELECT * FROM people';
  DetailQuery.MasterSource := MasterDataSource;
  DetailQuery.MasterFields := 'dep_id';
  DetailQuery.LinkedFields := 'p_dep_id';
  DetailQuery.Open;
  CommitCount := 0;
  try
    MasterQuery.Append;
    MasterQuery.FieldByName('dep_id').AsInteger := TestRowID;
    MasterQuery.FieldByName('dep_name').AsString := 'öäüüäö';
    MasterQuery.FieldByName('dep_shname').AsString := 'abc';
    MasterQuery.FieldByName('dep_address').AsString := 'A adress of öäüüäö';
    CheckEquals(True, (MasterQuery.State = dsInsert), 'MasterQuery Insert-State');

    DetailQuery.Append;
    DetailQuery.FieldByName('p_id').AsInteger := TestRowID;
    DetailQuery.FieldByName('p_dep_id').AsInteger := TestRowID;
    DetailQuery.FieldByName('p_name').AsString := 'üäööäü';
    DetailQuery.FieldByName('p_begin_work').AsDateTime := now;
    DetailQuery.FieldByName('p_end_work').AsDateTime := now;
    DetailQuery.FieldByName('p_picture').AsString := '';
    DetailQuery.FieldByName('p_resume').AsString := '';
    DetailQuery.FieldByName('p_redundant').AsInteger := 5;
    CheckEquals(True, (DetailQuery.State = dsInsert), 'MasterQuery Insert-State');

    MasterQuery.Post;

    CheckEquals(True, (MasterQuery.State = dsBrowse), 'MasterQuery Browse-State');
    CheckEquals(True, (DetailQuery.State = dsBrowse), 'DetailQuery Browse-State');

    for i := 0 to SQLMonitor.TraceCount -1 do
      if SQLMonitor.TraceList[i].Category = lcTransaction then
        if Pos('COMMIT', UpperCase(SQLMonitor.TraceList[i].Message)) > 0 then
          Inc(CommitCount);
    CheckEquals(1, CommitCount, 'CommitCount');
  finally
    MasterQuery.SQL.Text := 'delete from people where p_id = '+IntToStr(TestRowID);
    MasterQuery.ExecSQL;
    MasterQuery.SQL.Text := 'delete from department where dep_id = '+IntToStr(TestRowID);
    MasterQuery.ExecSQL;
    SQLMonitor.Free;
  end;
end;
Here i set MasterDetail-Relations and want to update all of then. Table department and people have a ForeignKey constraint. So we must update the Master first on the other hand we only get exceptions.

Do you know more about the ClientDataSet rules? Should this be possible? And are the more then one Transaction allowed?

Michael
Best regards, Michael

You want to help? http://zeoslib.sourceforge.net/viewtopic.php?f=4&t=3671
You found a (possible) bug? Use the new bugtracker dude! http://sourceforge.net/p/zeoslib/tickets/

Image
ludob
Fresh Boarder
Fresh Boarder
Posts: 17
Joined: 04.07.2012, 09:35

Post by ludob »

@miab3.

Sorry. I wasn't logged in when looking at the thread and had no idea there was a picture attached. Something I need to remember;)

Parameter 7 is a enumerator and passed on as ub2. I wonder if this is not again the {$Z+} issue. Do you have the latest Zeos.inc that sets {$Z+} for all Delphi configs on line 188?
Locked