You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(13) |
Sep
(25) |
Oct
(10) |
Nov
(19) |
Dec
(20) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
|
Feb
(206) |
Mar
(43) |
Apr
(25) |
May
(20) |
Jun
(69) |
Jul
(121) |
Aug
(95) |
Sep
(122) |
Oct
(213) |
Nov
(46) |
Dec
(39) |
2006 |
Jan
(28) |
Feb
(57) |
Mar
(21) |
Apr
(7) |
May
(11) |
Jun
(2) |
Jul
(8) |
Aug
(13) |
Sep
(2) |
Oct
(2) |
Nov
(20) |
Dec
(16) |
2007 |
Jan
(9) |
Feb
(15) |
Mar
|
Apr
(4) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(3) |
Aug
(1) |
Sep
(9) |
Oct
|
Nov
(1) |
Dec
|
2009 |
Jan
|
Feb
|
Mar
(8) |
Apr
(1) |
May
|
Jun
|
Jul
(11) |
Aug
(57) |
Sep
(2) |
Oct
(6) |
Nov
|
Dec
(7) |
2010 |
Jan
(11) |
Feb
(1) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
(1) |
Aug
(2) |
Sep
(27) |
Oct
(3) |
Nov
(7) |
Dec
(1) |
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(10) |
Oct
|
Nov
|
Dec
|
2012 |
Jan
(8) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
(3) |
Nov
(1) |
Dec
(1) |
2013 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
(4) |
Dec
|
2015 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
(1) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
(4) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
(3) |
Oct
|
Nov
(4) |
Dec
|
2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
From: <fas...@us...> - 2006-11-27 01:16:00
|
Revision: 718 http://svn.sourceforge.net/instantobjects/revision/?rev=718&view=rev Author: fastbike2 Date: 2006-11-26 17:15:43 -0800 (Sun, 26 Nov 2006) Log Message: ----------- Updated version to 2.0.0.0 in resource files Modified Paths: -------------- trunk/ReleaseTools/InstantVersion.res trunk/Source/Brokers/ADO/D2005/DclIOADO.res trunk/Source/Brokers/ADO/D2005/IOADO.res trunk/Source/Brokers/ADO/D2006/DclIOADO.res trunk/Source/Brokers/ADO/D2006/IOADO.res trunk/Source/Brokers/ADO/D5/DclIOADO_D5.res trunk/Source/Brokers/ADO/D5/IOADO_D5.res trunk/Source/Brokers/ADO/D6/DclIOADO.res trunk/Source/Brokers/ADO/D6/IOADO.res trunk/Source/Brokers/ADO/D7/DclIOADO.res trunk/Source/Brokers/ADO/D7/IOADO.res trunk/Source/Brokers/ADS/D5/DclIOADS_D5.res trunk/Source/Brokers/ADS/D5/ioads_D5.res trunk/Source/Brokers/BDE/D2005/DclIOBDE.res trunk/Source/Brokers/BDE/D2005/IOBDE.res trunk/Source/Brokers/BDE/D2006/DclIOBDE.res trunk/Source/Brokers/BDE/D2006/IOBDE.res trunk/Source/Brokers/BDE/D5/DclIOBDE_D5.res trunk/Source/Brokers/BDE/D5/Iobde_D5.res trunk/Source/Brokers/BDE/D6/DclIOBDE.res trunk/Source/Brokers/BDE/D6/IOBDE.res trunk/Source/Brokers/BDE/D7/DclIOBDE.res trunk/Source/Brokers/BDE/D7/IOBDE.res trunk/Source/Brokers/DBISAM/D6/DclDBISAM.res trunk/Source/Brokers/DBISAM/D6/IODBISAM.res trunk/Source/Brokers/DBISAM/D7/DclDBISAM.res trunk/Source/Brokers/DBISAM/D7/IODBISAM.res trunk/Source/Brokers/DBX/D2005/DclIODBX.res trunk/Source/Brokers/DBX/D2005/IODBX.res trunk/Source/Brokers/DBX/D2006/DclIODBX.res trunk/Source/Brokers/DBX/D2006/IODBX.res trunk/Source/Brokers/DBX/D6/DclIODBX.res trunk/Source/Brokers/DBX/D6/IODBX.res trunk/Source/Brokers/DBX/D7/DclIODBX.res trunk/Source/Brokers/DBX/D7/IODBX.res trunk/Source/Brokers/DBX/K3/DclIODBX.res trunk/Source/Brokers/DBX/K3/IODBX.res trunk/Source/Brokers/FlashFiler/D5/DclIOff_D5.res trunk/Source/Brokers/FlashFiler/D5/ioff_D5.res trunk/Source/Brokers/IBX/D2005/DclIOIBX.res trunk/Source/Brokers/IBX/D2005/IOIBX.res trunk/Source/Brokers/IBX/D2006/DclIOIBX.res trunk/Source/Brokers/IBX/D2006/IOIBX.res trunk/Source/Brokers/IBX/D5/DclIOIBX_D5.res trunk/Source/Brokers/IBX/D5/Ioibx_D5.res trunk/Source/Brokers/IBX/D6/DclIOIBX.res trunk/Source/Brokers/IBX/D6/IOIBX.res trunk/Source/Brokers/IBX/D7/DclIOIBX.res trunk/Source/Brokers/IBX/D7/IOIBX.res trunk/Source/Brokers/NexusDb/D2005/DclIONexusDB.res trunk/Source/Brokers/NexusDb/D2005/IONexusDB.res trunk/Source/Brokers/NexusDb/D2006/DclIONexusDB.res trunk/Source/Brokers/NexusDb/D2006/IONexusDB.res trunk/Source/Brokers/NexusDb/D5/DclIONexusDB_D5.res trunk/Source/Brokers/NexusDb/D5/IONexusDB_D5.res trunk/Source/Brokers/NexusDb/D6/DclIONexusDB.res trunk/Source/Brokers/NexusDb/D6/IONexusDB.res trunk/Source/Brokers/NexusDb/D7/DclIONexusDB.res trunk/Source/Brokers/NexusDb/D7/IONexusDB.res trunk/Source/Brokers/UIB/D2005/DclIOUIB.res trunk/Source/Brokers/UIB/D2005/IOUIB.res trunk/Source/Brokers/UIB/D2006/DclIOUIB.res trunk/Source/Brokers/UIB/D2006/IOUIB.res trunk/Source/Brokers/UIB/D5/DclIOUIB_D5.res trunk/Source/Brokers/UIB/D5/IOUIB_D5.res trunk/Source/Brokers/UIB/D6/DclIOUIB.res trunk/Source/Brokers/UIB/D6/IOUIB.res trunk/Source/Brokers/UIB/D7/DclIOUIB.res trunk/Source/Brokers/UIB/D7/IOUIB.res trunk/Source/Brokers/XML/D2005/DclIOXML.res trunk/Source/Brokers/XML/D2005/IOXML.res trunk/Source/Brokers/XML/D2006/DclIOXML.res trunk/Source/Brokers/XML/D2006/IOXML.res trunk/Source/Brokers/XML/D5/DclIOXML_D5.res trunk/Source/Brokers/XML/D5/Ioxml_D5.res trunk/Source/Brokers/XML/D6/DclIOXML.res trunk/Source/Brokers/XML/D6/IOXML.res trunk/Source/Brokers/XML/D7/DclIOXML.res trunk/Source/Brokers/XML/D7/IOXML.res trunk/Source/Brokers/XML/k3/DclIOXML.res trunk/Source/Brokers/XML/k3/IOXML.res trunk/Source/Brokers/ZeosDBO/D2005/DclIOZeosDBO.res trunk/Source/Brokers/ZeosDBO/D2005/IOZeosDBO.res trunk/Source/Brokers/ZeosDBO/D2006/DclIOZeosDBO.res trunk/Source/Brokers/ZeosDBO/D2006/IOZeosDBO.res trunk/Source/Brokers/ZeosDBO/D5/DclIOZeosDBO_D5.res trunk/Source/Brokers/ZeosDBO/D5/IOZeosDBO_D5.res trunk/Source/Brokers/ZeosDBO/D6/DclIOZeosDBO.res trunk/Source/Brokers/ZeosDBO/D6/IOZeosDBO.res trunk/Source/Brokers/ZeosDBO/D7/DclIOZeosDBO.res trunk/Source/Brokers/ZeosDBO/D7/IOZeosDBO.res trunk/Source/Catalogs/IBFb/D2005/IOIBFbCatalog.res trunk/Source/Catalogs/IBFb/D2006/IOIBFbCatalog.res trunk/Source/Catalogs/IBFb/D5/IOIBFbCatalog_D5.res trunk/Source/Catalogs/IBFb/D6/IOIBFbCatalog.res trunk/Source/Catalogs/IBFb/D7/IOIBFbCatalog.res trunk/Source/Catalogs/IBFb/K3/IOIBFbCatalog.res trunk/Source/Catalogs/MSSql/D2005/IOMSSqlCatalog.res trunk/Source/Catalogs/MSSql/D2006/IOMSSqlCatalog.res trunk/Source/Catalogs/MSSql/D5/IOMSSqlCatalog_D5.res trunk/Source/Catalogs/MSSql/D6/IOMSSqlCatalog.res trunk/Source/Catalogs/MSSql/D7/IOMSSqlCatalog.res trunk/Source/Catalogs/MSSql/K3/IOMSSqlCatalog.res trunk/Source/Core/D2005/IOCore.res trunk/Source/Core/D2006/IOCore.res trunk/Source/Core/D5/IOCore_D5.res trunk/Source/Core/D6/IOCore.res trunk/Source/Core/D7/IOCore.res trunk/Source/Core/K3/IOCore.res trunk/Source/Design/D2005/DclIOCore.res trunk/Source/Design/D2006/DclIOCore.res trunk/Source/Design/D5/DclIOCore_D5.res trunk/Source/Design/D6/DclIOCore.res trunk/Source/Design/D7/DclIOCore.res trunk/Source/Design/K3/DclIOCore.res Modified: trunk/ReleaseTools/InstantVersion.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/ADO/D2005/DclIOADO.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/ADO/D2005/IOADO.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/ADO/D2006/DclIOADO.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/ADO/D2006/IOADO.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/ADO/D5/DclIOADO_D5.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/ADO/D5/IOADO_D5.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/ADO/D6/DclIOADO.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/ADO/D6/IOADO.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/ADO/D7/DclIOADO.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/ADO/D7/IOADO.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/ADS/D5/DclIOADS_D5.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/ADS/D5/ioads_D5.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/BDE/D2005/DclIOBDE.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/BDE/D2005/IOBDE.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/BDE/D2006/DclIOBDE.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/BDE/D2006/IOBDE.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/BDE/D5/DclIOBDE_D5.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/BDE/D5/Iobde_D5.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/BDE/D6/DclIOBDE.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/BDE/D6/IOBDE.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/BDE/D7/DclIOBDE.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/BDE/D7/IOBDE.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/DBISAM/D6/DclDBISAM.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/DBISAM/D6/IODBISAM.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/DBISAM/D7/DclDBISAM.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/DBISAM/D7/IODBISAM.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/DBX/D2005/DclIODBX.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/DBX/D2005/IODBX.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/DBX/D2006/DclIODBX.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/DBX/D2006/IODBX.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/DBX/D6/DclIODBX.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/DBX/D6/IODBX.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/DBX/D7/DclIODBX.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/DBX/D7/IODBX.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/DBX/K3/DclIODBX.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/DBX/K3/IODBX.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/FlashFiler/D5/DclIOff_D5.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/FlashFiler/D5/ioff_D5.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/IBX/D2005/DclIOIBX.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/IBX/D2005/IOIBX.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/IBX/D2006/DclIOIBX.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/IBX/D2006/IOIBX.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/IBX/D5/DclIOIBX_D5.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/IBX/D5/Ioibx_D5.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/IBX/D6/DclIOIBX.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/IBX/D6/IOIBX.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/IBX/D7/DclIOIBX.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/IBX/D7/IOIBX.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/NexusDb/D2005/DclIONexusDB.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/NexusDb/D2005/IONexusDB.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/NexusDb/D2006/DclIONexusDB.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/NexusDb/D2006/IONexusDB.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/NexusDb/D5/DclIONexusDB_D5.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/NexusDb/D5/IONexusDB_D5.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/NexusDb/D6/DclIONexusDB.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/NexusDb/D6/IONexusDB.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/NexusDb/D7/DclIONexusDB.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/NexusDb/D7/IONexusDB.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/UIB/D2005/DclIOUIB.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/UIB/D2005/IOUIB.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/UIB/D2006/DclIOUIB.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/UIB/D2006/IOUIB.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/UIB/D5/DclIOUIB_D5.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/UIB/D5/IOUIB_D5.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/UIB/D6/DclIOUIB.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/UIB/D6/IOUIB.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/UIB/D7/DclIOUIB.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/UIB/D7/IOUIB.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/XML/D2005/DclIOXML.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/XML/D2005/IOXML.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/XML/D2006/DclIOXML.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/XML/D2006/IOXML.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/XML/D5/DclIOXML_D5.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/XML/D5/Ioxml_D5.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/XML/D6/DclIOXML.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/XML/D6/IOXML.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/XML/D7/DclIOXML.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/XML/D7/IOXML.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/XML/k3/DclIOXML.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/XML/k3/IOXML.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/ZeosDBO/D2005/DclIOZeosDBO.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/ZeosDBO/D2005/IOZeosDBO.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/ZeosDBO/D2006/DclIOZeosDBO.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/ZeosDBO/D2006/IOZeosDBO.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/ZeosDBO/D5/DclIOZeosDBO_D5.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/ZeosDBO/D5/IOZeosDBO_D5.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/ZeosDBO/D6/DclIOZeosDBO.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/ZeosDBO/D6/IOZeosDBO.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/ZeosDBO/D7/DclIOZeosDBO.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/ZeosDBO/D7/IOZeosDBO.res =================================================================== (Binary files differ) Modified: trunk/Source/Catalogs/IBFb/D2005/IOIBFbCatalog.res =================================================================== (Binary files differ) Modified: trunk/Source/Catalogs/IBFb/D2006/IOIBFbCatalog.res =================================================================== (Binary files differ) Modified: trunk/Source/Catalogs/IBFb/D5/IOIBFbCatalog_D5.res =================================================================== (Binary files differ) Modified: trunk/Source/Catalogs/IBFb/D6/IOIBFbCatalog.res =================================================================== (Binary files differ) Modified: trunk/Source/Catalogs/IBFb/D7/IOIBFbCatalog.res =================================================================== (Binary files differ) Modified: trunk/Source/Catalogs/IBFb/K3/IOIBFbCatalog.res =================================================================== (Binary files differ) Modified: trunk/Source/Catalogs/MSSql/D2005/IOMSSqlCatalog.res =================================================================== (Binary files differ) Modified: trunk/Source/Catalogs/MSSql/D2006/IOMSSqlCatalog.res =================================================================== (Binary files differ) Modified: trunk/Source/Catalogs/MSSql/D5/IOMSSqlCatalog_D5.res =================================================================== (Binary files differ) Modified: trunk/Source/Catalogs/MSSql/D6/IOMSSqlCatalog.res =================================================================== (Binary files differ) Modified: trunk/Source/Catalogs/MSSql/D7/IOMSSqlCatalog.res =================================================================== (Binary files differ) Modified: trunk/Source/Catalogs/MSSql/K3/IOMSSqlCatalog.res =================================================================== (Binary files differ) Modified: trunk/Source/Core/D2005/IOCore.res =================================================================== (Binary files differ) Modified: trunk/Source/Core/D2006/IOCore.res =================================================================== (Binary files differ) Modified: trunk/Source/Core/D5/IOCore_D5.res =================================================================== (Binary files differ) Modified: trunk/Source/Core/D6/IOCore.res =================================================================== (Binary files differ) Modified: trunk/Source/Core/D7/IOCore.res =================================================================== (Binary files differ) Modified: trunk/Source/Core/K3/IOCore.res =================================================================== (Binary files differ) Modified: trunk/Source/Design/D2005/DclIOCore.res =================================================================== (Binary files differ) Modified: trunk/Source/Design/D2006/DclIOCore.res =================================================================== (Binary files differ) Modified: trunk/Source/Design/D5/DclIOCore_D5.res =================================================================== (Binary files differ) Modified: trunk/Source/Design/D6/DclIOCore.res =================================================================== (Binary files differ) Modified: trunk/Source/Design/D7/DclIOCore.res =================================================================== (Binary files differ) Modified: trunk/Source/Design/K3/DclIOCore.res =================================================================== (Binary files differ) |
From: <na...@us...> - 2006-11-17 08:48:22
|
Revision: 717 http://svn.sourceforge.net/instantobjects/revision/?rev=717&view=rev Author: nandod Date: 2006-11-17 00:48:21 -0800 (Fri, 17 Nov 2006) Log Message: ----------- * removed extraneous comment. Modified Paths: -------------- trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas Modified: trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas =================================================================== --- trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas 2006-11-16 19:17:44 UTC (rev 716) +++ trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas 2006-11-17 08:48:21 UTC (rev 717) @@ -347,7 +347,6 @@ VersionDataSet.Open; try FSQLServerVersion := VersionDataSet.Fields[0].AsString; - // Trim everything but the first line, which contains the info we need. finally VersionDataSet.Close; end; |
From: <bvs...@us...> - 2006-11-16 19:17:44
|
Revision: 716 http://svn.sourceforge.net/instantobjects/revision/?rev=716&view=rev Author: bvsimmons Date: 2006-11-16 11:17:44 -0800 (Thu, 16 Nov 2006) Log Message: ----------- + Final correction for revision 713 to provide support for SQL Server 7 in the MSSqlCatalog, deleted unnecessary statement. Revision Links: -------------- http://svn.sourceforge.net/instantobjects/revision/?rev=713&view=rev Modified Paths: -------------- trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas Modified: trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas =================================================================== --- trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas 2006-11-16 13:12:02 UTC (rev 715) +++ trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas 2006-11-16 19:17:44 UTC (rev 716) @@ -348,7 +348,6 @@ try FSQLServerVersion := VersionDataSet.Fields[0].AsString; // Trim everything but the first line, which contains the info we need. - FSQLServerVersion := Copy(FSQLServerVersion, 1, Pos(#$A#9, FSQLServerVersion) - 1); finally VersionDataSet.Close; end; |
From: <bvs...@us...> - 2006-11-16 13:12:04
|
Revision: 715 http://svn.sourceforge.net/instantobjects/revision/?rev=715&view=rev Author: bvsimmons Date: 2006-11-16 05:12:02 -0800 (Thu, 16 Nov 2006) Log Message: ----------- + correction for revision 713 to provide support for SQL Server 7 in the MSSqlCatalog. Revision Links: -------------- http://svn.sourceforge.net/instantobjects/revision/?rev=713&view=rev Modified Paths: -------------- trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas Modified: trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas =================================================================== --- trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas 2006-11-16 09:03:07 UTC (rev 714) +++ trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas 2006-11-16 13:12:02 UTC (rev 715) @@ -348,7 +348,7 @@ try FSQLServerVersion := VersionDataSet.Fields[0].AsString; // Trim everything but the first line, which contains the info we need. - FSQLServerVersion := Copy(FSQLServerVersion, 1, Pos(sLineBreak, Result) - 1); + FSQLServerVersion := Copy(FSQLServerVersion, 1, Pos(#$A#9, FSQLServerVersion) - 1); finally VersionDataSet.Close; end; |
From: <na...@us...> - 2006-11-16 09:03:07
|
Revision: 714 http://svn.sourceforge.net/instantobjects/revision/?rev=714&view=rev Author: nandod Date: 2006-11-16 01:03:07 -0800 (Thu, 16 Nov 2006) Log Message: ----------- * removed duplicate definition of sLineBreak; checked and fixed uses clauses accordingly. Modified Paths: -------------- trunk/Source/Core/InstantBrokers.pas trunk/Source/Core/InstantClasses.pas Modified: trunk/Source/Core/InstantBrokers.pas =================================================================== --- trunk/Source/Core/InstantBrokers.pas 2006-11-16 08:38:33 UTC (rev 713) +++ trunk/Source/Core/InstantBrokers.pas 2006-11-16 09:03:07 UTC (rev 714) @@ -40,7 +40,8 @@ interface -uses SysUtils, Classes, Db, InstantPersistence, InstantTypes, InstantMetadata, +uses + SysUtils, Classes, Db, InstantPersistence, InstantTypes, InstantMetadata, InstantConsts, InstantClasses, Contnrs, InstantCommand; type Modified: trunk/Source/Core/InstantClasses.pas =================================================================== --- trunk/Source/Core/InstantClasses.pas 2006-11-16 08:38:33 UTC (rev 713) +++ trunk/Source/Core/InstantClasses.pas 2006-11-16 09:03:07 UTC (rev 714) @@ -417,10 +417,6 @@ ('Binary format', 'XML format'); -{$IFDEF D5} - sLineBreak = #13#10; -{$ENDIF} - function InstantBuildEndTag(const TagName: string): string; function InstantBuildStartTag(const TagName: string): string; procedure InstantCheckClass(AClass: TClass; MinimumClass: TClass); |
From: <na...@us...> - 2006-11-16 08:38:33
|
Revision: 713 http://svn.sourceforge.net/instantobjects/revision/?rev=713&view=rev Author: nandod Date: 2006-11-16 00:38:33 -0800 (Thu, 16 Nov 2006) Log Message: ----------- + support for SQL Server 7 in the MSSqlCatalog. Modified Paths: -------------- trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas Modified: trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas =================================================================== --- trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas 2006-11-14 16:16:43 UTC (rev 712) +++ trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas 2006-11-16 08:38:33 UTC (rev 713) @@ -45,6 +45,7 @@ // Can be used with a SQL broker that accesses MS-SQL databases. TInstantMSSqlCatalog = class(TInstantSQLBrokerCatalog) private + FSQLServerVersion: string; procedure AddFieldMetadatas(TableMetadata: TInstantTableMetadata); procedure AddIndexMetadatas(TableMetadata: TInstantTableMetadata); procedure AddTableMetadatas(TableMetadatas: TInstantTableMetadatas); @@ -55,9 +56,17 @@ function GetSelectIndexesSQL(const ATableName: string): string; function GetSelectIndexFieldsSQL(const AIndexName: string): string; function GetSelectTablesSQL: string; + { + Returns a string which is formatted as follows: + 'Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86)' + 'Microsoft SQL Server 2000 - 8.00.760 (Intel X86)' + 'Microsoft SQL Server 7.00 - 7.00.623 (Intel X86)' + See http://support.microsoft.com/kb/321185 for complete details + The string is retrieved on demand and then cached in FSQLServerVersion. + } + function GetSQLServerVersion: string; public - procedure InitTableMetadatas(ATableMetadatas: TInstantTableMetadatas); - override; + procedure InitTableMetadatas(ATableMetadatas: TInstantTableMetadatas); override; end; implementation @@ -264,14 +273,23 @@ function TInstantMSSqlCatalog.GetSelectIndexesSQL( const ATableName: string): string; + + function GetSortOrderExpression: string; + begin + // All indexes are reported as ascending in SQL Server 7. + if Pos('Microsoft SQL Server 7.00', GetSQLServerVersion) > 0 then + Result := '''A''' + else + Result := '(CASE WHEN indexkey_property(x.id, x.indid, 1, N''isdescending'') <> 0 THEN ''D'' ELSE ''A'' END)'; + end; + begin Result := 'SELECT DISTINCT ' + ' x.name AS INDEX_NAME, ' + ' (CASE WHEN x.status & 0x800 <> 0 THEN 4 ELSE 0 END) + ' + ' (CASE WHEN x.status & 0x2 <> 0 THEN 2 ELSE 1 END) ' + - ' AS INDEX_TYPE, ' + - ' (CASE WHEN indexkey_property(x.id, x.indid, 1, N''isdescending'') <> 0 THEN ''D'' ELSE ''A'' END) AS SORT_ORDER ' + + ' AS INDEX_TYPE, ' + GetSortOrderExpression + ' AS SORT_ORDER ' + 'FROM ' + ' sysobjects o, sysindexes x, syscolumns c, sysindexkeys xk ' + 'WHERE ' + @@ -318,9 +336,33 @@ 'ORDER BY name'; end; +function TInstantMSSqlCatalog.GetSQLServerVersion: string; +var + VersionDataSet: TDataSet; +begin + if FSQLServerVersion = '' then + begin + VersionDataSet := Broker.AcquireDataSet('SELECT @@VERSION'); + try + VersionDataSet.Open; + try + FSQLServerVersion := VersionDataSet.Fields[0].AsString; + // Trim everything but the first line, which contains the info we need. + FSQLServerVersion := Copy(FSQLServerVersion, 1, Pos(sLineBreak, Result) - 1); + finally + VersionDataSet.Close; + end; + finally + Broker.ReleaseDataSet(VersionDataSet); + end; + end; + Result := FSQLServerVersion; +end; + procedure TInstantMSSqlCatalog.InitTableMetadatas( ATableMetadatas: TInstantTableMetadatas); begin + FSQLServerVersion := ''; ATableMetadatas.Clear; AddTableMetadatas(ATableMetadatas); end; |
From: <na...@us...> - 2006-11-14 16:16:50
|
Revision: 712 http://svn.sourceforge.net/instantobjects/revision/?rev=712&view=rev Author: nandod Date: 2006-11-14 08:16:43 -0800 (Tue, 14 Nov 2006) Log Message: ----------- * XML broker: now only creates one file for each object, in the concrete class' folder. * XML broker: removed support for versioning and utf-8 "BOT" encoding. * svn:ignore set on a bunch of folders. Modified Paths: -------------- trunk/Source/Brokers/XML/InstantXML.pas trunk/Source/Brokers/XML/InstantXMLConnectionDefEdit.dfm trunk/Source/Brokers/XML/InstantXMLConnectionDefEdit.pas Property Changed: ---------------- trunk/Demos/Intro/ trunk/Demos/PrimerCross/ trunk/Demos/PrimerCross/Model/ trunk/Source/Brokers/BDE/D2006/ trunk/Source/Brokers/DBX/D2006/ trunk/Source/Brokers/IBX/D2006/ trunk/Source/Brokers/XML/ trunk/Source/Brokers/XML/D2006/ trunk/Source/Catalogs/MSSql/D2006/ trunk/Source/Core/ trunk/Source/Design/ trunk/Source/Design/D2006/ trunk/Tests/ trunk/Tests/ubmock/src/ Property changes on: trunk/Demos/Intro ___________________________________________________________________ Name: svn:ignore - *.dcu *.~* *.ddp *.exe + *.dcu *.~* *.ddp *.exe __history *.identcache *.local Property changes on: trunk/Demos/PrimerCross ___________________________________________________________________ Name: svn:ignore - *.dcu *.~* *.ddp *.exe + *.dcu *.~* *.ddp *.exe __history *.identcache *.local Property changes on: trunk/Demos/PrimerCross/Model ___________________________________________________________________ Name: svn:ignore + *.dcu Property changes on: trunk/Source/Brokers/BDE/D2006 ___________________________________________________________________ Name: svn:ignore - *.dcu __history *.local *.cfg + *.dcu __history *.local *.cfg *.identcache Property changes on: trunk/Source/Brokers/DBX/D2006 ___________________________________________________________________ Name: svn:ignore - *.dcu __history *.local *.cfg + *.dcu __history *.local *.cfg *.identcache Property changes on: trunk/Source/Brokers/IBX/D2006 ___________________________________________________________________ Name: svn:ignore - __history *.dcu *.local *.cfg + __history *.dcu *.local *.cfg *.identcache Property changes on: trunk/Source/Brokers/XML ___________________________________________________________________ Name: svn:ignore - *.dcu + *.dcu __history *.~pas Property changes on: trunk/Source/Brokers/XML/D2006 ___________________________________________________________________ Name: svn:ignore - *.dcu __history *.local *.cfg + *.dcu __history *.local *.cfg *.identcache Modified: trunk/Source/Brokers/XML/InstantXML.pas =================================================================== --- trunk/Source/Brokers/XML/InstantXML.pas 2006-11-02 03:51:57 UTC (rev 711) +++ trunk/Source/Brokers/XML/InstantXML.pas 2006-11-14 16:16:43 UTC (rev 712) @@ -51,61 +51,47 @@ XML_EXT = 'xml'; DOT_XML_EXT = '.' + XML_EXT; XML_WILDCARD = '*' + DOT_XML_EXT; -{$IFNDEF LINUX} -{$IFDEF D5}PathDelim = '\'; -{$ENDIF} -{$ENDIF} + {$IFNDEF D6+} + PathDelim = '\'; + {$ENDIF} type - TXMLFileFormat = (xffUtf8, xffUtf8BOT, xffIso); + TXMLFileFormat = (xffUtf8, xffIso); - { TXMLFilesAccessor } TXMLFilesAccessor = class(TCustomConnection) private - FConnected: boolean; + FConnected: Boolean; FRootFolder: string; - FUseVersioning: Boolean; FXMLFileFormat: TXMLFileFormat; - procedure MkStorageDir(const StorageName: string); + procedure CreateStorageDir(const AStorageName: string); function GetRootFolder: string; - procedure SetRootFolder(const Value: string); - function SaveToFileXML_UTF8(AObject: TInstantObject; const FileName: - string): boolean; + procedure SetRootFolder(const AValue: string); + function SaveToFileXML_UTF8(AObject: TInstantObject; + const AFileName: string): Boolean; function LoadFromFileXML_UTF8(AObject: TInstantObject; const FileName: string): boolean; function PlainObjectFileName(const StorageName, ClassName, Id: string): string; - function NewObjectFileName(const StorageName, ClassName, Id: string): - string; - function DeleteObjectFileName(const StorageName, ClassName, Id: string): - string; - function VersionFromFilename(const longfilename: string): Integer; + function ObjectUpdateCountFromFileName(const AFileName: string): Integer; protected procedure DoConnect; override; procedure DoDisconnect; override; function GetConnected: Boolean; override; public constructor Create(AOwner: TComponent); override; - function LastObjectFileName(const StorageName, ClassName, Id: string): - string; function ReadInstantObject(AObject: TInstantObject; const StorageName, - AObjectId: string; - out Version: integer): boolean; - function WriteInstantObject(AObject: TInstantObject; const StorageName: - string; - out Version: integer): boolean; - function DeleteInstantObject(AObject: TInstantObject; const StorageName: - string): boolean; - function Locate(const StorageName, AObjectClassName, AObjectId: string): - Boolean; - function CheckConflict(AObject: TInstantObject; const StorageName, - AObjectId: string): Boolean; - procedure LoadFileList(FFileListAccessor: TStringList; const StorageName: - string); + AObjectId: string; out AObjectUpdateCount: Integer): Boolean; + function WriteInstantObject(AObject: TInstantObject; + const AStorageName: string; out AObjectUpdateCount: Integer): Boolean; + function DeleteInstantObject(AObject: TInstantObject; + const AStorageName: string): Boolean; + function Locate(const AStorageName, AObjectClassName, AObjectId: string): Boolean; + function CheckConflict(AObject: TInstantObject; + const AStorageName, AObjectId: string): Boolean; + procedure LoadFileList(const AFileList: TStringList; + const AStorageNames: TStrings); published property RootFolder: string read GetRootFolder write SetRootFolder; - property UseVersioning: Boolean read FUseVersioning write FUseVersioning - default False; property XMLFileFormat: TXMLFileFormat read FXMLFileFormat write FXMLFileFormat default xffUtf8; end; @@ -113,7 +99,6 @@ TInstantXMLConnectionDef = class(TInstantConnectionBasedConnectionDef) private FRootFolder: string; - FUseVersioning: Boolean; FXMLFileFormat: TXMLFileFormat; protected function CreateConnection(AOwner: TComponent): TCustomConnection; override; @@ -123,8 +108,6 @@ class function ConnectorClass: TInstantConnectorClass; override; published property RootFolder: string read FRootFolder write FRootFolder; - property UseVersioning: Boolean read FUseVersioning write FUseVersioning - default False; property XMLFileFormat: TXMLFileFormat read FXMLFileFormat write FXMLFileFormat default xffUtf8; end; @@ -203,10 +186,9 @@ function Locate(AObject: TObject; const AObjectId: string): Boolean; virtual; function ReadInstantObject(AObject: TInstantObject; const AObjectId: string; - out Version: integer): boolean; - function WriteInstantObject(AObject: TInstantObject; const AObjectId: - string; - out Version: integer): boolean; + out AObjectUpdateCount: Integer): Boolean; + function WriteInstantObject(AObject: TInstantObject; + const AObjectId: string; out AObjectUpdateCount: Integer): Boolean; public constructor Create(ABroker: TInstantCustomRelationalBroker; const AStorageName: string); @@ -225,13 +207,19 @@ FObjectReferenceList: TObjectList; FStatement: string; FParamsObject: TParams; + FStorageNames: TStringList; + FObjectClassNames: TStringList; procedure DestroyObjectReferenceList; function GetObjectReferenceCount: Integer; function GetObjectReferenceList: TObjectList; function GetObjectReferences(Index: Integer): TInstantObjectReference; - procedure InitObjectReferences(FileListAccessor: TStringList); + // Creates an object reference for each item in AFileList that represents + // an object of a class included in FObjectClassNames. + procedure InitObjectReferences(const AFileList: TStrings); function GetParamsObject: TParams; function GetConnector: TInstantXMLConnector; + procedure SetStorageNames(const Value: TStringList); + procedure SetObjectClassNames(const Value: TStringList); protected class function TranslatorClass: TInstantRelationalTranslatorClass; override; function GetActive: Boolean; override; @@ -256,13 +244,16 @@ GetObjectReferences; property ParamsObject: TParams read GetParamsObject; public - StorageName: string; + procedure AfterConstruction; override; + // List of folders from which files should be loaded in InternalOpen. + property StorageNames: TStringList read FStorageNames write SetStorageNames; + // Used to filter by class name the files loaded during InternalOpen. + property ObjectClassNames: TStringList read FObjectClassNames write SetObjectClassNames; destructor Destroy; override; property Connector: TInstantXMLConnector read GetConnector; end; - // Base class for all steps that work by executing one or more commands - // (that is, a script) each. + // Base class for all XML database build commands. TInstantDBBuildXMLCommand = class(TInstantDBBuildCommand) private function GetConnector: TInstantXMLConnector; @@ -306,7 +297,7 @@ SysUtils, InstantConsts, InstantClasses, TypInfo, InstantXMLCatalog, InstantXMLConnectionDefEdit, {$IFDEF MSWINDOWS} -{$IFDEF D5} +{$IFNDEF D6+} FileCtrl, {$ENDIF} Windows, Controls; @@ -321,10 +312,9 @@ function GetFileClassName(const FileName: string): string; forward; function GetFileId(const FileName: string): string; forward; -function GetFileVersion(const FileName: string): Integer; forward; +function GetObjectUpdateCount(const FileName: string): Integer; forward; -{$IFDEF D5} - +{$IFNDEF D6+} function IncludeTrailingPathDelimiter(const S: string): string; begin Result := IncludeTrailingBackSlash(S); @@ -337,7 +327,6 @@ R: Integer; PathWithWildCards: string; begin - FileList.Clear; PathWithWildCards := IncludeTrailingPathDelimiter(Path) + XML_WILDCARD; //Find the first file R := SysUtils.FindFirst(PathWithWildCards, faAnyFile, SearchRec); @@ -352,69 +341,6 @@ end; end; -// fill filelist with unique names of files, using the last version -// number or skipping the deleted files (version = 0) -// code badly needs to be optimized - marcoc - -procedure GlobalLoadFileListLastVersion(const Path: string; FileList: - TStringList); -var - i, currentVersion, activeVersionPos, newVersion: Integer; - currentid, shortFileName: string; -begin - // first load all of them - GlobalLoadFileList(Path, FileList); - - // now remove version duplicates and deleted documents - FileList.Sorted := True; - currentid := ''; - currentVersion := -1; - activeVersionPos := -1; - for i := FileList.Count - 1 downto 0 do - begin - shortFileName := extractFilename(filelist[i]); - if currentid = GetFileId(shortFileName) then - begin - newVersion := GetFileVersion(shortFileName); - // if the file is marked as deleted - if newVersion = 0 then - begin - CurrentVersion := NewVersion; - fileList.Delete(i); - activeVersionPos := 0; - if activeVersionPos <> -1 then - fileList.Delete(activeVersionPos); - end - // if it is already marked as deleted, skip it - else if currentVersion = 0 then - begin - fileList.Delete(i); - end - // if the file is "newer" - else if currentVersion < newVersion then - begin - // delete the other version, as this is newer - CurrentVersion := GetFileVersion(shortFileName); - if activeVersionPos <> -1 then - fileList.Delete(activeVersionPos); - activeVersionPos := i; - end - else - // delete this version, which is older - fileList.Delete(i); - end - else // we have moved to a new objectid, reset all - begin - currentid := GetFileId(shortFileName); - currentVersion := GetFileVersion(shortFileName); - activeVersionPos := i; - // if the first file of this instance is marked as deleted... - if CurrentVersion = 0 then - fileList.Delete(i); - end; - end; -end; - function RightPos(const ASubString, AString: string): Integer; var I: Integer; @@ -450,7 +376,7 @@ Delete(Result, RightPos('.', Result), MaxInt); end; -function GetFileVersion(const FileName: string): Integer; +function GetObjectUpdateCount(const FileName: string): Integer; var S: string; P: Integer; @@ -481,7 +407,6 @@ begin Result := TXMLFilesAccessor.Create(AOwner); TXMLFilesAccessor(Result).RootFolder := RootFolder; - TXMLFilesAccessor(Result).UseVersioning := UseVersioning; TXMLFilesAccessor(Result).FXMLFileFormat := XMLFileFormat; end; @@ -568,7 +493,7 @@ ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); var AInfo: TInstantOperationInfo; - Version: Integer; + LObjectUpdateCount: Integer; begin if not Assigned(Info) then begin @@ -577,13 +502,13 @@ end; //Read object from file Info.Success := Locate(AObject, AObjectId) and - ReadInstantObject(AObject, AObjectId, Version); + ReadInstantObject(AObject, AObjectId, LObjectUpdateCount); Info.Conflict := not Info.Success; if Info.Success then begin if Map.IsRootMap then begin - Broker.SetObjectUpdateCount(AObject, Version); + Broker.SetObjectUpdateCount(AObject, LObjectUpdateCount); end; end else @@ -625,7 +550,7 @@ Broker.SetObjectUpdateCount(AObject, version); end else - Info.Success := False; + Info.Success := True; except on E: Exception do begin @@ -651,12 +576,11 @@ FStorageName, AObject.ClassName, AObjectId); end; -function TInstantXMLResolver.ReadInstantObject(AObject: TInstantObject; const - AObjectId: string; - out Version: integer): boolean; +function TInstantXMLResolver.ReadInstantObject(AObject: TInstantObject; + const AObjectId: string; out AObjectUpdateCount: Integer): Boolean; begin Result := Broker.Connector.Connection.ReadInstantObject(AObject, FStorageName, - AObjectId, Version); + AObjectId, AObjectUpdateCount); end; procedure TInstantXMLResolver.ResetAttributes(AObject: TInstantObject; @@ -665,12 +589,17 @@ end; -function TInstantXMLResolver.WriteInstantObject(AObject: TInstantObject; const - AObjectId: string; - out Version: integer): boolean; +function TInstantXMLResolver.WriteInstantObject(AObject: TInstantObject; + const AObjectId: string; out AObjectUpdateCount: Integer): Boolean; begin - Result := Broker.Connector.Connection.WriteInstantObject(AObject, - FStorageName, Version); + if AObject.Metadata.TableName = FStorageName then + Result := Broker.Connector.Connection.WriteInstantObject(AObject, + FStorageName, AObjectUpdateCount) + else + begin + Result := True; + AObjectUpdateCount := 1; + end; end; { TInstantXMLConnector } @@ -710,24 +639,12 @@ end; procedure TInstantXMLConnector.InternalBuildDatabase(Scheme: TInstantScheme); -var - i: integer; - StorageName: string; begin CheckConnection; - //build RootFolder if not exists if not DirectoryExists(Connection.RootFolder) and - not ForceDirectories(Connection.RootFolder) then + not ForceDirectories(Connection.RootFolder) then raise EInOutError.CreateFmt(SCannotCreateDirectory, [Connection.RootFolder]); - - //build SubFolder for each "storage name" - for i := 0 to Scheme.TableMetadataCount - 1 do - begin - StorageName := Scheme.TableMetadatas[i].Name; - if not DirectoryExists(Connection.RootFolder + StorageName) then - MkDir(Connection.RootFolder + StorageName); - end; end; procedure TInstantXMLConnector.InternalCommitTransaction; @@ -840,10 +757,23 @@ { TInstantXMLQuery } +procedure TInstantXMLQuery.AfterConstruction; +begin + inherited; + FStorageNames := TStringList.Create; + FStorageNames.Sorted := True; + FStorageNames.Duplicates := dupIgnore; + FObjectClassNames := TStringList.Create; + FObjectClassNames.Sorted := True; + FObjectClassNames.Duplicates := dupIgnore; +end; + destructor TInstantXMLQuery.Destroy; begin DestroyObjectReferenceList; FParamsObject.Free; + FreeAndNil(FStorageNames); + FreeAndNil(FObjectClassNames); inherited; end; @@ -897,31 +827,35 @@ Result := FStatement; end; -procedure TInstantXMLQuery.InitObjectReferences(FileListAccessor: TStringList); +procedure TInstantXMLQuery.InitObjectReferences(const AFileList: TStrings); var - i: integer; + I: Integer; - function CreateObjectReference(const FileName: string): - TInstantObjectReference; + procedure AddObjectReference(const AFileName: string); var - ClassName, ObjectId: string; + vClassName, vObjectId: string; + vObjectReference: TInstantObjectReference; + vIndex: Integer; begin - ClassName := GetFileClassName(FileName); - ObjectId := GetFileId(FileName); - Result := TInstantObjectReference.Create(nil, True); - try - Result.ReferenceObject(ClassName, ObjectId); - except - Result.Free; - raise + vClassName := GetFileClassName(AFileName); + if FObjectClassNames.Find(vClassName, vIndex) then + begin + vObjectId := GetFileId(AFileName); + vObjectReference := TInstantObjectReference.Create(nil, True); + try + vObjectReference.ReferenceObject(vClassName, vObjectId); + ObjectReferenceList.Add(vObjectReference); + except + ObjectReferenceList.Remove(vObjectReference); + vObjectReference.Free; + raise; + end; end; end; begin - for i := 0 to FileListAccessor.Count - 1 do - begin - ObjectReferenceList.Add(CreateObjectReference(FileListAccessor.Strings[i])); - end; + for I := 0 to AFileList.Count - 1 do + AddObjectReference(AFileList[I]); end; function TInstantXMLQuery.InternalAddObject(AObject: TObject): Integer; @@ -978,16 +912,16 @@ procedure TInstantXMLQuery.InternalOpen; var - FFileListAccessor: TStringList; + vFileList: TStringList; begin inherited; - FFileListAccessor := TStringList.Create; + vFileList := TStringList.Create; try Connector.Connection.Open; - Connector.Connection.LoadFileList(FFileListAccessor, StorageName); - InitObjectReferences(FFileListAccessor); + Connector.Connection.LoadFileList(vFileList, FStorageNames); + InitObjectReferences(vFileList); finally - FFileListAccessor.Free; + vFileList.Free; end; end; @@ -1034,6 +968,11 @@ Result := ObjectReferences[Index].HasInstance; end; +procedure TInstantXMLQuery.SetObjectClassNames(const Value: TStringList); +begin + FObjectClassNames.Assign(Value); +end; + procedure TInstantXMLQuery.SetParams(Value: TParams); begin inherited; @@ -1046,6 +985,11 @@ FStatement := Value; end; +procedure TInstantXMLQuery.SetStorageNames(const Value: TStringList); +begin + FStorageNames.Assign(Value); +end; + class function TInstantXMLQuery.TranslatorClass: TInstantRelationalTranslatorClass; begin @@ -1059,16 +1003,16 @@ Result := IncludeTrailingPathDelimiter(FRootFolder); end; -procedure TXMLFilesAccessor.SetRootFolder(const Value: string); +procedure TXMLFilesAccessor.SetRootFolder(const AValue: string); begin - if FRootFolder <> Value then + if FRootFolder <> AValue then begin - FRootFolder := Value; + FRootFolder := AValue; end; end; function TXMLFilesAccessor.SaveToFileXML_UTF8(AObject: TInstantObject; - const FileName: string): boolean; + const AFileName: string): Boolean; var strstream: TStringStream; fileStream: TFileStream; @@ -1077,8 +1021,8 @@ strstream := TStringStream.Create(''); try InstantWriteObject(strStream, sfXML, AObject); -{$IFNDEF VER130} - if FXMLFileFormat in [xffUtf8, xffUtf8Bot] then +{$IFDEF D6+} + if FXMLFileFormat = xffUtf8 then DataStr := AnsiToUtf8(XML_UTF8_HEADER + strStream.DataString) else DataStr := XML_ISO_HEADER + strStream.DataString; @@ -1088,7 +1032,7 @@ finally strStream.Free; end; - fileStream := TFileStream.Create(FileName, fmCreate); + fileStream := TFileStream.Create(AFileName, fmCreate); try Result := fileStream.Write(DataStr[1], Length(DataStr)) <> 0; finally @@ -1116,8 +1060,6 @@ begin fileStream := TFileStream.Create(FileName, fmOpenRead); try - // if FXMLFileFormat = xffUtf8Bot then - // check/skip BOT SetLength(strUtf8, fileStream.Size); Result := fileStream.Read(strUtf8[1], fileStream.Size) <> 0; // skip XML HEADER (until the parser is "dumb") @@ -1126,8 +1068,8 @@ fileStream.Free; end; -{$IFNDEF VER130} - if FXMLFileFormat in [xffUtf8, xffUtf8Bot] then +{$IFDEF D6+} + if FXMLFileFormat = xffUtf8 then strUtf8 := Utf8ToAnsi(strUtf8); {$ENDIF} @@ -1139,223 +1081,86 @@ end; end; -function TXMLFilesAccessor.ReadInstantObject(AObject: TInstantObject; const - StorageName, AObjectId: string; - out Version: integer): boolean; +function TXMLFilesAccessor.ReadInstantObject(AObject: TInstantObject; + const StorageName, AObjectId: string; out AObjectUpdateCount: Integer): Boolean; var - filename: string; + LFileName: string; begin - if FUseVersioning then - filename := LastObjectFileName(StorageName, AObject.ClassName, AObjectId) - else - filename := PlainObjectFileName(StorageName, AObject.ClassName, AObjectId); - Result := LoadFromFileXML_UTF8(AObject, filename); - Version := VersionFromFilename(filename); + LFileName := PlainObjectFileName(StorageName, AObject.ClassName, AObjectId); + Result := LoadFromFileXML_UTF8(AObject, LFileName); + AObjectUpdateCount := ObjectUpdateCountFromFileName(LFileName); end; -function TXMLFilesAccessor.WriteInstantObject(AObject: TInstantObject; const - StorageName: string; - out Version: integer): boolean; +function TXMLFilesAccessor.WriteInstantObject(AObject: TInstantObject; + const AStorageName: string; out AObjectUpdateCount: Integer): Boolean; var - filename: string; + LFileName: string; begin - MkStorageDir(StorageName); - if FUseVersioning then - filename := NewObjectFileName(StorageName, AObject.ClassName, AObject.Id) - else - filename := PlainObjectFileName(StorageName, AObject.ClassName, AObject.Id); - Result := SavetoFileXML_UTF8(AObject, filename); - Version := VersionFromFilename(filename); + CreateStorageDir(AStorageName); + LFileName := PlainObjectFileName(AStorageName, AObject.ClassName, AObject.Id); + Result := SavetoFileXML_UTF8(AObject, LFileName); + AObjectUpdateCount := ObjectUpdateCountFromFileName(LFileName); end; -function TXMLFilesAccessor.Locate(const StorageName, AObjectClassName, +function TXMLFilesAccessor.Locate(const AStorageName, AObjectClassName, AObjectId: string): Boolean; var filename: string; begin - MkStorageDir(StorageName); - if FUseVersioning then - begin - filename := LastObjectFileName(StorageName, AObjectClassName, AObjectId); - Result := FileExists(filename) and (VersionFromFilename(filename) <> 0); - end - else - begin - filename := PlainObjectFileName(StorageName, AObjectClassName, AObjectId); - Result := FileExists(filename); - end; + filename := PlainObjectFileName(AStorageName, AObjectClassName, AObjectId); + Result := FileExists(filename); end; -procedure TXMLFilesAccessor.MkStorageDir(const StorageName: string); +procedure TXMLFilesAccessor.CreateStorageDir(const AStorageName: string); begin - if not DirectoryExists(RootFolder + StorageName) then - MkDir(RootFolder + StorageName); + if not DirectoryExists(RootFolder + AStorageName) then + MkDir(RootFolder + AStorageName); end; -function TXMLFilesAccessor.LastObjectFileName(const StorageName, ClassName, - Id: string): string; -var - sr: TSearchRec; - lastnum, nCurrent: Integer; +function TXMLFilesAccessor.ObjectUpdateCountFromFileName( + const AFileName: string): Integer; begin - if FindFirst( - RootFolder + StorageName + PathDelim + ClassName + '.' + Id + '.*' + - DOT_XML_EXT, - faAnyFile, SR) = 0 then - try - Result := RootFolder + StorageName + PathDelim + sr.Name; - lastnum := VersionFromFileName(sr.Name); - while FindNext(sr) = 0 do - begin - nCurrent := VersionFromFilename(sr.Name); - // version "zero" means the file has been deleted - if (nCurrent = 0) then - begin - Result := RootFolder + StorageName + PathDelim + sr.Name; - Break; - end; - if nCurrent > lastnum then - begin - lastnum := nCurrent; - Result := RootFolder + StorageName + PathDelim + sr.Name; - end; - end; - finally - SysUtils.FindClose(sr); - end - else - Result := ''; // not found, new object/file + Result := GetObjectUpdateCount(ExtractFileName(AFileName)); end; -function TXMLFilesAccessor.VersionFromFilename(const longfilename: string): - Integer; -begin - Result := GetFileVersion(ExtractFileName(longfilename)); -end; - -function TXMLFilesAccessor.NewObjectFileName(const StorageName, ClassName, - Id: string): string; -var - nVersion: Integer; - filename: string; -begin - // grab the current "last" version number - if FUseVersioning then - begin - filename := LastObjectFileName(storagename, ClassName, Id); - if filename <> '' then - begin - nVersion := VersionFromFilename(filename); - inc(nVersion); - end - else - nVersion := 1; // new object, first version - end - else - begin - filename := PlainObjectFileName(StorageName, ClassName, Id); - nVersion := 1; // no version always 1 - end; - Result := RootFolder + StorageName + PathDelim + ClassName + '.' + Id + '.' + - IntToStr(nVersion) + DOT_XML_EXT; -end; - function TXMLFilesAccessor.DeleteInstantObject(AObject: TInstantObject; - const StorageName: string): boolean; + const AStorageName: string): Boolean; begin - if UseVersioning then - begin - // save the document once more with 0 in the version name - Result := SavetoFileXML_UTF8(AObject, - DeleteObjectFileName(StorageName, AObject.ClassName, AObject.Id)); - end - else - begin - // delete file from disk - Result := SysUtils.DeleteFile(PlainObjectFileName(StorageName, - AObject.ClassName, AObject.Id)); - end; + Result := SysUtils.DeleteFile(PlainObjectFileName(AStorageName, + AObject.ClassName, AObject.Id)); end; -function TXMLFilesAccessor.DeleteObjectFileName(const StorageName, - ClassName, Id: string): string; -begin - // mark deleted file as version 0 - Result := RootFolder + StorageName + PathDelim + ClassName + '.' + Id + '.' + - IntToStr(0) + DOT_XML_EXT; -end; - constructor TXMLFilesAccessor.Create(AOwner: TComponent); begin inherited; - - // default values for properties - FUseVersioning := False; FXMLFileFormat := xffUtf8; end; function TXMLFilesAccessor.PlainObjectFileName(const StorageName, ClassName, Id: string): string; begin - // ignore versioning - //FileName: ClassName.Id.UpdateCount.xml Result := RootFolder + StorageName + PathDelim + ClassName + '.' + Id + '.1' + DOT_XML_EXT; end; function TXMLFilesAccessor.CheckConflict(AObject: TInstantObject; - const StorageName, AObjectId: string): Boolean; -var - version: Integer; + const AStorageName, AObjectId: string): Boolean; begin - if FUseVersioning then - begin - // check version of XML object - version := GetFileVersion(LastObjectFileName - (StorageName, AObject.ClassName, AObjectId)); - Result := (version = 0) or (Version <> AObject.UpdateCount); - end - else - Result := False; // don't care about updatecount and versioning + Result := False; // don't care about updatecount end; -procedure TXMLFilesAccessor.LoadFileList(FFileListAccessor: TStringList; const - StorageName: string); -//var - // xmldom: TGeoXslProcess; - to be finished by marcoc - //strXPath, - to be finished by marcoc - // result: string; - // posOpenSquare, posCloseSquare: Integer; +procedure TXMLFilesAccessor.LoadFileList(const AFileList: TStringList; + const AStorageNames: TStrings); +var + I: Integer; begin - if FUseVersioning then - GlobalLoadFileListLastVersion(RootFolder + StorageName, FFileListAccessor) - else - GlobalLoadFileList(RootFolder + StorageName, FFileListAccessor); - - // tentative XPATH support by marcoc - {posOpenSquare := Pos ('[', Statement); - to be finished by marcoc - posCloseSquare := Pos (']', Statement); - strXPath := Copy (Statement, posOpenSquare, posCloseSquare - posOpenSquare + 1); - strXpath := '/' + GetObjectClassName + strXPath; - for i := FFileListAccessor.Count - 1 downto 0 do - begin - xmldom := TGeoXslProcess.Create; - try - xmldom.LoadXmlFile(Connector.Connection.RootFolder+StorageName + - PathDelim + FFileListAccessor[i]); - result := xmldom.applyXPathToXml(strXpath); - if result = '' then - FFileListAccessor.Delete (i); - finally - xmldom.Free; - end; - end; - to be finished by marcoc } - + AFileList.Clear; + for I := 0 to AStorageNames.Count - 1 do + GlobalLoadFileList(RootFolder + AStorageNames[I], AFileList); end; procedure TXMLFilesAccessor.DoConnect; begin - //Check rootfolder if DirectoryExists(RootFolder) then FConnected := True; end; @@ -1374,12 +1179,38 @@ function TInstantXMLTranslator.TranslateClassRef( ClassRef: TInstantIQLClassRef; Writer: TInstantIQLWriter): Boolean; +var + vInheritedClasses: TList; + I: Integer; begin Result := inherited TranslateClassRef(ClassRef, Writer); if TablePathCount > 0 then - (Query as TInstantXMLQuery).StorageName := ClassTablePath + begin + (Query as TInstantXMLQuery).StorageNames.Text := TablePaths[0]; + (Query as TInstantXMLQuery).ObjectClassNames.Text := ClassRef.ObjectClassName; + if ClassRef.Any then + begin + // Need to add all inherited classes as well. + vInheritedClasses := TList.Create; + try + InstantGetClasses(vInheritedClasses, InstantFindClass(ClassRef.ObjectClassName)); + for I := 0 to vInheritedClasses.Count - 1 do + begin + (Query as TInstantXMLQuery).StorageNames.Add( + TInstantObjectClass(vInheritedClasses[I]).Metadata.TableName); + (Query as TInstantXMLQuery).ObjectClassNames.Add( + TInstantObjectClass(vInheritedClasses[I]).ClassName); + end; + finally + FreeAndNil(vInheritedClasses); + end; + end; + end else - (Query as TInstantXMLQuery).StorageName := ''; + begin + (Query as TInstantXMLQuery).StorageNames.Clear; + (Query as TInstantXMLQuery).ObjectClassNames.Clear; + end; end; { TInstantDBBuildXMLCommand } @@ -1420,14 +1251,12 @@ Connector.CheckConnection; vDatabaseName := Connector.DatabaseName; - //build RootFolder if not exists if not DirectoryExists(vDatabaseName) and - not ForceDirectories(vDatabaseName) then + not ForceDirectories(vDatabaseName) then raise EInOutError.CreateFmt(SCannotCreateDirectory, [vDatabaseName]); - // Create a subFolder for the "storage name" - if not DirectoryExists(vDatabaseName + TableMetadata.Name) then - MkDir(vDatabaseName + TableMetadata.Name); + // No need to create the class-specific folders, which will be created + // when instances are written. end; function TInstantDBBuildXMLDropTableCommand.GetTableMetadata: Modified: trunk/Source/Brokers/XML/InstantXMLConnectionDefEdit.dfm =================================================================== --- trunk/Source/Brokers/XML/InstantXMLConnectionDefEdit.dfm 2006-11-02 03:51:57 UTC (rev 711) +++ trunk/Source/Brokers/XML/InstantXMLConnectionDefEdit.dfm 2006-11-14 16:16:43 UTC (rev 712) @@ -1,9 +1,9 @@ object InstantXMLConnectionDefEditForm: TInstantXMLConnectionDefEditForm Left = 425 Top = 292 - Width = 302 - Height = 190 Caption = 'XML Connection' + ClientHeight = 133 + ClientWidth = 294 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -17,7 +17,7 @@ TextHeight = 13 object BottomBevel: TBevel Left = 0 - Top = 133 + Top = 103 Width = 294 Height = 2 Align = alBottom @@ -27,7 +27,7 @@ Left = 0 Top = 0 Width = 294 - Height = 133 + Height = 103 Align = alClient BevelOuter = bvNone TabOrder = 0 @@ -41,7 +41,7 @@ end object Label1: TLabel Left = 8 - Top = 83 + Top = 60 Width = 69 Height = 13 Caption = 'XML &encoding' @@ -63,27 +63,19 @@ TabOrder = 1 OnClick = FolderButtonClick end - object cbVersioning: TCheckBox + object EncodingComboBox: TComboBox Left = 8 - Top = 60 - Width = 149 - Height = 17 - Caption = 'Enable file versioning' - TabOrder = 2 - end - object cbEncoding: TComboBox - Left = 8 - Top = 98 + Top = 75 Width = 145 Height = 21 Style = csDropDownList - ItemHeight = 13 - TabOrder = 3 + ItemHeight = 0 + TabOrder = 2 end end object BottomPanel: TPanel Left = 0 - Top = 135 + Top = 105 Width = 294 Height = 28 Align = alBottom Modified: trunk/Source/Brokers/XML/InstantXMLConnectionDefEdit.pas =================================================================== --- trunk/Source/Brokers/XML/InstantXMLConnectionDefEdit.pas 2006-11-02 03:51:57 UTC (rev 711) +++ trunk/Source/Brokers/XML/InstantXMLConnectionDefEdit.pas 2006-11-14 16:16:43 UTC (rev 712) @@ -48,12 +48,7 @@ QForms, QStdCtrls, QControls, QExtCtrls; {$ENDIF} -const - AXMLFileFormatStr : Array[TXMLFileFormat] of string = - ('xffUtf8', 'xffUtf8BOT', 'xffIso'); - type - TInstantXMLConnectionDefEditForm = class(TForm) BottomBevel: TBevel; BottomPanel: TPanel; @@ -64,8 +59,7 @@ ButtonsPanel: TPanel; OkButton: TButton; CancelButton: TButton; - cbVersioning: TCheckBox; - cbEncoding: TComboBox; + EncodingComboBox: TComboBox; Label1: TLabel; procedure FolderButtonClick(Sender: TObject); procedure FormCreate(Sender: TObject); @@ -80,6 +74,7 @@ {$R *.dfm} uses + TypInfo, {$IFDEF MSWINDOWS} FileCtrl; {$ELSE} @@ -91,19 +86,15 @@ procedure TInstantXMLConnectionDefEditForm.LoadData( ConnectionDef: TInstantXMLConnectionDef); begin - { TODO: Copy data from ConnectionDef to edit controls } RootDirEdit.Text := ConnectionDef.RootFolder; - cbEncoding.ItemIndex := Ord(ConnectionDef.XMLFileFormat); - cbVersioning.Checked := ConnectionDef.UseVersioning; + EncodingComboBox.ItemIndex := Ord(ConnectionDef.XMLFileFormat); end; procedure TInstantXMLConnectionDefEditForm.SaveData( ConnectionDef: TInstantXMLConnectionDef); begin - { TODO: Copy data from edit controls to ConnectionDef } ConnectionDef.RootFolder := RootDirEdit.Text; - ConnectionDef.XMLFileFormat := TXMLFileFormat(cbEncoding.ItemIndex); - ConnectionDef.UseVersioning := cbVersioning.Checked; + ConnectionDef.XMLFileFormat := TXMLFileFormat(EncodingComboBox.ItemIndex); end; procedure TInstantXMLConnectionDefEditForm.FolderButtonClick( @@ -134,12 +125,10 @@ procedure TInstantXMLConnectionDefEditForm.InitXMLEncoding; var - i : TXMLFileFormat; + I: TXMLFileFormat; begin - for i := Low(TXMLFileFormat) to High(TXMLFileFormat) do - begin - cbEncoding.Items.Add(AXMLFileFormatStr[i]); - end; + for I := Low(TXMLFileFormat) to High(TXMLFileFormat) do + EncodingComboBox.Items.Add(GetEnumName(TypeInfo(TXMLFileFormat), Ord(I))); end; end. Property changes on: trunk/Source/Catalogs/MSSql/D2006 ___________________________________________________________________ Name: svn:ignore - *.local *.dcu + *.local *.dcu *.identcache Property changes on: trunk/Source/Core ___________________________________________________________________ Name: svn:ignore - *.dcu *.~* *.ddp + *.dcu *.~* *.ddp __history Property changes on: trunk/Source/Design ___________________________________________________________________ Name: svn:ignore - *.dcu *.~* *.ddp + *.dcu *.~* *.ddp __history Property changes on: trunk/Source/Design/D2006 ___________________________________________________________________ Name: svn:ignore - *.local *.cfg *.dcu + *.local *.cfg *.dcu *.identcache Property changes on: trunk/Tests ___________________________________________________________________ Name: svn:ignore - __history *.dcu *.local *.exe + __history *.dcu *.local *.exe *.identcache Property changes on: trunk/Tests/ubmock/src ___________________________________________________________________ Name: svn:ignore - *.rst + *.rst *.dcu |
From: <sr...@us...> - 2006-11-02 03:52:06
|
Revision: 711 http://svn.sourceforge.net/instantobjects/revision/?rev=711&view=rev Author: srmitch Date: 2006-11-01 19:51:57 -0800 (Wed, 01 Nov 2006) Log Message: ----------- - Fix for ModelMaker 8.20 attribute creation problem [SF BT 1589043]. Modified Paths: -------------- trunk/Source/Design/InstantAttributeEditor.pas Modified: trunk/Source/Design/InstantAttributeEditor.pas =================================================================== --- trunk/Source/Design/InstantAttributeEditor.pas 2006-10-20 14:30:12 UTC (rev 710) +++ trunk/Source/Design/InstantAttributeEditor.pas 2006-11-02 03:51:57 UTC (rev 711) @@ -202,7 +202,8 @@ IsClassPersistent(FModel.Classes[I].Name)) then ObjectClassEdit.Items.Add(FModel.Classes[I].Name); end - else if Assigned(ObjectClassEdit.Field) then + else if Assigned(ObjectClassEdit.Field) and + (ObjectClassEdit.Field.AsString <> '') then ObjectClassEdit.Items.Add(ObjectClassEdit.Field.AsString) else if Assigned(FOnLoadClasses) then OnLoadClasses(Self, ObjectClassEdit.Items, NeedOnlyPersistentClasses); |
From: <na...@us...> - 2006-10-20 14:30:27
|
Revision: 710 http://svn.sourceforge.net/instantobjects/revision/?rev=710&view=rev Author: nandod Date: 2006-10-20 07:30:12 -0700 (Fri, 20 Oct 2006) Log Message: ----------- * fixed indentation. Modified Paths: -------------- trunk/Source/Core/InstantBrokers.pas Modified: trunk/Source/Core/InstantBrokers.pas =================================================================== --- trunk/Source/Core/InstantBrokers.pas 2006-10-10 00:29:18 UTC (rev 709) +++ trunk/Source/Core/InstantBrokers.pas 2006-10-20 14:30:12 UTC (rev 710) @@ -4705,12 +4705,12 @@ begin if TranslatorClass <> nil then with TranslatorClass.Create(Self) do - try - CommandText := Self.Command; - Statement := StatementText; - finally - Free; - end; + try + CommandText := Self.Command; + Statement := StatementText; + finally + Free; + end; end; class function TInstantCustomRelationalQuery.TranslatorClass: TInstantRelationalTranslatorClass; |
From: <bvs...@us...> - 2006-10-10 00:29:26
|
Revision: 709 http://svn.sourceforge.net/instantobjects/revision/?rev=709&view=rev Author: bvsimmons Date: 2006-10-09 17:29:18 -0700 (Mon, 09 Oct 2006) Log Message: ----------- Bug:1564110 - Incorrect SQL generated for Drop Column/Index ADO-MSSQL. Modified Paths: -------------- trunk/Source/Brokers/ADO/InstantADO.pas Modified: trunk/Source/Brokers/ADO/InstantADO.pas =================================================================== --- trunk/Source/Brokers/ADO/InstantADO.pas 2006-09-22 09:34:16 UTC (rev 708) +++ trunk/Source/Brokers/ADO/InstantADO.pas 2006-10-10 00:29:18 UTC (rev 709) @@ -167,6 +167,9 @@ TInstantADOMSSQLGenerator = class(TInstantSQLGenerator) protected function InternalGenerateAlterFieldSQL(OldMetadata, NewMetadata: TInstantFieldMetadata): string; override; + function InternalGenerateDropFieldSQL(Metadata: TInstantFieldMetadata): string; override; + function InternalGenerateDropIndexSQL(Metadata: TInstantIndexMetadata): string; override; + function EmbraceIndex(const IndexName: string): string; virtual; end; TInstantADOMSSQLBroker = class(TInstantSQLBroker) @@ -1033,6 +1036,12 @@ { TInstantADOMSSQLGenerator } +function TInstantADOMSSQLGenerator.EmbraceIndex( + const IndexName: string): string; +begin + Result := InstantEmbrace(IndexName, Delimiters); +end; + function TInstantADOMSSQLGenerator.InternalGenerateAlterFieldSQL(OldMetadata, NewMetadata: TInstantFieldMetadata): string; begin @@ -1042,6 +1051,22 @@ Broker.DataTypeToColumnType(NewMetadata.DataType, NewMetadata.Size)]); end; +function TInstantADOMSSQLGenerator.InternalGenerateDropFieldSQL( + Metadata: TInstantFieldMetadata): string; +begin + Result := Format('ALTER TABLE %s DROP COLUMN %s', + [EmbraceTable(Metadata.TableMetadata.Name), + EmbraceField(Metadata.Name)]); +end; + +function TInstantADOMSSQLGenerator.InternalGenerateDropIndexSQL( + Metadata: TInstantIndexMetadata): string; +begin + Result := Format('DROP INDEX %s.%s', + [EmbraceTable(Metadata.TableMetadata.Name), + EmbraceIndex(Metadata.Name)]); +end; + { TInstantADOMSSQLBroker } class function TInstantADOMSSQLBroker.GeneratorClass: TInstantSQLGeneratorClass; |
From: <na...@us...> - 2006-09-22 09:34:30
|
Revision: 708 http://svn.sourceforge.net/instantobjects/revision/?rev=708&view=rev Author: nandod Date: 2006-09-22 02:34:16 -0700 (Fri, 22 Sep 2006) Log Message: ----------- * Modification to Support MSSQL 2005 (on behalf of B. Simmons). * Modification to Correct bug in Alter Table Alter Column Syntax for MSSQL (on behalf of B. Simmons). Modified Paths: -------------- trunk/Source/Brokers/ADO/InstantADO.pas trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas Modified: trunk/Source/Brokers/ADO/InstantADO.pas =================================================================== --- trunk/Source/Brokers/ADO/InstantADO.pas 2006-09-22 09:17:32 UTC (rev 707) +++ trunk/Source/Brokers/ADO/InstantADO.pas 2006-09-22 09:34:16 UTC (rev 708) @@ -164,6 +164,11 @@ { MS SQL Server } + TInstantADOMSSQLGenerator = class(TInstantSQLGenerator) + protected + function InternalGenerateAlterFieldSQL(OldMetadata, NewMetadata: TInstantFieldMetadata): string; override; + end; + TInstantADOMSSQLBroker = class(TInstantSQLBroker) protected function CreateCatalog(const AScheme: TInstantScheme): TInstantCatalog; override; @@ -177,6 +182,7 @@ function CreateDataSet(const Statement: string; Params: TParams): TDataSet; override; function DataTypeToColumnType(DataType: TInstantDataType; Size: Integer): string; override; function Execute(const AStatement: string; AParams: TParams): Integer; override; + class function GeneratorClass: TInstantSQLGeneratorClass; override; end; TInstantADOMSSQLResolver = class(TInstantSQLResolver) @@ -685,6 +691,7 @@ const MSJetPrefix = 'Microsoft.Jet'; MSSQLPrefix = 'SQLOLEDB'; + MSSQL2005Prefix = 'SQLNCLI'; OraclePrefix = 'ORA'; MySQLPrefix = 'My'; IBMDB2Prefix = 'IBMDADB2'; @@ -694,7 +701,7 @@ begin if HasPrefix(MSJetPrefix) then Result := ptMSJet - else if HasPrefix(MSSQLPrefix) then + else if HasPrefix(MSSQLPrefix) or HasPrefix(MSSQL2005Prefix) then Result := ptMSSQLServer else if HasPrefix(OraclePrefix) or HasPrefix(MSOraclePrefix) then Result := ptOracle @@ -1024,8 +1031,24 @@ end; end; +{ TInstantADOMSSQLGenerator } + +function TInstantADOMSSQLGenerator.InternalGenerateAlterFieldSQL(OldMetadata, + NewMetadata: TInstantFieldMetadata): string; +begin + Result := Format('ALTER TABLE %s ALTER COLUMN %s %s', + [EmbraceTable(OldMetadata.TableMetadata.Name), + EmbraceField(OldMetadata.Name), + Broker.DataTypeToColumnType(NewMetadata.DataType, NewMetadata.Size)]); +end; + { TInstantADOMSSQLBroker } +class function TInstantADOMSSQLBroker.GeneratorClass: TInstantSQLGeneratorClass; +begin + Result := TInstantADOMSSQLGenerator; +end; + procedure TInstantADOMSSQLBroker.AssignDataSetParams(DataSet: TDataSet; AParams: TParams); begin Modified: trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas =================================================================== --- trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas 2006-09-22 09:17:32 UTC (rev 707) +++ trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas 2006-09-22 09:34:16 UTC (rev 708) @@ -23,7 +23,7 @@ * Portions created by the Initial Developer are Copyright (C) 2005 * the Initial Developer. All Rights Reserved. * - * Contributor(s): Nando Dessena + * Contributor(s): Nando Dessena, Bernard Simmons * * ***** END LICENSE BLOCK ***** *) @@ -242,23 +242,22 @@ ' t.name AS COLUMN_TYPENAME, ' + ' c.xtype AS COLUMN_SUBTYPE, ' + ' CASE ' + - ' WHEN (d.oledb_data_type = 135) AND (c.xtype in (58, 61)) THEN 16' + - ' WHEN (d.oledb_data_type = 6) THEN 8' + - ' WHEN (d.oledb_data_type = 4) THEN 8' + - ' WHEN (d.oledb_data_type = 20) THEN 34' + - ' WHEN (d.oledb_data_type = 72) AND (c.xtype = 36) THEN 38' + + ' WHEN (c.xtype in (58, 61)) THEN 16' + + ' WHEN (c.xtype = 122) THEN 8' + + ' WHEN (c.xtype = 59) THEN 8' + + ' WHEN (c.xtype = 127) THEN 34' + + ' WHEN (c.xtype = 36) THEN 38' + ' ELSE c.length ' + ' END ' + ' AS COLUMN_LENGTH, ' + ' c.prec AS COLUMN_PRECISION, ' + ' CAST(c.scale AS SMALLINT) AS COLUMN_SCALE ' + 'FROM ' + - ' sysobjects o, syscolumns c, systypes t, master.dbo.spt_provider_types d ' + + ' sysobjects o, syscolumns c, systypes t ' + 'WHERE ' + ' o.type in (''U'', ''V'', ''S'') ' + ' AND o.id = c.id ' + ' AND c.xusertype = t.xusertype ' + - ' and c.xtype = d.ss_dtype ' + ' AND o.name = ''' + ATableName + ''' ' + ' ORDER BY c.colorder'; end; |
From: <na...@us...> - 2006-09-22 09:20:52
|
Revision: 707 http://svn.sourceforge.net/instantobjects/revision/?rev=707&view=rev Author: nandod Date: 2006-09-22 02:17:32 -0700 (Fri, 22 Sep 2006) Log Message: ----------- * ubmock and fpcunit integrated into the source tree. * Tests moved outside of Source. * svn:ignore set on several folders. Added Paths: ----------- trunk/Source/Catalogs/MSSql/D2006/__history/ trunk/Tests/ trunk/Tests/InstantMock.pas trunk/Tests/MinimalModel.pas trunk/Tests/Picture.bmp trunk/Tests/TestBlobText.txt trunk/Tests/TestBlobTextOut.txt trunk/Tests/TestIO.bdsproj trunk/Tests/TestIO.cfg trunk/Tests/TestIO.dof trunk/Tests/TestIO.dpr trunk/Tests/TestIO.lpi trunk/Tests/TestIO.mdr trunk/Tests/TestIO.mdrt trunk/Tests/TestIO.mdx trunk/Tests/TestIO.mdxt trunk/Tests/TestIO.res trunk/Tests/TestInstantAttribute.pas trunk/Tests/TestInstantAttributeMap.pas trunk/Tests/TestInstantAttributeMetadata.pas trunk/Tests/TestInstantBlob.pas trunk/Tests/TestInstantBoolean.pas trunk/Tests/TestInstantCache.pas trunk/Tests/TestInstantCircularReferences.pas trunk/Tests/TestInstantClassMetadata.pas trunk/Tests/TestInstantClasses.pas trunk/Tests/TestInstantComplex.pas trunk/Tests/TestInstantCurrency.pas trunk/Tests/TestInstantDateTime.pas trunk/Tests/TestInstantFieldMetadata.pas trunk/Tests/TestInstantFloat.pas trunk/Tests/TestInstantIndexMetadata.pas trunk/Tests/TestInstantInteger.pas trunk/Tests/TestInstantMetadata.pas trunk/Tests/TestInstantNumeric.pas trunk/Tests/TestInstantObject.pas trunk/Tests/TestInstantObjectReference.pas trunk/Tests/TestInstantObjectState.pas trunk/Tests/TestInstantObjectStore.pas trunk/Tests/TestInstantPart.pas trunk/Tests/TestInstantParts.pas trunk/Tests/TestInstantReference.pas trunk/Tests/TestInstantReferences.pas trunk/Tests/TestInstantRtti.pas trunk/Tests/TestInstantScheme.pas trunk/Tests/TestInstantString.pas trunk/Tests/TestInstantTableMetadata.pas trunk/Tests/TestMinimalModel.pas trunk/Tests/TestMockBroker.pas trunk/Tests/TestMockConnector.pas trunk/Tests/TestModel.pas trunk/Tests/ubmock/ trunk/Tests/ubmock/README.txt trunk/Tests/ubmock/src/ trunk/Tests/ubmock/src/COPYING.FPC trunk/Tests/ubmock/src/COPYING.TXT trunk/Tests/ubmock/src/GuiTestRunner.dfm trunk/Tests/ubmock/src/GuiTestRunner.pas trunk/Tests/ubmock/src/License_Notes.txt trunk/Tests/ubmock/src/NotRefCountIObject.pas trunk/Tests/ubmock/src/UbMockObject.pas trunk/Tests/ubmock/src/fpcunit.pas trunk/Tests/ubmock/src/fpcunitgui.res trunk/Tests/ubmock/src/testdecorator.pas trunk/Tests/ubmock/src/testregistry.pas trunk/Tests/ubmock/src/testreport.pas trunk/Tests/ubmock/src/testutils.pas trunk/Tests/ubmock/tests/ trunk/Tests/ubmock/tests/ConsoleTest.dpr trunk/Tests/ubmock/tests/GuiTests.dof trunk/Tests/ubmock/tests/GuiTests.dpr trunk/Tests/ubmock/tests/GuiTests.dsk trunk/Tests/ubmock/tests/GuiTests.res trunk/Tests/ubmock/tests/TestIMock.pas trunk/Tests/ubmock/tests/TestMock.pas trunk/Tests/ubmock/tests/TestMocks.dof trunk/Tests/ubmock/tests/TestMocks.dpr trunk/Tests/ubmock/tests/TestMocks.dsk trunk/Tests/ubmock/tests/TestMocks.res trunk/Tests/ubmock/tests/TestNotRefContInterface.pas trunk/Tests/ubmock/tests/asserttest.pas trunk/Tests/ubmock/tests/fpcunittests.pas trunk/Tests/ubmock/tests/suitetest.pas Removed Paths: ------------- trunk/Source/Tests/ Property Changed: ---------------- trunk/Source/Brokers/ADO/D2006/ trunk/Source/Brokers/BDE/D2006/ trunk/Source/Brokers/DBX/D2006/ trunk/Source/Brokers/IBX/ trunk/Source/Brokers/IBX/D2006/ trunk/Source/Brokers/XML/ trunk/Source/Brokers/XML/D2006/ trunk/Source/Catalogs/IBFb/ trunk/Source/Catalogs/IBFb/D2006/ trunk/Source/Catalogs/MSSql/ trunk/Source/Catalogs/MSSql/D2006/ trunk/Source/Core/D2006/ trunk/Source/Design/D2006/ trunk/Source/PackageGroups/D2006/ Property changes on: trunk/Source/Brokers/ADO/D2006 ___________________________________________________________________ Name: svn:ignore - *.dcu + *.dcu __history *.local *.cfg *.identcache Property changes on: trunk/Source/Brokers/BDE/D2006 ___________________________________________________________________ Name: svn:ignore - *.dcu + *.dcu __history *.local *.cfg Property changes on: trunk/Source/Brokers/DBX/D2006 ___________________________________________________________________ Name: svn:ignore - *.dcu + *.dcu __history *.local *.cfg Property changes on: trunk/Source/Brokers/IBX ___________________________________________________________________ Name: svn:ignore + *.dcu Property changes on: trunk/Source/Brokers/IBX/D2006 ___________________________________________________________________ Name: svn:ignore + __history *.dcu *.local *.cfg Property changes on: trunk/Source/Brokers/XML ___________________________________________________________________ Name: svn:ignore + *.dcu Property changes on: trunk/Source/Brokers/XML/D2006 ___________________________________________________________________ Name: svn:ignore - *.dcu + *.dcu __history *.local *.cfg Property changes on: trunk/Source/Catalogs/IBFb ___________________________________________________________________ Name: svn:ignore + *.dcu Property changes on: trunk/Source/Catalogs/IBFb/D2006 ___________________________________________________________________ Name: svn:ignore + __history *.local *.dcu *.identcache Property changes on: trunk/Source/Catalogs/MSSql ___________________________________________________________________ Name: svn:ignore + *.dcu Property changes on: trunk/Source/Catalogs/MSSql/D2006 ___________________________________________________________________ Name: svn:ignore + *.local *.dcu Property changes on: trunk/Source/Core/D2006 ___________________________________________________________________ Name: svn:ignore + __history *.local *.dcu *.identcache Property changes on: trunk/Source/Design/D2006 ___________________________________________________________________ Name: svn:ignore + *.local *.cfg *.dcu Property changes on: trunk/Source/PackageGroups/D2006 ___________________________________________________________________ Name: svn:ignore + __history *.local Property changes on: trunk/Tests ___________________________________________________________________ Name: svn:ignore + __history *.dcu *.local *.exe Copied: trunk/Tests/InstantMock.pas (from rev 706, trunk/Source/Tests/InstantMock.pas) =================================================================== --- trunk/Tests/InstantMock.pas (rev 0) +++ trunk/Tests/InstantMock.pas 2006-09-22 09:17:32 UTC (rev 707) @@ -0,0 +1,582 @@ +(* + * InstantObjects Test Suite + * InstantMock + *) + +(* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is: InstantObjects Test Suite/InstantMock + * + * The Initial Developer of the Original Code is: Uberto Barbini + * + * Portions created by the Initial Developer are Copyright (C) 2005 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Steven Mitchell + * + * ***** END LICENSE BLOCK ***** *) + +unit InstantMock; + +interface + +uses + SysUtils, Classes, DB, InstantPersistence, InstantBrokers, InstantMetadata, + InstantTypes, UbMockObject; + +type + TInstantBrokerClass = class of TInstantBroker; + + TInstantMockConnector = class(TInstantConnector) + private + FMock: TUbMockObject; + FBrokerClass: TInstantBrokerClass; + procedure SetBrokerClass(const Value: TInstantBrokerClass); + protected + procedure SetMock(const Value: TUbMockObject); + function CreateBroker: TInstantBroker; override; + procedure InternalConnect; override; + function InternalCreateScheme(Model: TInstantModel): TInstantScheme; override; + procedure InternalDisconnect; override; + procedure InternalStartTransaction; override; + procedure InternalCommitTransaction; override; + procedure InternalRollbackTransaction; override; + public + property MockManager: TUbMockObject read FMock write SetMock; + property BrokerClass: TInstantBrokerClass read FBrokerClass write SetBrokerClass; + class function ConnectionDefClass: TInstantConnectionDefClass; override; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + + TInstantMockConnectionDef = class(TInstantConnectionDef) + class function ConnectionTypeName: String; override; + class function ConnectorClass: TInstantConnectorClass; override; + function Edit: Boolean; override; + end; + + TInstantMockBroker = class(TInstantBroker) + private + FMock: TUbMockObject; + procedure SetMock(const Value: TUbMockObject); + protected + function InternalDisposeObject(AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; override; + function InternalRetrieveObject(AObject: TInstantObject; + const AObjectId: string; + ConflictAction: TInstantConflictAction): Boolean; override; + function InternalStoreObject(AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; override; + public + property MockManager: TUbMockObject read FMock write SetMock; + constructor Create(AConnector: TInstantConnector); override; + destructor Destroy; override; + end; + + TInstantMockCRBroker = class(TInstantCustomRelationalBroker) + private + FMock: TUbMockObject; + procedure SetMock(const Value: TUbMockObject); + protected + function EnsureResolver(Map: TInstantAttributeMap): TInstantCustomResolver; override; + function InternalDisposeObject(AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; override; + function InternalRetrieveObject(AObject: TInstantObject; + const AObjectId: String; + ConflictAction: TInstantConflictAction): Boolean; override; + function InternalStoreObject(AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; override; + public + property MockManager: TUbMockObject read FMock write SetMock; + constructor Create(AConnector: TInstantConnector); override; + destructor Destroy; override; + end; + + TInstantMockRelationalConnector = class(TInstantRelationalConnector) + private + FBrokerClass: TInstantBrokerClass; + FMock: TUbMockObject; + procedure SetBrokerClass(const Value: TInstantBrokerClass); + protected + function CreateBroker: TInstantBroker; override; + procedure InternalCommitTransaction; override; + procedure InternalConnect; override; + function InternalCreateScheme(Model: TInstantModel): TInstantScheme; override; + procedure InternalDisconnect; override; + procedure InternalRollbackTransaction; override; + procedure InternalStartTransaction; override; + procedure SetMock(const Value: TUbMockObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + class function ConnectionDefClass: TInstantConnectionDefClass; override; + property BrokerClass: TInstantBrokerClass read FBrokerClass write + SetBrokerClass; + property MockManager: TUbMockObject read FMock write SetMock; + end; + + TInstantMockSQLBroker = class(TInstantSQLBroker) + private + FMock: TUbMockObject; + procedure SetMock(const Value: TUbMockObject); + protected + procedure AssignDataSetParams(DataSet : TDataSet; AParams: TParams); override; + function CreateDataSet(const AStatement: string; AParams: TParams = nil): + TDataSet; override; + function CreateResolver(Map: TInstantAttributeMap): TInstantSQLResolver; + override; + function EnsureResolver(Map: TInstantAttributeMap): TInstantCustomResolver; + override; + function InternalDisposeObject(AObject: TInstantObject; ConflictAction: + TInstantConflictAction): Boolean; override; + function InternalRetrieveObject(AObject: TInstantObject; const AObjectId: + String; ConflictAction: TInstantConflictAction): Boolean; override; + function InternalStoreObject(AObject: TInstantObject; ConflictAction: + TInstantConflictAction): Boolean; override; + public + constructor Create(AConnector: TInstantConnector); override; + destructor Destroy; override; + function DataTypeToColumnType(DataType: TInstantDataType; Size: Integer): + string; override; + property MockManager: TUbMockObject read FMock write SetMock; + end; + + TInstantMockDataset = class(TDataSet) + private + FMock: TUbMockObject; + procedure SetMock(const Value: TUbMockObject); + protected + function GetRecord(Buffer: PChar; GetMode: TGetMode; DoCheck: Boolean): + TGetResult; override; + procedure InternalClose; override; + procedure InternalHandleException; override; + procedure InternalInitFieldDefs; override; + procedure InternalOpen; override; + function IsCursorOpen: Boolean; override; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property MockManager: TUbMockObject read FMock write SetMock; + end; + +implementation + +function CaToStr(ConflictAction: TInstantConflictAction): string; +begin + if ConflictAction = caIgnore then + Result := 'caIgnore' + else if ConflictAction = caFail then + Result := 'caFail' + else + Result := '???'; +end; + +{ TMockIConnector } + +class function TInstantMockConnector.ConnectionDefClass: TInstantConnectionDefClass; +begin + result := TInstantMockConnectionDef; +end; + +constructor TInstantMockConnector.Create(AOwner: TComponent); +begin + inherited; + FMock := TUbMockObject.Create; +end; + +function TInstantMockConnector.CreateBroker: TInstantBroker; +begin + if not Assigned(FBrokerClass) then + raise Exception.Create('Undefined BrokerClass'); + FMock.AddExpectation('CreateBroker ' + FBrokerClass.ClassName); + Result := FBrokerClass.Create(Self); +end; + +{ TInstantMockConnectionDef } + +class function TInstantMockConnectionDef.ConnectionTypeName: String; +begin + result := 'Mock'; +end; + +class function TInstantMockConnectionDef.ConnectorClass: TInstantConnectorClass; +begin + result := TInstantMockConnector; +end; + +function TInstantMockConnectionDef.Edit: Boolean; +begin + result := True; //boh?? +end; + +{ TInstantMockBroker } + +destructor TInstantMockConnector.Destroy; +begin + FMock.Free; + inherited; +end; + +procedure TInstantMockConnector.InternalCommitTransaction; +begin + inherited; + FMock.AddExpectation('InternalCommitTransaction'); +end; + +procedure TInstantMockConnector.InternalConnect; +begin + FMock.AddExpectation('InternalConnect'); +end; + +function TInstantMockConnector.InternalCreateScheme( + Model: TInstantModel): TInstantScheme; +begin + FMock.AddExpectation('InternalCreateScheme'); + Result := TInstantScheme.Create; + Result.Catalog := TInstantModelCatalog.Create(Result, Model); +end; + +procedure TInstantMockConnector.InternalDisconnect; +begin + FMock.AddExpectation('InternalDisconnect'); +end; + +procedure TInstantMockBroker.SetMock(const Value: TUbMockObject); +begin + FMock := Value; +end; + +constructor TInstantMockBroker.Create(AConnector: TInstantConnector); +begin + inherited; + FMock := TUbMockObject.Create; +end; + +destructor TInstantMockBroker.Destroy; +begin + FMock.Free; + inherited; +end; + +{ TInstantMockBroker } + +function TInstantMockBroker.InternalDisposeObject(AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; +begin + Result := True; + FMock.AddExpectation('InternalDisposeObject ' + AObject.Id); +end; + +function TInstantMockBroker.InternalRetrieveObject(AObject: TInstantObject; + const AObjectId: string; + ConflictAction: TInstantConflictAction): Boolean; +begin + Result := True; + FMock.AddExpectation('InternalRetrieveObject ' + AObjectId); +end; + +function TInstantMockBroker.InternalStoreObject(AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; +begin + Result := True; + FMock.AddExpectation('InternalStoreObject ' + AObject.Id); +end; + +procedure TInstantMockConnector.InternalRollbackTransaction; +begin + inherited; + FMock.AddExpectation('InternalRollbackTransaction'); +end; + +procedure TInstantMockConnector.InternalStartTransaction; +begin + inherited; + FMock.AddExpectation('InternalStartTransaction'); +end; + +procedure TInstantMockConnector.SetBrokerClass( + const Value: TInstantBrokerClass); +begin + FBrokerClass := Value; +end; + +procedure TInstantMockConnector.SetMock(const Value: TUbMockObject); +begin + FMock := Value; +end; + +{ TInstantMockCRBroker } + +constructor TInstantMockCRBroker.Create(AConnector: TInstantConnector); +begin + inherited; + FMock := TUbMockObject.Create; +end; + +destructor TInstantMockCRBroker.Destroy; +begin + FMock.Free; + inherited; +end; + +function TInstantMockCRBroker.EnsureResolver( + Map: TInstantAttributeMap): TInstantCustomResolver; +begin + MockManager.AddExpectation('EnsureResolver'); + Result := nil; +end; + +function TInstantMockCRBroker.InternalDisposeObject( + AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; +begin + Result := True; + MockManager.AddExpectation('InternalDisposeObject ' + CaToStr(ConflictAction) + ' ' + AObject.Id); +end; + +function TInstantMockCRBroker.InternalRetrieveObject( + AObject: TInstantObject; const AObjectId: String; + ConflictAction: TInstantConflictAction): Boolean; +begin + Result := True; + MockManager.AddExpectation('InternalRetrieveObject ' + CaToStr(ConflictAction) + ' ' + AObjectId); +end; + +function TInstantMockCRBroker.InternalStoreObject(AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; +begin + Result := True; + MockManager.AddExpectation('InternalStoreObject ' + CaToStr(ConflictAction) + ' ' + AObject.Id); +end; + +procedure TInstantMockCRBroker.SetMock(const Value: TUbMockObject); +begin + FMock := Value; +end; + +constructor TInstantMockRelationalConnector.Create(AOwner: TComponent); +begin + inherited; + FMock := TUbMockObject.Create; +end; + +{ TInstantMockBroker } + +destructor TInstantMockRelationalConnector.Destroy; +begin + FMock.Free; + inherited; +end; + +{ TMockIConnector } + +class function TInstantMockRelationalConnector.ConnectionDefClass: + TInstantConnectionDefClass; +begin + result := TInstantMockConnectionDef; +end; + +function TInstantMockRelationalConnector.CreateBroker: TInstantBroker; +begin + if not Assigned(FBrokerClass) then + raise Exception.Create('Undefined BrokerClass'); + FMock.AddExpectation('CreateBroker ' + FBrokerClass.ClassName); + Result := FBrokerClass.Create(Self); +end; + +procedure TInstantMockRelationalConnector.InternalCommitTransaction; +begin + inherited; + FMock.AddExpectation('InternalCommitTransaction'); +end; + +procedure TInstantMockRelationalConnector.InternalConnect; +begin + FMock.AddExpectation('InternalConnect'); +end; + +function TInstantMockRelationalConnector.InternalCreateScheme(Model: + TInstantModel): TInstantScheme; +begin + FMock.AddExpectation('InternalCreateScheme'); + Result := TInstantScheme.Create; + Result.Catalog := TInstantModelCatalog.Create(Result, Model); +end; + +procedure TInstantMockRelationalConnector.InternalDisconnect; +begin + FMock.AddExpectation('InternalDisconnect'); +end; + +procedure TInstantMockRelationalConnector.InternalRollbackTransaction; +begin + inherited; + FMock.AddExpectation('InternalRollbackTransaction'); +end; + +procedure TInstantMockRelationalConnector.InternalStartTransaction; +begin + inherited; + FMock.AddExpectation('InternalStartTransaction'); +end; + +procedure TInstantMockRelationalConnector.SetBrokerClass(const Value: + TInstantBrokerClass); +begin + FBrokerClass := Value; +end; + +procedure TInstantMockRelationalConnector.SetMock(const Value: TUbMockObject); +begin + FMock := Value; +end; + +{ TInstantMockCRBroker } + +constructor TInstantMockSQLBroker.Create(AConnector: TInstantConnector); +begin + inherited; + FMock := TUbMockObject.Create; +end; + +destructor TInstantMockSQLBroker.Destroy; +begin + FMock.Free; + inherited; +end; + +procedure TInstantMockSQLBroker.AssignDataSetParams(DataSet : TDataSet; + AParams: TParams); +begin + MockManager.AddExpectation('AssignDataSetParams'); +end; + +function TInstantMockSQLBroker.CreateDataSet(const AStatement: string; AParams: + TParams = nil): TDataSet; +begin + MockManager.AddExpectation('CreateDataSet'); +// Result := nil; + Result := TInstantMockDataset.Create(nil); +end; + +function TInstantMockSQLBroker.CreateResolver(Map: TInstantAttributeMap): + TInstantSQLResolver; +begin + MockManager.AddExpectation('CreateResolver'); + Result := nil; +end; + +function TInstantMockSQLBroker.DataTypeToColumnType(DataType: TInstantDataType; + Size: Integer): string; +begin + MockManager.AddExpectation('DataTypeToColumnType'); + Result := ''; +end; + +function TInstantMockSQLBroker.EnsureResolver(Map: TInstantAttributeMap): + TInstantCustomResolver; +begin + MockManager.AddExpectation('EnsureResolver'); + Result := nil; +end; + +function TInstantMockSQLBroker.InternalDisposeObject(AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; +begin + Result := True; + MockManager.AddExpectation('InternalDisposeObject ' + CaToStr(ConflictAction) + ' ' + AObject.Id); +end; + +function TInstantMockSQLBroker.InternalRetrieveObject(AObject: TInstantObject; + const AObjectId: String; ConflictAction: TInstantConflictAction): Boolean; +begin + Result := True; + MockManager.AddExpectation('InternalRetrieveObject ' + CaToStr(ConflictAction) + ' ' + AObjectId); +end; + +function TInstantMockSQLBroker.InternalStoreObject(AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; +begin + Result := True; + MockManager.AddExpectation('InternalStoreObject ' + CaToStr(ConflictAction) + ' ' + AObject.Id); +end; + +procedure TInstantMockSQLBroker.SetMock(const Value: TUbMockObject); +begin + FMock := Value; +end; + +{ TInstantMockCRBroker } + +constructor TInstantMockDataset.Create(AOwner: TComponent); +begin + inherited; + FMock := TUbMockObject.Create; +end; + +destructor TInstantMockDataset.Destroy; +begin + FMock.Free; + inherited; +end; + +function TInstantMockDataset.GetRecord(Buffer: PChar; GetMode: TGetMode; + DoCheck: Boolean): TGetResult; +begin + MockManager.AddExpectation('GetRecord'); + Result := grError; +end; + +procedure TInstantMockDataset.InternalClose; +begin + MockManager.AddExpectation('InternalClose'); +end; + +procedure TInstantMockDataset.InternalHandleException; +begin + raise Exception.Create('Exception raised in InternalHandleException'); +end; + +procedure TInstantMockDataset.InternalInitFieldDefs; +begin + raise Exception.Create('Exception raised in InternalInitFieldDefs'); + MockManager.AddExpectation('InternalInitFieldDefs'); +end; + +procedure TInstantMockDataset.InternalOpen; +begin + MockManager.AddExpectation('InternalOpen'); +end; + +function TInstantMockDataset.IsCursorOpen: Boolean; +begin + MockManager.AddExpectation('IsCursorOpen'); + Result := False; +end; + +procedure TInstantMockDataset.SetMock(const Value: TUbMockObject); +begin + FMock := Value; +end; + +initialization + RegisterClass(TInstantMockConnectionDef); + TInstantMockConnector.RegisterClass; + +finalization + TInstantMockConnector.UnregisterClass; + +end. + Copied: trunk/Tests/MinimalModel.pas (from rev 706, trunk/Source/Tests/MinimalModel.pas) =================================================================== --- trunk/Tests/MinimalModel.pas (rev 0) +++ trunk/Tests/MinimalModel.pas 2006-09-22 09:17:32 UTC (rev 707) @@ -0,0 +1,113 @@ +(* + * InstantObjects Test Suite + * MinimalModel + *) + +(* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is: InstantObjects Test Suite/MinimalModel + * + * The Initial Developer of the Original Code is: Uberto Barbini + * + * Portions created by the Initial Developer are Copyright (C) 2005 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Steven Mitchell + * + * ***** END LICENSE BLOCK ***** *) + +unit MinimalModel; + +interface + +uses + InstantPersistence; + +type + TSimpleClass = class(TInstantObject) + {IOMETADATA stored 'SIMPLE'; + StringProperty: String(20) stored 'STRING'; } + _StringProperty: TInstantString; + private + function GetStringProperty: string; + procedure SetStringProperty(const Value: string); + published + property StringProperty: string read GetStringProperty write SetStringProperty; + end; + +procedure CreateMinimalModel; + +implementation + +uses InstantMetadata, InstantTypes; + +procedure CreateMinimalModel; +var + InstantClassMetadata : TInstantClassMetadata; + InstantAttributeMetadata : TInstantAttributeMetadata; +begin +(* +<TInstantClassMetadatas> + <TInstantClassMetadata> + <Name>TSimpleClass</Name> + <Persistence>peStored</Persistence> + <StorageName>SIMPLE</StorageName> + <AttributeMetadatas> + <TInstantAttributeMetadatas> + <TInstantAttributeMetadata> + <Name>StringProperty</Name> + <AttributeType>atString</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <Size>10</Size> + <StorageName>STRING</StorageName> + </TInstantAttributeMetadata> + </TInstantAttributeMetadatas> + </AttributeMetadatas> + </TInstantClassMetadata> +</TInstantClassMetadatas> +*) + // An empty InstantModel.ClassMetadatas should already be available + InstantClassMetadata := InstantModel.ClassMetadatas.Add; + InstantClassMetadata.Name := 'TSimpleClass'; + InstantClassMetadata.Persistence := peStored; + InstantClassMetadata.StorageName := 'SIMPLE'; + InstantAttributeMetadata := InstantClassMetadata.AttributeMetadatas.Add; + InstantAttributeMetadata.Name := 'StringProperty'; + InstantAttributeMetadata.AttributeType := atString; + InstantAttributeMetadata.IsIndexed := FALSE; + InstantAttributeMetadata.IsRequired := FALSE; + InstantAttributeMetadata.Size := 10; + InstantAttributeMetadata.StorageName := 'STRING'; +end; + +{ TSimpleClass } + +function TSimpleClass.GetStringProperty: string; +begin + Result := _StringProperty.Value; +end; + +procedure TSimpleClass.SetStringProperty(const Value: string); +begin + _StringProperty.Value := Value; +end; + +initialization + InstantRegisterClasses([ + TSimpleClass + ]); + +end. Copied: trunk/Tests/Picture.bmp (from rev 706, trunk/Source/Tests/Picture.bmp) =================================================================== (Binary files differ) Copied: trunk/Tests/TestBlobText.txt (from rev 706, trunk/Source/Tests/TestBlobText.txt) =================================================================== --- trunk/Tests/TestBlobText.txt (rev 0) +++ trunk/Tests/TestBlobText.txt 2006-09-22 09:17:32 UTC (rev 707) @@ -0,0 +1 @@ +The following notes document the structure of the InstantObjects tree as stored in CVS, explaining what each folder is for. Added: trunk/Tests/TestBlobTextOut.txt =================================================================== --- trunk/Tests/TestBlobTextOut.txt (rev 0) +++ trunk/Tests/TestBlobTextOut.txt 2006-09-22 09:17:32 UTC (rev 707) @@ -0,0 +1 @@ +The following notes document the structure of the InstantObjects tree as stored in CVS, explaining what each folder is for. Added: trunk/Tests/TestIO.bdsproj =================================================================== --- trunk/Tests/TestIO.bdsproj (rev 0) +++ trunk/Tests/TestIO.bdsproj 2006-09-22 09:17:32 UTC (rev 707) @@ -0,0 +1,175 @@ +<?xml version="1.0" encoding="utf-8"?> +<BorlandProject> + <PersonalityInfo> + <Option> + <Option Name="Personality">Delphi.Personality</Option> + <Option Name="ProjectType">VCLApplication</Option> + <Option Name="Version">1.0</Option> + <Option Name="GUID">{D24F7242-7354-4FC2-9558-648DB0B6C6D4}</Option> + </Option> + </PersonalityInfo> + <Delphi.Personality> + <Source> + <Source Name="MainSource">TestIO.dpr</Source> + </Source> + <FileVersion> + <FileVersion Name="Version">7.0</FileVersion> + </FileVersion> + <Compiler> + <Compiler Name="A">8</Compiler> + <Compiler Name="B">0</Compiler> + <Compiler Name="C">1</Compiler> + <Compiler Name="D">1</Compiler> + <Compiler Name="E">0</Compiler> + <Compiler Name="F">0</Compiler> + <Compiler Name="G">1</Compiler> + <Compiler Name="H">1</Compiler> + <Compiler Name="I">1</Compiler> + <Compiler Name="J">0</Compiler> + <Compiler Name="K">0</Compiler> + <Compiler Name="L">1</Compiler> + <Compiler Name="M">0</Compiler> + <Compiler Name="N">1</Compiler> + <Compiler Name="O">0</Compiler> + <Compiler Name="P">1</Compiler> + <Compiler Name="Q">0</Compiler> + <Compiler Name="R">0</Compiler> + <Compiler Name="S">0</Compiler> + <Compiler Name="T">1</Compiler> + <Compiler Name="U">0</Compiler> + <Compiler Name="V">1</Compiler> + <Compiler Name="W">1</Compiler> + <Compiler Name="X">1</Compiler> + <Compiler Name="Y">1</Compiler> + <Compiler Name="Z">1</Compiler> + <Compiler Name="ShowHints">True</Compiler> + <Compiler Name="ShowWarnings">True</Compiler> + <Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler> + <Compiler Name="NamespacePrefix"></Compiler> + <Compiler Name="GenerateDocumentation">False</Compiler> + <Compiler Name="DefaultNamespace"></Compiler> + <Compiler Name="SymbolDeprecated">True</Compiler> + <Compiler Name="SymbolLibrary">True</Compiler> + <Compiler Name="SymbolPlatform">True</Compiler> + <Compiler Name="SymbolExperimental">True</Compiler> + <Compiler Name="UnitLibrary">True</Compiler> + <Compiler Name="UnitPlatform">True</Compiler> + <Compiler Name="UnitDeprecated">True</Compiler> + <Compiler Name="UnitExperimental">True</Compiler> + <Compiler Name="HResultCompat">True</Compiler> + <Compiler Name="HidingMember">True</Compiler> + <Compiler Name="HiddenVirtual">True</Compiler> + <Compiler Name="Garbage">True</Compiler> + <Compiler Name="BoundsError">True</Compiler> + <Compiler Name="ZeroNilCompat">True</Compiler> + <Compiler Name="StringConstTruncated">True</Compiler> + <Compiler Name="ForLoopVarVarPar">True</Compiler> + <Compiler Name="TypedConstVarPar">True</Compiler> + <Compiler Name="AsgToTypedConst">True</Compiler> + <Compiler Name="CaseLabelRange">True</Compiler> + <Compiler Name="ForVariable">True</Compiler> + <Compiler Name="ConstructingAbstract">True</Compiler> + <Compiler Name="ComparisonFalse">True</Compiler> + <Compiler Name="ComparisonTrue">True</Compiler> + <Compiler Name="ComparingSignedUnsigned">True</Compiler> + <Compiler Name="CombiningSignedUnsigned">True</Compiler> + <Compiler Name="UnsupportedConstruct">True</Compiler> + <Compiler Name="FileOpen">True</Compiler> + <Compiler Name="FileOpenUnitSrc">True</Compiler> + <Compiler Name="BadGlobalSymbol">True</Compiler> + <Compiler Name="DuplicateConstructorDestructor">True</Compiler> + <Compiler Name="InvalidDirective">True</Compiler> + <Compiler Name="PackageNoLink">True</Compiler> + <Compiler Name="PackageThreadVar">True</Compiler> + <Compiler Name="ImplicitImport">True</Compiler> + <Compiler Name="HPPEMITIgnored">True</Compiler> + <Compiler Name="NoRetVal">True</Compiler> + <Compiler Name="UseBeforeDef">True</Compiler> + <Compiler Name="ForLoopVarUndef">True</Compiler> + <Compiler Name="UnitNameMismatch">True</Compiler> + <Compiler Name="NoCFGFileFound">True</Compiler> + <Compiler Name="ImplicitVariants">True</Compiler> + <Compiler Name="UnicodeToLocale">True</Compiler> + <Compiler Name="LocaleToUnicode">True</Compiler> + <Compiler Name="ImagebaseMultiple">True</Compiler> + <Compiler Name="SuspiciousTypecast">True</Compiler> + <Compiler Name="PrivatePropAccessor">True</Compiler> + <Compiler Name="UnsafeType">False</Compiler> + <Compiler Name="UnsafeCode">False</Compiler> + <Compiler Name="UnsafeCast">False</Compiler> + <Compiler Name="OptionTruncated">True</Compiler> + <Compiler Name="WideCharReduced">True</Compiler> + <Compiler Name="DuplicatesIgnored">True</Compiler> + <Compiler Name="UnitInitSeq">True</Compiler> + <Compiler Name="LocalPInvoke">True</Compiler> + <Compiler Name="MessageDirective">True</Compiler> + <Compiler Name="CodePage"></Compiler> + </Compiler> + <Linker> + <Linker Name="MapFile">0</Linker> + <Linker Name="OutputObjs">0</Linker> + <Linker Name="GenerateHpps">False</Linker> + <Linker Name="ConsoleApp">1</Linker> + <Linker Name="DebugInfo">False</Linker> + <Linker Name="RemoteSymbols">False</Linker> + <Linker Name="GenerateDRC">False</Linker> + <Linker Name="MinStackSize">16384</Linker> + <Linker Name="MaxStackSize">1048576</Linker> + <Linker Name="ImageBase">4194304</Linker> + <Linker Name="ExeDescription"></Linker> + </Linker> + <Directories> + <Directories Name="OutputDir"></Directories> + <Directories Name="UnitOutputDir"></Directories> + <Directories Name="PackageDLLOutputDir"></Directories> + <Directories Name="PackageDCPOutputDir"></Directories> + <Directories Name="SearchPath">..\Source\Core;.\ubmock\src</Directories> + <Directories Name="Packages">vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;adortl;vclactnband;vclshlctrls;CS30Logging70;Rz30Ctls70;Rz30DBCtls70;ip4000v7;Rave60VCL;Rave60CLX;madBasic_;madDisAsm_;CLXIB;ibxpress;VCLIB;IOCore;IOIBX</Directories> + <Directories Name="Conditionals"></Directories> + <Directories Name="DebugSourceDirs">..\Source\Core</Directories> + <Directories Name="UsePackages">False</Directories> + </Directories> + <Parameters> + <Parameters Name="RunParams"></Parameters> + <Parameters Name="HostApplication"></Parameters> + <Parameters Name="Launcher"></Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="DebugCWD"></Parameters> + <Parameters Name="Debug Symbols Search Path"></Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <Language> + <Language Name="ActiveLang"></Language> + <Language Name="ProjectLang">$00000000</Language> + <Language Name="RootDir">C:\Program Files\Borland\Delphi7\Bin\</Language> + </Language> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">False</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">1</VersionInfo> + <VersionInfo Name="MinorVer">0</VersionInfo> + <VersionInfo Name="Release">0</VersionInfo> + <VersionInfo Name="Build">0</VersionInfo> + <VersionInfo Name="Debug">False</VersionInfo> + <VersionInfo Name="PreRelease">False</VersionInfo> + <VersionInfo Name="Special">False</VersionInfo> + <VersionInfo Name="Private">False</VersionInfo> + <VersionInfo Name="DLL">False</VersionInfo> + <VersionInfo Name="Locale">3081</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName"></VersionInfoKeys> + <VersionInfoKeys Name="FileDescription"></VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"></VersionInfoKeys> + <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys> + <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> + <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys> + <VersionInfoKeys Name="ProductName"></VersionInfoKeys> + <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"></VersionInfoKeys> + </VersionInfoKeys> + </Delphi.Personality> +</BorlandProject> Copied: trunk/Tests/TestIO.cfg (from rev 706, trunk/Source/Tests/TestIO.cfg) =================================================================== --- trunk/Tests/TestIO.cfg (rev 0) +++ trunk/Tests/TestIO.cfg 2006-09-22 09:17:32 UTC (rev 707) @@ -0,0 +1,42 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O- +-$P+ +-$Q- +-$R- +-$S- +-$T+ +-$U- +-$V+ +-$W+ +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-LE"C:\Documents and Settings\nandod\Documenti\Borland Studio Projects\Bpl" +-LN"C:\Documents and Settings\nandod\Documenti\Borland Studio Projects\Bpl" +-U"..\Source\Core;.\ubmock\src" +-O"..\Source\Core;.\ubmock\src" +-I"..\Source\Core;.\ubmock\src" +-R"..\Source\Core;.\ubmock\src" +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST Copied: trunk/Tests/TestIO.dof (from rev 706, trunk/Source/Tests/TestIO.dof) =================================================================== --- trunk/Tests/TestIO.dof (rev 0) +++ trunk/Tests/TestIO.dof 2006-09-22 09:17:32 UTC (rev 707) @@ -0,0 +1,142 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=0 +P=1 +Q=0 +R=0 +S=0 +T=1 +U=0 +V=1 +W=1 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=0 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir= +PackageDLLOutputDir= +PackageDCPOutputDir= +SearchPath=..\core +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;adortl;vclactnband;vclshlctrls;CS30Logging70;Rz30Ctls70;Rz30DBCtls70;ip4000v7;Rave60VCL;Rave60CLX;madBasic_;madDisAsm_;CLXIB;ibxpress;VCLIB;IOCore;IOIBX +Conditionals= +DebugSourceDirs=..\core +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Program Files\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=0 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3081 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[HistoryLists\hlDebugSourcePath] +Count=1 +Item0=D:\Professional\Produzione\Progetti\Delphi 7\InstantObjects\Source\Core\;D:\Professional\Produzione\Progetti\Delphi 7\EhLib\Common +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; Copied: trunk/Tests/TestIO.dpr (from rev 706, trunk/Source/Tests/TestIO.dpr) =================================================================== --- trunk/Tests/TestIO.dpr (rev 0) +++ trunk/Tests/TestIO.dpr 2006-09-22 09:17:32 UTC (rev 707) @@ -0,0 +1,67 @@ +program TestIO; + +{$I '..\InstantDefines.inc'} + +{$IFDEF FPC} +{$mode objfpc}{$H+} +{$ENDIF} + +uses + FastMM4, +{$IFDEF FPC} + Interfaces, +{$ENDIF} + Forms, + guitestrunner, + fpcunit, + testregistry, + testutils, + testreport, + InstantPersistence, + InstantMock in 'InstantMock.pas', + TestMockConnector in 'TestMockConnector.pas', + TestMockBroker in 'TestMockBroker.pas', + TestModel in 'TestModel.pas', + TestInstantMetadata in 'TestInstantMetadata.pas', + TestInstantFieldMetadata in 'TestInstantFieldMetadata.pas', + TestInstantClassMetadata in 'TestInstantClassMetadata.pas', + TestInstantAttributeMetadata in 'TestInstantAttributeMetadata.pas', + TestInstantIndexMetadata in 'TestInstantIndexMetadata.pas', + TestInstantTableMetadata in 'TestInstantTableMetadata.pas', + TestInstantScheme in 'TestInstantScheme.pas', + TestInstantClasses in 'TestInstantClasses.pas', + TestInstantRtti in 'TestInstantRtti.pas', + TestMinimalModel in 'TestMinimalModel.pas', + TestInstantAttributeMap in 'TestInstantAttributeMap.pas', + TestInstantAttribute in 'TestInstantAttribute.pas', + TestInstantNumeric in 'TestInstantNumeric.pas', + TestInstantInteger in 'TestInstantInteger.pas', + TestInstantString in 'TestInstantString.pas', + TestInstantDateTime in 'TestInstantDateTime.pas', + TestInstantBoolean in 'TestInstantBoolean.pas', + TestInstantFloat in 'TestInstantFloat.pas', + TestInstantCurrency in 'TestInstantCurrency.pas', + TestInstantBlob in 'TestInstantBlob.pas', + TestInstantComplex in 'TestInstantComplex.pas', + TestInstantPart in 'TestInstantPart.pas', + TestInstantReference in 'TestInstantReference.pas', + TestInstantObject in 'TestInstantObject.pas', + TestInstantObjectState in 'TestInstantObjectState.pas', + TestInstantCache in 'TestInstantCache.pas', + TestInstantObjectStore in 'TestInstantObjectStore.pas', + TestInstantParts in 'TestInstantParts.pas', + TestInstantReferences in 'TestInstantReferences.pas', + TestInstantCircularReferences in 'TestInstantCircularReferences.pas', + TestInstantObjectReference in 'TestInstantObjectReference.pas'; + +{$R *.res} +{$R *.mdr} {TestModel} + +begin + Application.Initialize; + InstantModel.ClassMetadatas.Clear; +// Application.CreateForm(TGUITestRunner, TestRunner); + Application.CreateForm(TGUITestRunner, TestRunner); + Application.Run; +end. + Copied: trunk/Tests/TestIO.lpi (from rev 706, trunk/Source/Tests/TestIO.lpi) =================================================================== --- trunk/Tests/TestIO.lpi (rev 0) +++ trunk/Tests/TestIO.lpi 2006-09-22 09:17:32 UTC (rev 707) @@ -0,0 +1,1078 @@ +<?xml version="1.0"?> +<CONFIG> + <ProjectOptions> + <PathDelim Value="\"/> + <Version Value="5"/> + <General> + <MainUnit Value="0"/> + <ActiveEditorIndexAtStart Value="0"/> + <IconPath Value="./"/> + <TargetFileExt Value=".exe"/> + <Title Value="TestIO"/> + </General> + <JumpHistory Count="25" HistoryIndex="24"> + <Position1> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14313" Column="1" TopLine="14291"/> + </Position1> + <Position2> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14314" Column="1" TopLine="14292"/> + </Position2> + <Position3> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14315" Column="1" TopLine="14293"/> + </Position3> + <Position4> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14311" Column="1" TopLine="14289"/> + </Position4> + <Position5> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14313" Column="1" TopLine="14291"/> + </Position5> + <Position6> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14314" Column="1" TopLine="14292"/> + </Position6> + <Position7> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14315" Column="1" TopLine="14293"/> + </Position7> + <Position8> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14311" Column="1" TopLine="14289"/> + </Position8> + <Position9> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14313" Column="1" TopLine="14291"/> + </Position9> + <Position10> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14314" Column="1" TopLine="14292"/> + </Position10> + <Position11> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14315" Column="1" TopLine="14293"/> + </Position11> + <Position12> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14321" Column="1" TopLine="14299"/> + </Position12> + <Position13> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14382" Column="1" TopLine="14360"/> + </Position13> + <Position14> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14387" Column="1" TopLine="14365"/> + </Position14> + <Position15> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14382" Column="1" TopLine="14360"/> + </Position15> + <Position16> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14378" Column="1" TopLine="14356"/> + </Position16> + <Position17> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14389" Column="1" TopLine="14367"/> + </Position17> + <Position18> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14378" Column="1" TopLine="14356"/> + </Position18> + <Position19> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14389" Column="1" TopLine="14367"/> + </Position19> + <Position20> + <Filename Value="D:\SELEQT\InstantObjects1.7\source\brokers\uib\InstantUIB.pas"/> + <Caret Line="538" Column="1" TopLine="516"/> + </Position20> + <Position21> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="10063" Column="1" TopLine="10041"/> + </Position21> + <Position22> + <Filename Value="D:\lazarus\fpcsrc\fcl\fpcunit\fpcunit.pp"/> + <Caret Line="359" Column="37" TopLine="335"/> + </Position22> + <Position23> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPresentation.pas"/> + <Caret Line="269" Column="1" TopLine="267"/> + </Position23> + <Position24> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPresentation.pas"/> + <Caret Line="289" Column="31" TopLine="267"/> + </Position24> + <Position25> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPresentation.pas"/> + <Caret Line="363" Column="44" TopLine="341"/> + </Position25> + </JumpHistory> + <Units Count="127"> + <Unit0> + <CursorPos X="1" Y="31"/> + <EditorIndex Value="0"/> + <Filename Value="TestIO.dpr"/> + <IsPartOfProject Value="True"/> + <Loaded Value="True"/> + <TopLine Value="1"/> + <UnitName Value="TestIO"/> + <UsageCount Value="153"/> + </Unit0> + <Unit1> + <CursorPos X="1" Y="1"/> + <Filename Value="TestMockConnector.pas"/> + <TopLine Value="7"/> + <UnitName Value="TestMockConnector"/> + <UsageCount Value="15"/> + </Unit1> + <Unit2> + <CursorPos X="1" Y="102"/> + <Filename Value="E:\z\IO_cvs\Source\Core\InstantClasses.pas"/> + <TopLine Value="101"/> + <UnitName Value="InstantClasses"/> + <UsageCount Value="2"/> + </Unit2> + <Unit3> + <CursorPos X="10" Y="35"/> + <Filename Value="E:\lazarus\fpcsrc\fcl\classes\win32\classes.pp"/> + <TopLine Value="1"/> + <UsageCount Value="10"/> + </Unit3> + <Unit4> + <CursorPos X="34" Y="54"/> + <Filename Value="e:\lazarus\fpcsrc\fcl\classes\classes.inc"/> + <TopLine Value="30"/> + <UsageCount Value="10"/> + </Unit4> + <Unit5> + <CursorPos X="3" Y="315"/> + <Filename Value="e:\lazarus\fpcsrc\fcl\classes\classesh.inc"/> + <TopLine Value="303"/> + <UsageCount Value="10"/> + </Unit5> + <Unit6> + <CursorPos X="79" Y="36"/> + <Filename Value="E:\z\IO_cvs\Source\Core\InstantRtti.pas"/> + <TopLine Value="33"/> + <UnitName Value="InstantRtti"/> + <UsageCount Value="10"/> + </Unit6> + <Unit7> + <CursorPos X="38" Y="938"/> + <Filename Value="E:\z\svifpc\io\source\core\InstantPersistence.pas"/> + <TopLine Value="935"/> + <UnitName Value="InstantPersistence"/> + <UsageCount Value="11"/> + </Unit7> + <Unit8> + <CursorPos X="53" Y="12"/> + <Filename Value="InstantMock.pas"/> + <TopLine Value="10"/> + <UnitName Value="InstantMock"/> + <UsageCount Value="9"/> + </Unit8> + <Unit9> + <CursorPos X="1" Y="161"/> + <Filename Value="TestInstantRtti.pas"/> + <TopLine Value="135"/> + <UnitName Value="TestInstantRtti"/> + <UsageCount Value="59"/> + </Unit9> + <Unit10> + <CursorPos X="68" Y="118"/> + <Filename Value="E:\z\svifpc\io\source\core\InstantRtti.pas"/> + <TopLine Value="115"/> + <UnitName Value="InstantRtti"/> + <UsageCount Value="41"/> + </Unit10> + <Unit11> + <CursorPos X="34" Y="8"/> + <Filename Value="E:\z\svifpc\io\source\core\InstantDefines.inc"/> + <TopLine Value="1"/> + <UsageCount Value="10"/> + </Unit11> + <Unit12> + <CursorPos X="18" Y="83"/> + <Filename Value="E:\cvs_local\fpc\rtl\inc\variants.pp"/> + <TopLine Value="67"/> + <UnitName Value="variants"/> + <UsageCount Value="9"/> + </Unit12> + <Unit13> + <CursorPos X="1" Y="1"/> + <Filename Value="E:\cvs_local\fpc\rtl\win32\sysutils.pp"/> + <TopLine Value="46"/> + <UnitName Value="sysutils"/> + <UsageCount Value="9"/> + </Unit13> + <Unit14> + <CursorPos X="58" Y="105"/> + <Filename Value="E:\z\sviFpc\IO\Source\Core\InstantConsts.pas"/> + <TopLine Value="100"/> + <UnitName Value="InstantConsts"/> + <UsageCount Value="10"/> + </Unit14> + <Unit15> + <CursorPos X="29" Y="345"/> + <Filename Value="TestInstantClasses.pas"/> + <TopLine Value="293"/> + <UnitName Value="TestInstantClasses"/> + <UsageCount Value="42"/> + </Unit15> + <Unit16> + <CursorPos X="17" Y="1585"/> + <Filename Value="E:\z\svifpc\io\source\core\InstantCode.pas"/> + <TopLine Value="1574"/> + <UnitName Value="InstantCode"/> + <UsageCount Value="10"/> + </Unit16> + <Unit17> + <CursorPos X="1" Y="1"/> + <Filename Value="E:\z\svifpc\io\source\core\InstantClasses.pas"/> + <TopLine Value="1"/> + <UnitName Value="InstantClasses"/> + <UsageCount Value="40"/> + </Unit17> + <Unit18> + <CursorPos X="40" Y="80"/> + <Filename Value="E:\cvs_local\fpc\fcl\fpcunit\fpcunit.pp"/> + <TopLine Value="79"/> + <UnitName Value="fpcunit"/> + <UsageCount Value="8"/> + </Unit18> + <Unit19> + <CursorPos X="35" Y="32"/> + <Filename Value="E:\cvs_local\fpc\rtl\objpas\typinfo.pp"/> + <TopLine Value="30"/> + <UnitName Value="typinfo"/> + <UsageCount Value="21"/> + </Unit19> + <Unit20> + <CursorPos X="28" Y="376"/> + <Filename Value="E:\cvs_local\fpc\fcl\inc\rttiutils.pp"/> + <TopLine Value="371"/> + <UnitName Value="rttiutils"/> + <UsageCount Value="9"/> + </Unit20> + <Unit21> + <CursorPos X="5" Y="236"/> + <Filename Value="E:\z\svifpc\io\source\core\InstantFpcUtils.pas"/> + <TopLine Value="228"/> + <UnitName Value="InstantFpcUtils"/> + <UsageCount Value="29"/> + </Unit21> + <Unit22> + <CursorPos X="11" Y="1739"/> + <Filename Value="E:\cvs_local\fpc\rtl\objpas\classes\classesh.inc"/> + <TopLine Value="1728"/> + <UsageCount Value="21"/> + </Unit22> + <Unit23> + <CursorPos X="1" Y="840"/> + <Filename Value="E:\cvs_local\fpc\rtl\objpas\classes\writer.inc"/> + <TopLine Value="805"/> + <UsageCount Value="8"/> + </Unit23> + <Unit24> + <CursorPos X="3" Y="928"/> + <Filename Value="E:\cvs_local\fpc\rtl\objpas\classes\reader.inc"/> + <TopLine Value="926"/> + <UsageCount Value="22"/> + </Unit24> + <Unit25> + <CursorPos X="81" Y="68"/> + <Filename Value="E:\cvs_local\fpc\rtl\objpas\sysutils\sysutilh.inc"/> + <TopLine Value="67"/> + <UsageCount Value="2"/> + </Unit25> + <Unit26> + <CursorPos X="1" Y="1"/> + <Filename Value="TestMinimalModel.pas"/> + <TopLine Value="1"/> + <UnitName Value="TestMinimalModel"/> + <UsageCount Value="52"/> + </Unit26> + <Unit27> + <CursorPos X="54" Y="16"/> + <Filename Value="E:\cvs_local\fpc\tests\test\trtti1.pp"/> + <TopLine Value="5"/> + <UnitName Value="trtti1"/> + <UsageCount Value="6"/> + </Unit27> + <Unit28> + <CursorPos X="56" Y="4"/> + <Filename Value="TestMockBroker.pas"/> + <TopLine Value="2"/> + <UnitName Value="TestMockBroker"/> + <UsageCount Value="23"/> + </Unit28> + <Unit29> + <CursorPos X="9" Y="50"/> + <Filename Value="MinimalModel.pas"/> + <TopLine Value="46"/> + <UnitName Value="MinimalModel"/> + <UsageCount Value="50"/> + </Unit29> + <Unit30> + <CursorPos X="60" Y="538"/> + <Filename Value="Model.pas"/> + <TopLine Value="536"/> + <UnitName Value="Model"/> + <UsageCount Value="20"/> + </Unit30> + <Unit31> + <CursorPos X="17" Y="7"/> + <Filename Value="TestInstantPersistence.pas"/> + <TopLine Value="2"/> + <UnitName Value="TestInstantPersistence"/> + <UsageCount Value="49"/> + </Unit31> + <Unit32> + <CursorPos X="57" Y="1"/> + <Filename Value="E:\cvs_local\fpc\rtl\objpas\rtlconsts.pp"/> + <TopLine Value="1"/> + <UnitName Value="RtlConsts"/> + <UsageCount Value="9"/> + </Unit32> + <Unit33> + <CursorPos X="1" Y="1"/> + <Filename Value="TestIO.mdx"/> + <SyntaxHighlighter Value="None"/> + <TopLine Value="1"/> + <UsageCount Value="5"/> + </Unit33> + <Unit34> + <CursorPos X="7" Y="905"/> + <Filename Value="E:\cvs_local\fpc\fcl\classes\classes.inc"/> + <TopLine Value="661"/> + <UsageCount Value="9"/> + </Unit34> + <Unit35> + <CursorPos X="38" Y="594"/> + <Filename Value="E:\cvs_local\fpc\fcl\classes\reader.inc"/> + <TopLine Value="591"/> + <UsageCount Value="1"/> + </Unit35> + <Unit36> + <CursorPos X="81" Y="352"/> + <Filename Value="E:\cvs_local\lazarus\components\fpcunit\GuiTestRunner.pas"/> + <ComponentName Value="GUITestRunner"/> + <ResourceFilename Value="E:\cvs_local\lazarus\components\fpcunit\guitestrunner.lrs"/> + <TopLine Value="346"/> + <UnitName Value="GuiTestRunner"/> + <UsageCount Value="7"/> + </Unit36> + <Unit37> + <CursorPos X="1" Y="41"/> + <Filename Value="E:\cvs_local\fpc\rtl\objpas\classes\constsg.inc"/> + <TopLine Value="30"/> + <UsageCount Value="2"/> + </Unit37> + <Unit38> + <CursorPos X="1" Y="40"/> + <Filename Value="E:\cvs_local\fpc\rtl\objpas\classes\constss.inc"/> + <TopLine Value="29"/> + <UsageCount Value="2"/> + </Unit38> + <Unit39> + <CursorPos X="2" Y="40"/> + <Filename Value="E:\cvs_local\fpc\rtl\objpas\classes\util.inc"/> + <TopLine Value="40"/> + <UsageCount Value="11"/> + </Unit39> + <Unit40> + <CursorPos X="11" Y="172"/> + <Filename Value="E:\cvs_local\fpc\rtl\objpas\strutils.pp"/> + <TopLine Value="161"/> + <UnitName Value="strutils"/> + <UsageCount Value="8"/> + </Unit40> + <Unit41> + <CursorPos X="3" Y="1230"/> + <Filename Value="E:\cvs_local\lazarus\components\rtticontrols\rttigrids.pas"/> + <TopLine Value="1219"/> + <UnitName Value="RTTIGrids"/> + <UsageCount Value="8"/> + </Unit41> + <Unit42> + <CursorPos X="6" Y="2"/> + <Filename Value="E:\cvs_local\fpc\fcl\inc\streamex.pp"/> + <TopLine Value="1"/> + <UnitName Value="streamex"/> + <UsageCount Value="7"/> + </Unit42> + <Unit43> + <CursorPos X="75" Y="18"/> + <Filename Value="E:\cvs_local\fpc\fcl\Makefile.fpc"/> + <SyntaxHighlighter Value="None"/> + <TopLine Value="9"/> + <UsageCount Value="7"/> + </Unit43> + <Unit44> + <CursorPos X="6" Y="16"/> + <Filename Value="E:\cvs_local\fpc\fcl\inc\streamio.pp"/> + <TopLine Value="5"/> + <UnitName Value="StreamIO"/> + <UsageCount Value="7"/> + </Unit44> + <Unit45> + <CursorPos X="63" Y="100"/> + <Filename Value="E:\z\svifpc\io\source\core\InstantUtils.pas"/> + <TopLine Value="85"/> + <UnitName Value="InstantUtils"/> + <UsageCount Value="7"/> + </Unit45> + <Unit46> + <CursorPos X="16" Y="20"/> + <Filename Value="D:\fpc_uberto\lazarus\lcl\Graphics.pp"/> + <TopLine Value="17"/> + <UnitName Value="... [truncated message content] |
From: <sr...@us...> - 2006-08-19 04:34:33
|
Revision: 706 Author: srmitch Date: 2006-08-18 21:34:04 -0700 (Fri, 18 Aug 2006) ViewCVS: http://svn.sourceforge.net/instantobjects?rev=706&view=rev Log Message: ----------- - More updates to IO Help source and binaries: 1. Some fixes to contents; 2. Added more info to eoSyncEdit option in TInstantExposerOptions type; 3. Added a note about BeforeStore for embedded objects in 'Adding Business Rules'. Modified Paths: -------------- trunk/Help/IOHelp.chm trunk/Help/IOHelp.cnt trunk/Help/IOHelp.hlp trunk/Help/IOHelp.hsc trunk/Help/IOHelp.rtf Modified: trunk/Help/IOHelp.chm =================================================================== (Binary files differ) Modified: trunk/Help/IOHelp.cnt =================================================================== --- trunk/Help/IOHelp.cnt 2006-08-18 06:20:38 UTC (rev 705) +++ trunk/Help/IOHelp.cnt 2006-08-19 04:34:04 UTC (rev 706) @@ -4,7 +4,6 @@ :BASE IOHelp.hlp :TITLE InstantObjects Help 1 Welcome=Scribble10 -1 License Agreement=327SA3X 1 License Agreement=Scribble30 1 Installing InstantObjects=Scribble40 1 InstantObjects User Guide @@ -24,11 +23,10 @@ 3 Persistence by RAD=Scribble300 3 The Connector=Scribble310 3 The Exposer=Scribble320 -3 The Exposer=Scribble320 3 The Selector=Scribble330 2 Programming with Persistent Objects 3 Programming with Persistent Objects=Scribble340 -3 Creating New Objects=Scribble340 +3 Creating New Objects=Scribble360 3 Retrieving Existing Objects=Scribble380 3 Associating Objects=Scribble420 3 Using an InstantQuery=Scribble440 Modified: trunk/Help/IOHelp.hlp =================================================================== (Binary files differ) Modified: trunk/Help/IOHelp.hsc =================================================================== --- trunk/Help/IOHelp.hsc 2006-08-18 06:20:38 UTC (rev 705) +++ trunk/Help/IOHelp.hsc 2006-08-19 04:34:04 UTC (rev 706) @@ -713,13 +713,14 @@ FALSE -7 -{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}} +8 +{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}{\f2\fnil\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 Adding Business Rules \cf1\b0\fs16 \par \cf2\strike Example 1\cf3\strike0\{linkID=250>example\}\cf1\tab\cf2\strike Example 2\cf3\strike0\{linkID=260>example\}\cf1\f1\tab\cf2\strike\f0 Creating the Business Model\cf3\strike0\{LinkID=70>main\}\{keepn\}\cf1 \par \pard\sb25\sa25\fs18 Validation rules and other business related behavior is added to your business classes by adding the required code plus additional methods and properties to the class. Validation rules and side effects of changing the value of an attribute are often added to the setter method of the corresponding property. Complete validation of business objects before they are stored to the database can be added by overriding the BeforeStore method of the class. New objects can be initialized by overriding the Initialize method. For a complete list of the virtual methods of \cf2\strike TInstantObject\cf3\strike0\{linkID=7390>main\}\cf1 , please refer to the InstantObjects Reference Guide. \par +\par \pard\cf0\lang3081\f2 Note: BeforeStore is currently NOT called for \i embedded\i0 objects. Validation of \i embedded \i0 objects, however, can be done by using its owner's BeforeStore event.\cf1\lang1040 \par } 250 Scribble250 @@ -28541,9 +28542,9 @@ FALSE -18 -{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fnil Arial;}{\f3\fswiss\fcharset0 Arial;}} -{\colortbl ;\red0\green128\blue0;\red128\green0\blue0;} +20 +{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fnil Arial;}{\f3\fswiss\fcharset0 Arial;}{\f4\fnil\fcharset0 Arial;}} +{\colortbl ;\red0\green128\blue0;\red128\green0\blue0;\red0\green0\blue0;} \viewkind4\uc1\pard\lang3081\b\f0\fs24 TInstantExposerOptions\b0\fs16 \par \pard\sb25\tx1435\cf1\ul See Also\cf2\ulnone\{linkID=12350\}\tab\cf1\strike Unit: InstantPresentation\cf2\strike0\{linkID=13100>main\}\{keepn\}\cf0 \par \pard\sb25\sa85\tx1435\fs18 Specifies options for an exposer. @@ -28556,9 +28557,11 @@ \par eoAutoApply\tab Changes \f0 made to the exposer's \cf1\strike Subject\cf2\strike0\{linkID=5150>main\}\cf0 or objects contained in the \cf1\strike Subject\cf2\strike0\{linkID=5150>main\}\cf0 should be applied automatically. For \cf1\strike TInstantObject\cf2\strike0\{linkID=7390>main\}\cf0 descendants this means that the persistent storage is updated for each changed object. Deleted objects will be disposed from the persistent storage and new objects will be added. \par eoAutoRemember\tab Automatically applies \cf1\strike Remember\cf2\strike0\{linkID=5430>main\}\cf0 and \cf1\strike Revert\cf2\strike0\{linkID=5480>main\}\cf0 functionality to the \f3 exposer's \cf1\strike\f0 Subject\cf2\strike0\{linkID=5150>main\}\cf0 . \par eoNotDisposeReferences\tab Do not \cf1\strike Dispose\cf2\strike0\{linkID=8570>main\}\cf0 referenced objects of References attributes when deleting the \cf1\strike CurrentObject\cf2\strike0\{linkID=4920>main\}\cf0 of the exposer. This option is only effective when the exposer is in amContent \cf1\strike Mode\cf2\strike0\{linkID=5020>main\}\cf0 and its \cf1\strike Subject\cf2\strike0\{linkID=5150>main\}\cf0 is a References attribute. -\par eoDeferInsert\tab Insertion of the object in the of the container of the Subject is deferred. It specifies that objects that are appended or inserted are not applied to the container of the \cf1\strike Subject\cf2\strike0\{linkID=5150>main\}\cf0 until a row is posted. This option is only effective when the exposer is in amContent \cf1\strike\f3 Mode\cf2\strike0\f0\{linkID=5020>main\}\cf0 . -\par eoSyncEdit\tab Allows a buffer update if the exposer's \cf1\strike Subject\cf2\strike0\{linkID=5150>main\}\cf0 is changed or refreshed and the exposer is in Edit mode.\f2 -\par \f0 +\par eoDeferInsert\tab\lang1033\f3 Addition or i\lang3081\f0 nsertion of object\lang1033\f3 s\lang3081\f0 in\lang1033\f3 to\lang3081\f0 \lang1033\f3 a\lang3081\f0 container of the Subject is deferred. It specifies that objects that are appended or inserted are not applied to the container of the \cf1\strike Subject\cf2\strike0\{linkID=5150>main\}\cf0 until a row is posted. This option is only effective when the exposer is in amContent \cf1\strike\f3 Mode\cf2\strike0\f0\{linkID=5020>main\}\cf0 . +\par \pard\fi-2440\li2440\tx2440\cf3\f2 eoSyncEdit\lang1033\tab\lang3081 Allows a buffer update if the exposer's \cf1\strike Subject\cf2\strike0\{linkID=5150>main\}\cf3 is changed or refreshed and the exposer is in Edit mode.\lang1033 \f4 This option is useful \lang3081\f2 when a\lang1033\f4 \lang3081\f2 single \lang1033\f4 o\lang3081\f2 bject is simultaneously connected to multiple exposers\lang1033\f4 \cf0\lang3081 to ensure that all of the exposers maintain a consistent view of the shared object\cf3\f2 .\lang1033\f4 \cf0\lang3081 If eoSyncEdit is not enabled (the default) in this scenario, the exposers can easily get out of sync causing undesirable behaviour.\f0 +\par \pard\fi-2440\li2440\sb25\sa25\tx2440 +\par \tab\f2 +\par \pard\f4 . \par } 12350 Scribble12350 @@ -30701,9 +30704,8 @@ nav="InstantObjects Guide",(200,410,220,503),0,(255,255,255),(255,255,255),0 0 0 -212 +210 1 Welcome=Scribble10 -1 License Agreement=327SA3X 1 License Agreement=Scribble30 1 Installing InstantObjects=Scribble40 1 InstantObjects User Guide @@ -30723,11 +30725,10 @@ 3 Persistence by RAD=Scribble300 3 The Connector=Scribble310 3 The Exposer=Scribble320 -3 The Exposer=Scribble320 3 The Selector=Scribble330 2 Programming with Persistent Objects 3 Programming with Persistent Objects=Scribble340 -3 Creating New Objects=Scribble340 +3 Creating New Objects=Scribble360 3 Retrieving Existing Objects=Scribble380 3 Associating Objects=Scribble420 3 Using an InstantQuery=Scribble440 Modified: trunk/Help/IOHelp.rtf =================================================================== --- trunk/Help/IOHelp.rtf 2006-08-18 06:20:38 UTC (rev 705) +++ trunk/Help/IOHelp.rtf 2006-08-19 04:34:04 UTC (rev 706) @@ -532,6 +532,7 @@ \par \cf2\strike Example 1\cf3\strike0{\v Scribble250>example}\cf1\tab\cf2\strike Example 2\cf3\strike0{\v Scribble260>example}\cf1\f1\tab\cf2\strike\f0 Creating the Business Model\cf3\strike0{\v Scribble70>main}\cf1 \par \pard\sb25\sa25\fs18 Validation rules and other business related behavior is added to your business classes by adding the required code plus additional methods and properties to the class. Validation rules and side effects of changing the value of an attribute are often added to the setter method of the corresponding property. Complete validation of business objects before they are stored to the database can be added by overriding the BeforeStore method of the class. New objects can be initialized by overriding the Initialize method. For a complete list of the virtual methods of \cf2\strike TInstantObject\cf3\strike0{\v Scribble7390>main}\cf1 , please refer to the InstantObjects Reference Guide. \par +\par \pard\cf0\lang3081\f5 Note: BeforeStore is currently NOT called for \i embedded\i0 objects. Validation of \i embedded \i0 objects, however, can be done by using its owner's BeforeStore event.\cf1\lang1040 \par \pard\plain\f2 {\page} @@ -19926,9 +19927,11 @@ \par eoAutoApply\tab Changes \f0 made to the exposer's \cf2\strike Subject\cf3\strike0{\v Scribble5150>main}\cf0 or objects contained in the \cf2\strike Subject\cf3\strike0{\v Scribble5150>main}\cf0 should be applied automatically. For \cf2\strike TInstantObject\cf3\strike0{\v Scribble7390>main}\cf0 descendants this means that the persistent storage is updated for each changed object. Deleted objects will be disposed from the persistent storage and new objects will be added. \par eoAutoRemember\tab Automatically applies \cf2\strike Remember\cf3\strike0{\v Scribble5430>main}\cf0 and \cf2\strike Revert\cf3\strike0{\v Scribble5480>main}\cf0 functionality to the \f1 exposer's \cf2\strike\f0 Subject\cf3\strike0{\v Scribble5150>main}\cf0 . \par eoNotDisposeReferences\tab Do not \cf2\strike Dispose\cf3\strike0{\v Scribble8570>main}\cf0 referenced objects of References attributes when deleting the \cf2\strike CurrentObject\cf3\strike0{\v Scribble4920>main}\cf0 of the exposer. This option is only effective when the exposer is in amContent \cf2\strike Mode\cf3\strike0{\v Scribble5020>main}\cf0 and its \cf2\strike Subject\cf3\strike0{\v Scribble5150>main}\cf0 is a References attribute. -\par eoDeferInsert\tab Insertion of the object in the of the container of the Subject is deferred. It specifies that objects that are appended or inserted are not applied to the container of the \cf2\strike Subject\cf3\strike0{\v Scribble5150>main}\cf0 until a row is posted. This option is only effective when the exposer is in amContent \cf2\strike\f1 Mode\cf3\strike0\f0{\v Scribble5020>main}\cf0 . -\par eoSyncEdit\tab Allows a buffer update if the exposer's \cf2\strike Subject\cf3\strike0{\v Scribble5150>main}\cf0 is changed or refreshed and the exposer is in Edit mode.\f2 -\par \f0 +\par eoDeferInsert\tab\lang1033\f1 Addition or i\lang3081\f0 nsertion of object\lang1033\f1 s\lang3081\f0 in\lang1033\f1 to\lang3081\f0 \lang1033\f1 a\lang3081\f0 container of the Subject is deferred. It specifies that objects that are appended or inserted are not applied to the container of the \cf2\strike Subject\cf3\strike0{\v Scribble5150>main}\cf0 until a row is posted. This option is only effective when the exposer is in amContent \cf2\strike\f1 Mode\cf3\strike0\f0{\v Scribble5020>main}\cf0 . +\par \pard\fi-2440\li2440\tx2440\cf1\f2 eoSyncEdit\lang1033\tab\lang3081 Allows a buffer update if the exposer's \cf2\strike Subject\cf3\strike0{\v Scribble5150>main}\cf1 is changed or refreshed and the exposer is in Edit mode.\lang1033 \f5 This option is useful \lang3081\f2 when a\lang1033\f5 \lang3081\f2 single \lang1033\f5 o\lang3081\f2 bject is simultaneously connected to multiple exposers\lang1033\f5 \cf0\lang3081 to ensure that all of the exposers maintain a consistent view of the shared object\cf1\f2 .\lang1033\f5 \cf0\lang3081 If eoSyncEdit is not enabled (the default) in this scenario, the exposers can easily get out of sync causing undesirable behaviour.\f0 +\par \pard\fi-2440\li2440\sb25\sa25\tx2440 +\par \tab\f2 +\par \pard\f5 . \par \pard\plain\f0 {\page} |
From: <mot...@us...> - 2006-08-18 06:20:46
|
Revision: 705 Author: mottadelli Date: 2006-08-17 23:20:38 -0700 (Thu, 17 Aug 2006) ViewCVS: http://svn.sourceforge.net/instantobjects?rev=705&view=rev Log Message: ----------- Add uses missing after refactoring Modified Paths: -------------- trunk/Source/Brokers/UIB/InstantUIB.pas trunk/Source/Brokers/UIB/InstantUIBConnectionDefEdit.pas Modified: trunk/Source/Brokers/UIB/InstantUIB.pas =================================================================== --- trunk/Source/Brokers/UIB/InstantUIB.pas 2006-08-17 10:20:58 UTC (rev 704) +++ trunk/Source/Brokers/UIB/InstantUIB.pas 2006-08-18 06:20:38 UTC (rev 705) @@ -37,7 +37,8 @@ uses Classes, Db, jvuib, jvuibdataset, jvuiblib, SysUtils, - InstantPersistence, InstantClasses, InstantCommand; + InstantPersistence, InstantBrokers, InstantClasses, + InstantCommand, InstantMetadata, InstantTypes; type TInstantUIBOption = (uibUseDelimitedIdents); Modified: trunk/Source/Brokers/UIB/InstantUIBConnectionDefEdit.pas =================================================================== --- trunk/Source/Brokers/UIB/InstantUIBConnectionDefEdit.pas 2006-08-17 10:20:58 UTC (rev 704) +++ trunk/Source/Brokers/UIB/InstantUIBConnectionDefEdit.pas 2006-08-18 06:20:38 UTC (rev 705) @@ -37,7 +37,7 @@ uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, - StdCtrls, ExtCtrls, InstantUIB; + StdCtrls, ExtCtrls, InstantUIB, InstantTypes; type TInstantUIBConnectionDefEditForm = class(TForm) |
From: <sr...@us...> - 2006-08-17 10:21:30
|
Revision: 704 Author: srmitch Date: 2006-08-17 03:20:58 -0700 (Thu, 17 Aug 2006) ViewCVS: http://svn.sourceforge.net/instantobjects?rev=704&view=rev Log Message: ----------- - More updates to IO Help source and binaries: 1. Few fixes to contents; 2. Added references for TInstantPersistence and TInstantStorageKind types. Modified Paths: -------------- trunk/Help/IOHelp.chm trunk/Help/IOHelp.cnt trunk/Help/IOHelp.hlp trunk/Help/IOHelp.hpj trunk/Help/IOHelp.hsc trunk/Help/IOHelp.rtf Modified: trunk/Help/IOHelp.chm =================================================================== (Binary files differ) Modified: trunk/Help/IOHelp.cnt =================================================================== --- trunk/Help/IOHelp.cnt 2006-08-13 06:28:08 UTC (rev 703) +++ trunk/Help/IOHelp.cnt 2006-08-17 10:20:58 UTC (rev 704) @@ -2,7 +2,7 @@ ;Licensed to: Steven Mitchell :BASE IOHelp.hlp -:TITLE InstantObjects Guide 2.0 +:TITLE InstantObjects Help 1 Welcome=Scribble10 1 License Agreement=327SA3X 1 License Agreement=Scribble30 @@ -10,13 +10,13 @@ 1 InstantObjects User Guide 2 User Guide for InstantObjects 2.0=Scribble50 2 Creating the Business Model -3 Creating the Business Model=327SA3P 3 Creating the Business Model=Scribble70 3 The Model Explorer=Scribble90 3 Defining Classes 4 Defining Classes=Scribble120 4 Class Editor=Scribble130 4 Attribute Editor=Scribble170 +4 External Storage of Attributes=Scribble220 3 Adding Business Rules=Scribble240 3 Building/Evolving the Business Model=Scribble270 2 Creating the User Interface @@ -27,7 +27,7 @@ 3 The Exposer=Scribble320 3 The Selector=Scribble330 2 Programming with Persistent Objects -3 Programming with Persistent Objects=327SA.T +3 Programming with Persistent Objects=Scribble340 3 Creating New Objects=Scribble340 3 Retrieving Existing Objects=Scribble380 3 Associating Objects=Scribble420 @@ -183,33 +183,35 @@ 3 TInstantNotifyEvent=Scribble12470>MAIN 3 TInstantObjectNotifyEvent=Scribble12480>MAIN 3 TInstantOperationType=Scribble12490>MAIN -3 TInstantProcessObjectEvent=Scribble12500>MAIN -3 TInstantProgressEvent=Scribble12510>MAIN -3 TInstantSchemeEvent=Scribble12520>MAIN -3 TInstantSortCompare=Scribble12530>MAIN -3 TInstantStreamFormat=Scribble12550>MAIN -3 TInstantVerificationResult=Scribble12570>MAIN +3 TInstantPersistence=Scribble12500>MAIN +3 TInstantProcessObjectEvent=Scribble12510>MAIN +3 TInstantProgressEvent=Scribble12520>MAIN +3 TInstantSchemeEvent=Scribble12530>MAIN +3 TInstantSortCompare=Scribble12540>MAIN +3 TInstantStorageKind=Scribble12560>MAIN +3 TInstantStreamFormat=Scribble12580>MAIN +3 TInstantVerificationResult=Scribble12600>MAIN 2 Constants -3 InstantAttributePrefix=Scribble12590>MAIN -3 InstantClassPrefix=Scribble12610>MAIN -3 InstantDateFormat=Scribble12620>MAIN -3 InstantDateTimeFormat=Scribble12640>MAIN -3 InstantTimeFormat=Scribble12660>MAIN +3 InstantAttributePrefix=Scribble12620>MAIN +3 InstantClassPrefix=Scribble12640>MAIN +3 InstantDateFormat=Scribble12650>MAIN +3 InstantDateTimeFormat=Scribble12670>MAIN +3 InstantTimeFormat=Scribble12690>MAIN 2 Units -3 InstantADO.pas=Scribble12680>MAIN -3 InstantADS.pas=Scribble12710>MAIN -3 InstantBDE.pas=Scribble12730>MAIN -3 InstantBrokers.pas=Scribble12760>MAIN -3 InstantClasses.pas=Scribble12790>MAIN -3 InstantConnectionManager.pas=Scribble12830>MAIN -3 InstantConsts.pas=Scribble12860>MAIN -3 InstantDBISAM.pas=Scribble12880>MAIN -3 InstantDBX.pas=Scribble12900>MAIN -3 InstantExplorer.pas=Scribble12920>MAIN -3 InstantFlashFiler.pas=Scribble12960>MAIN -3 InstantIBX.pas=Scribble12980>MAIN -3 InstantMetadata.pas=Scribble13000>MAIN -3 InstantPersistence.pas=Scribble13020>MAIN -3 InstantPresentation.pas=Scribble13070>MAIN -3 InstantTypes.pas=Scribble13110>MAIN -3 InstantUtils.pas=Scribble13130>MAIN +3 InstantADO.pas=Scribble12710>MAIN +3 InstantADS.pas=Scribble12740>MAIN +3 InstantBDE.pas=Scribble12760>MAIN +3 InstantBrokers.pas=Scribble12790>MAIN +3 InstantClasses.pas=Scribble12820>MAIN +3 InstantConnectionManager.pas=Scribble12860>MAIN +3 InstantConsts.pas=Scribble12890>MAIN +3 InstantDBISAM.pas=Scribble12910>MAIN +3 InstantDBX.pas=Scribble12930>MAIN +3 InstantExplorer.pas=Scribble12950>MAIN +3 InstantFlashFiler.pas=Scribble12990>MAIN +3 InstantIBX.pas=Scribble13010>MAIN +3 InstantMetadata.pas=Scribble13030>MAIN +3 InstantPersistence.pas=Scribble13050>MAIN +3 InstantPresentation.pas=Scribble13100>MAIN +3 InstantTypes.pas=Scribble13140>MAIN +3 InstantUtils.pas=Scribble13160>MAIN Modified: trunk/Help/IOHelp.hlp =================================================================== (Binary files differ) Modified: trunk/Help/IOHelp.hpj =================================================================== --- trunk/Help/IOHelp.hpj 2006-08-13 06:28:08 UTC (rev 703) +++ trunk/Help/IOHelp.hpj 2006-08-17 10:20:58 UTC (rev 704) @@ -1,4 +1,4 @@ -; InstantObjects Guide 2.0 +; InstantObjects Help ; ; This help file was created with HelpScribble 7.6.1 @@ -15,7 +15,7 @@ LCID=0x0409 CNT=IOHelp.cnt ROOT=D:\L\INSTAN~1\Help -TITLE=InstantObjects Guide 2.0 +TITLE=InstantObjects Help [CONFIG] BrowseButtons() @@ -1305,4 +1305,7 @@ Scribble13140 13140 Scribble13150 13150 Scribble13160 13160 +Scribble13170 13170 +Scribble13180 13180 +Scribble13190 13190 Modified: trunk/Help/IOHelp.hsc =================================================================== --- trunk/Help/IOHelp.hsc 2006-08-13 06:28:08 UTC (rev 703) +++ trunk/Help/IOHelp.hsc 2006-08-17 10:20:58 UTC (rev 704) @@ -3,7 +3,7 @@ `grira Zvgpuryy-0Q4954 0 1 -InstantObjects Guide 2.0 +InstantObjects Help @@ -37,7 +37,7 @@ Next FALSE -1276 +1279 10 Scribble10 InstantObjects Welcome @@ -658,7 +658,7 @@ \par \f2\fs10 \par \cf3\f1\fs18\{bmc AttributeEditorDefinitionExternal.gif\}\cf1 \par \f2\fs10 -\par \f1\fs18 The\lang1033\f0 \lang1040\b\f1 Storage Kind\b0\i \i0 combo-box allows to choose between \i Embedded \i0 (the classic model) and \i External \i0 (the new model). For Part attributes that (in addition to defining the target class \i stored \i0 and not \i embedded\i0 ) is enough. For Parts and References you also need \lang1033\f0 an\lang1040\f1 \b External Storage Name\lang1033\b0\f0 entry\lang1040\f1 , that is the name the \lang1033\f0 linking\lang1040\f1 table will have. \lang1033\f0 The default naming \lang1040\f1 convention\lang1033\f0 is to \lang1040\f1 use "<\lang1033\f0 class\lang1040\f1 \lang1033\f0 storage\lang1040\f1 name>_<attribute name>"\lang1033\f0 for new attributes\lang1040\f1 , but\lang1033\f0 any other suitable\lang1040\f1 naming scheme\lang1033\f0 may be used\lang1040\f1 .\lang1033\f0 If \b Auto\b0 is checked the default naming scheme will be used to update the \lang1040\b\f1 External Storage Name\lang1033\b0\f0 entry to the current values of its component names (ie \lang1040\f1 <\lang1033\f0 class\lang1040\f1 \lang1033\f0 storage\lang1040\f1 name>\lang1033\f0 and \lang1040\f1 <attribute name>\lang1033\f0 ).\lang1040\f1 +\par \f1\fs18 The\lang1033\f0 \lang1040\b\f1 Storage Kind\b0\i \i0 combo-box \lang1033\f0 allows a selection\lang1040\f1 between \i Embedded \i0 (the classic model) and \i External \i0 (the new model). For Part attributes that (in addition to defining the target class \i stored \i0 and not \i embedded\i0 ) is enough. For Parts and References you also need \lang1033\f0 an\lang1040\f1 \b External Storage Name\lang1033\b0\f0 entry\lang1040\f1 , that is the name the \lang1033\f0 linking\lang1040\f1 table will have. \lang1033\f0 The default naming \lang1040\f1 convention\lang1033\f0 is to \lang1040\f1 use "<\lang1033\f0 class\lang1040\f1 \lang1033\f0 storage\lang1040\f1 name>_<attribute name>"\lang1033\f0 for new attributes\lang1040\f1 , but\lang1033\f0 any other suitable\lang1040\f1 naming scheme\lang1033\f0 may be used\lang1040\f1 .\lang1033\f0 If \b Auto\b0 is checked the default naming scheme will be used to update the \lang1040\b\f1 External Storage Name\lang1033\b0\f0 entry to the current values of its component names (ie \lang1040\f1 <\lang1033\f0 class\lang1040\f1 \lang1033\f0 storage\lang1040\f1 name>\lang1033\f0 and \lang1040\f1 <attribute name>\lang1033\f0 ).\lang1040\f1 \par \pard\f2\fs10 \par \pard\sb25\sa25\lang1033\f0\fs18 IMPORTANT\lang1040\f1 NOTE\lang1033\f0 S: \par \pard{\pntext\f3\'B7\tab}{\*\pn\pnlvlblt\pnf3\pnindent0{\pntxtb\'B7}}\fi-200\li200\sb25\sa25\tx200\b\i External Storage and Class Persistence\b0\i0 - A cl\lang1040\f1 ass must \lang1033\f0 have its Persistence property set to\lang1040\f1 \i stored\i0 \lang1033\f0 if it is referred\lang1040\f1 \lang1033\f0 to by attributes that use\lang1040\f1 \i external \i0 storage. \lang1033\f0 A c\lang1040\f1 lass\lang1033\f0 defined with\lang1040\f1 \i embedded\i0 \lang1033\f0 Persistence may only be used by\lang1040\f1 \i embedded\i0 (the \lang1033\f0 InstantObjects \lang1040\f1 historical arrangement) part and parts attributes\lang1033\f0 ;\lang1040\f1 @@ -1852,7 +1852,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 EInstantAccessError \cf1\b0\fs16 -\par \pard\sb25\tx1435\tx2875\tx4315\cf2\ul Hierarchy\cf3\ulnone\{linkID=1030\}\cf1\tab\cf2\ul See Also\cf3\ulnone\{linkID=1010\}\cf1\tab\cf2\strike Example 1\cf3\strike0\{linkID=1020>example\}\cf1\tab\cf2\strike Unit: InstantPersistence\cf3\strike0\{linkID=13020>main\}\{keepn\}\cf1 +\par \pard\sb25\tx1435\tx2875\tx4315\cf2\ul Hierarchy\cf3\ulnone\{linkID=1030\}\cf1\tab\cf2\ul See Also\cf3\ulnone\{linkID=1010\}\cf1\tab\cf2\strike Example 1\cf3\strike0\{linkID=1020>example\}\cf1\tab\cf2\strike Unit: InstantPersistence\cf3\strike0\{linkID=13050>main\}\{keepn\}\cf1 \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 The exception class for access errors. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\f1 EInstantAccessError = \b class\b0 (\cf2\strike EInstantError\cf3\strike0\{linkID=1350>main\}\cf1 ) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\b\f0 Description @@ -2101,7 +2101,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 EInstantConflict\cf1\b0\fs16 -\par \pard\sb25\tx1440\tx2840\cf2\ul Hierarchy\cf3\ulnone\{linkID=1140\}\cf1\tab\cf2\strike Example 1\cf3\strike0\{linkID=1130>example\}\cf1\tab\cf2\strike Unit: InstantPersistence\cf3\strike0\{linkID=13020>main\}\{keepn\}\cf1 +\par \pard\sb25\tx1440\tx2840\cf2\ul Hierarchy\cf3\ulnone\{linkID=1140\}\cf1\tab\cf2\strike Example 1\cf3\strike0\{linkID=1130>example\}\cf1\tab\cf2\strike Unit: InstantPersistence\cf3\strike0\{linkID=13050>main\}\{keepn\}\cf1 \par \pard\sb25\sa85\tx1435\tx2875\fs18 The exception class for conflict errors. \par \pard\sb25\sa25\tx1435\tx2875\f1 EInstantConflict = \b class\b0 (\cf2\strike EInstantError\cf3\strike0\{linkID=1350>main\}\cf1 ) \par \pard\sb55\sa25\tx1435\tx2875\b\f0 Description @@ -2331,7 +2331,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 EInstantConversionError \cf1\b0\fs16 -\par \pard\sb25\tx1435\tx2875\tx4315\cf2\ul Hierarchy\cf3\ulnone\{linkID=1260\}\cf1\tab\cf2\ul See Also\cf3\ulnone\{linkID=1240\}\cf1\tab\cf2\strike Example 1\cf3\strike0\{linkID=1250>example\}\cf1\tab\cf2\strike Unit: InstantClasses\cf3\strike0\{linkID=12790>main\}\cf1\{keepn\} +\par \pard\sb25\tx1435\tx2875\tx4315\cf2\ul Hierarchy\cf3\ulnone\{linkID=1260\}\cf1\tab\cf2\ul See Also\cf3\ulnone\{linkID=1240\}\cf1\tab\cf2\strike Example 1\cf3\strike0\{linkID=1250>example\}\cf1\tab\cf2\strike Unit: InstantClasses\cf3\strike0\{linkID=12820>main\}\cf1\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 The exception class for conversion errors. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\f1 EInstantConversionError = \b class\b0 (\cf2\strike EInstantError\cf3\strike0\{linkID=1350>main\}\cf1 ) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\b\f0 Description @@ -2582,7 +2582,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 EInstantError \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\cf2\ul Hierarchy\cf3\ulnone\{linkID=1360\}\cf1\tab\cf2\strike Members\cf3\strike0\{linkID=1430>nav\}\cf1\tab\cf2\strike Properties\cf3\strike0\{linkID=1380>nav\}\cf1\tab\cf2\strike Methods\cf3\strike0\{linkID=1410>nav\}\cf1\tab\cf2\strike Unit: InstantClasses\cf3\strike0\{linkID=12790>main\}\cf1\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\cf2\ul Hierarchy\cf3\ulnone\{linkID=1360\}\cf1\tab\cf2\strike Members\cf3\strike0\{linkID=1430>nav\}\cf1\tab\cf2\strike Properties\cf3\strike0\{linkID=1380>nav\}\cf1\tab\cf2\strike Methods\cf3\strike0\{linkID=1410>nav\}\cf1\tab\cf2\strike Unit: InstantClasses\cf3\strike0\{linkID=12820>main\}\cf1\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 The common ancestor of exception classes. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\f1 EInstantError = \b class\b0 (Exception) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\b\f0 Description @@ -2884,7 +2884,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 EInstantKeyViolation \cf1\b0\fs16 -\par \pard\sb25\tx1435\tx2875\ul Hierarchy\ulnone\{linkID=1510\}\tab\ul See Also\ulnone\{linkID=1500\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1435\tx2875\ul Hierarchy\ulnone\{linkID=1510\}\tab\ul See Also\ulnone\{linkID=1500\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 The exception class for key violations. \par \pard\sb25\sa25\tx1435\tx2875\f1 EInstantKeyViolation = \b class\b0 (\strike EInstantConflict\strike0\{linkID=1120>main\}) \par \pard\sb55\sa25\tx1435\tx2875\b\f0 Description @@ -3111,7 +3111,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 EInstantRangeError \cf1\b0\fs16 -\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=1610\}\tab\strike Unit: InstantClasses\strike0\{linkID=12790>main\}\{keepn\} +\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=1610\}\tab\strike Unit: InstantClasses\strike0\{linkID=12820>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\fs18 The exception class for too large or too small integer values. \par \pard\sb25\sa25\tx1435\f1 EInstantRangeError = \b class\b0 (\strike EInstantError\strike0\{linkID=1350>main\}) \par \pard\sb55\sa25\tx1435\b\f0 Description @@ -3317,7 +3317,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 EInstantStreamError \cf1\b0\fs16 -\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=1710\}\tab\strike Unit: InstantClasses\strike0\{linkID=12790>main\}\{keepn\} +\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=1710\}\tab\strike Unit: InstantClasses\strike0\{linkID=12820>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\fs18 The exception class for streaming errors. \par \pard\sb25\sa25\tx1435\f1 EInstantStreamError = \b class\b0 (\strike EInstantError\strike0\{linkID=1350>main\}) \par \pard\sb55\sa25\tx1435\b\f0 Description @@ -3523,7 +3523,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 EInstantValidationError \cf1\b0\fs16 -\par \pard\sb25\tx1435\tx2875\ul Hierarchy\ulnone\{linkID=1820\}\tab\ul See Also\ulnone\{linkID=1810\}\tab\strike Unit: InstantClasses\strike0\{linkID=12790>main\}\{keepn\} +\par \pard\sb25\tx1435\tx2875\ul Hierarchy\ulnone\{linkID=1820\}\tab\ul See Also\ulnone\{linkID=1810\}\tab\strike Unit: InstantClasses\strike0\{linkID=12820>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 The exception class for validation errors. \par \pard\sb25\sa25\tx1435\tx2875\f1 EInstantValidationError = \b class\b0 (\strike EInstantError\strike0\{linkID=1350>main\}) \par \pard\sb55\sa25\tx1435\tx2875\b\f0 Description @@ -3729,7 +3729,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantADOConnector \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=1910\}\tab\strike Members\strike0\{linkID=1980>nav\}\tab\strike Properties\strike0\{linkID=1930>nav\}\tab\strike Methods\strike0\{linkID=1970>nav\}\tab\strike Unit: InstantADO\strike0\{linkID=12680>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=1910\}\tab\strike Members\strike0\{linkID=1980>nav\}\tab\strike Properties\strike0\{linkID=1930>nav\}\tab\strike Methods\strike0\{linkID=1970>nav\}\tab\strike Unit: InstantADO\strike0\{linkID=12710>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 Provides access to a database. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\strike\f1 TInstantConnectorClass\strike0\{linkID=12210>main\} = \b class\b0 \b of\b0 \strike TInstantConnector\strike0\{linkID=3770>main\}; \par \strike TInstantConnector\strike0\{linkID=3770>main\} = \b class\b0 (TComponent) @@ -4088,7 +4088,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantADSConnector \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=2050\}\tab\strike Members\strike0\{linkID=2120>nav\}\tab\strike Properties\strike0\{linkID=2070>nav\}\tab\strike Methods\strike0\{linkID=2110>nav\}\tab\strike Unit: InstantADS\strike0\{linkID=12710>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=2050\}\tab\strike Members\strike0\{linkID=2120>nav\}\tab\strike Properties\strike0\{linkID=2070>nav\}\tab\strike Methods\strike0\{linkID=2110>nav\}\tab\strike Unit: InstantADS\strike0\{linkID=12740>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 Provides access to a database. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\strike\f1 TInstantConnectorClass\strike0\{linkID=12210>main\} = \b class\b0 \b of\b0 \strike TInstantConnector\strike0\{linkID=3770>main\}; \par \strike TInstantConnector\strike0\{linkID=3770>main\} = \b class\b0 (TComponent) @@ -4413,7 +4413,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantAttribute \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5680\ul Hierarchy\ulnone\{linkID=2180\}\tab\strike Members\strike0\{linkID=2250>nav\}\tab\strike Properties\strike0\{linkID=2200>nav\}\tab\strike Methods\strike0\{linkID=2230>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5680\ul Hierarchy\ulnone\{linkID=2180\}\tab\strike Members\strike0\{linkID=2250>nav\}\tab\strike Properties\strike0\{linkID=2200>nav\}\tab\strike Methods\strike0\{linkID=2230>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 The common ancestor of all the attribute classes. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\f1 TInstantAttribute = \b class\b0 (\strike TInstantStreamable\strike0\{linkID=10830>main\}) \par PInstantAttribute = ^TInstantAttribute; @@ -5342,7 +5342,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantBDEConnector \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=2570\}\tab\strike Members\strike0\{linkID=2640>nav\}\tab\strike Properties\strike0\{linkID=2590>nav\}\tab\strike Unit: InstantBDE\strike0\{linkID=12730>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=2570\}\tab\strike Members\strike0\{linkID=2640>nav\}\tab\strike Properties\strike0\{linkID=2590>nav\}\tab\strike Unit: InstantBDE\strike0\{linkID=12760>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 Provides access to a database. \par \pard\sb25\sa25\tx1435\tx2875\strike\f1 TInstantConnectorClass\strike0\{linkID=12210>main\} = \b class\b0 \b of\b0 \strike TInstantConnector\strike0\{linkID=3770>main\}; \par \strike TInstantConnector\strike0\{linkID=3770>main\} = \b class\b0 (TComponent) @@ -5648,7 +5648,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantBlob \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\ul Hierarchy\ulnone\{linkID=2700\}\tab\strike Members\strike0\{linkID=2770>nav\}\tab\strike Properties\strike0\{linkID=2720>nav\}\tab\strike Methods\strike0\{linkID=2750>nav\}\tab\ul See Also\ulnone\{linkID=2690\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\ul Hierarchy\ulnone\{linkID=2700\}\tab\strike Members\strike0\{linkID=2770>nav\}\tab\strike Properties\strike0\{linkID=2720>nav\}\tab\strike Methods\strike0\{linkID=2750>nav\}\tab\ul See Also\ulnone\{linkID=2690\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\tx5755\fs18 TInstantBlob represents a binary large object (BLOB). \par \pard\sb25\sa25\tx1435\tx2875\tx4315\tx5755\f1 TInstantBlob = \b class\b0 (\strike TInstantSimple\strike0\{linkID=10430>main\}) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\tx5755\b\f0 Description @@ -6089,7 +6089,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantBoolean\cf1\b0\fs16 -\par \pard\sb25\tx1420\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=2870\}\tab\strike Members\strike0\{linkID=2940>nav\}\tab\strike Properties\strike0\{linkID=2890>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1420\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=2870\}\tab\strike Members\strike0\{linkID=2940>nav\}\tab\strike Properties\strike0\{linkID=2890>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 TInstantBoolean represents a Boolean value. \par \pard\sb25\sa25\tx1435\tx2875\f1 TInstantBoolean = \b class\b0 (\strike TInstantSimple\strike0\{linkID=10430>main\}) \par \pard\sb55\sa25\tx1435\tx2875\b\f0 Description @@ -6358,7 +6358,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantCollection \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=2980\}\tab\strike Members\strike0\{linkID=3030>nav\}\tab\strike Methods\strike0\{linkID=3020>nav\}\tab\strike Unit: InstantClasses\strike0\{linkID=12790>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=2980\}\tab\strike Members\strike0\{linkID=3030>nav\}\tab\strike Methods\strike0\{linkID=3020>nav\}\tab\strike Unit: InstantClasses\strike0\{linkID=12820>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 TInstantCollection is a container for \strike TInstantCollectionItem\strike0\{linkID=3090>main\} objects. \par \pard\sb25\sa25\tx1435\tx2875\f1 TInstantCollection = \b class\b0 (TCollection) \par \pard\sb55\sa25\tx1435\tx2875\b\f0 Description @@ -6625,7 +6625,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantCollectionItem \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=3100\}\tab\strike Members\strike0\{linkID=3160>nav\}\tab\strike Properties\strike0\{linkID=3120>nav\}\tab\strike Unit: InstantClasses\strike0\{linkID=12790>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=3100\}\tab\strike Members\strike0\{linkID=3160>nav\}\tab\strike Properties\strike0\{linkID=3120>nav\}\tab\strike Unit: InstantClasses\strike0\{linkID=12820>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 TInstantCollectionItem is the ancestor for collection item classes. \par \pard\sb25\sa25\tx1435\tx2875\f1 TInstantCollectionItem = \b class\b0 (TCollectionItem) \par \pard\sb55\sa25\tx1435\tx2875\b\f0 Description @@ -6831,7 +6831,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantComplex \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7080\ul Hierarchy\ulnone\{linkID=3210\}\tab\strike Members\strike0\{linkID=3280>nav\}\tab\strike Properties\strike0\{linkID=3230>nav\}\tab\strike Methods\strike0\{linkID=3260>nav\}\tab\ul See Also\ulnone\{linkID=3200\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7080\ul Hierarchy\ulnone\{linkID=3210\}\tab\strike Members\strike0\{linkID=3280>nav\}\tab\strike Properties\strike0\{linkID=3230>nav\}\tab\strike Methods\strike0\{linkID=3260>nav\}\tab\ul See Also\ulnone\{linkID=3200\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\tx5755\fs18 The ancestor of all the attribute classes that represent objects. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\tx5755\f1 TInstantComplex = \b class\b0 (\strike TInstantAttribute\strike0\{linkID=2170>main\}) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\tx5755\b\f0 Description @@ -7349,7 +7349,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantConnectionBasedConnector \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=3410\}\tab\strike Members\strike0\{linkID=3480>nav\}\tab\strike Properties\strike0\{linkID=3430>nav\}\tab\strike Methods\strike0\{linkID=3470>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=3410\}\tab\strike Members\strike0\{linkID=3480>nav\}\tab\strike Properties\strike0\{linkID=3430>nav\}\tab\strike Methods\strike0\{linkID=3470>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 Provides access to a database. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\strike\f1 TInstantConnectorClass\strike0\{linkID=12210>main\} = \b class\b0 \b of\b0 \strike TInstantConnector\strike0\{linkID=3770>main\}; \par \strike TInstantConnector\strike0\{linkID=3770>main\} = \b class\b0 (TComponent) @@ -7650,7 +7650,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantConnectionManager \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\tx5700\ul Hierarchy\ulnone\{linkID=3530\}\tab\strike Members\strike0\{linkID=3600>nav\}\tab\strike Properties\strike0\{linkID=3550>nav\}\tab\strike Methods\strike0\{linkID=3580>nav\}\tab\strike Unit: InstantConnectionManager\strike0\{linkID=12830>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\tx5700\ul Hierarchy\ulnone\{linkID=3530\}\tab\strike Members\strike0\{linkID=3600>nav\}\tab\strike Properties\strike0\{linkID=3550>nav\}\tab\strike Methods\strike0\{linkID=3580>nav\}\tab\strike Unit: InstantConnectionManager\strike0\{linkID=12860>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 Allows the user to manage connections to various databases. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\f1 TInstantConnectionManager = \b class\b0 (TComponent) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\b\f0 Description @@ -8230,7 +8230,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantConnector \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\tx5700\tx7100\ul Hierarchy\ulnone\{linkID=3780\}\tab\strike Members\strike0\{linkID=3850>nav\}\tab\strike Properties\strike0\{linkID=3800>nav\}\tab\strike Methods\strike0\{linkID=3840>nav\}\tab\strike Events\strike0\{linkID=3820>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\tx5700\tx7100\ul Hierarchy\ulnone\{linkID=3780\}\tab\strike Members\strike0\{linkID=3850>nav\}\tab\strike Properties\strike0\{linkID=3800>nav\}\tab\strike Methods\strike0\{linkID=3840>nav\}\tab\strike Events\strike0\{linkID=3820>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\tx5755\fs18 Provides access to a database. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\tx5755\strike\f1 TInstantConnectorClass\strike0\{linkID=12210>main\} = \b class\b0 \b of\b0 TInstantConnector; \par TInstantConnector = \b class\b0 (TComponent) @@ -9413,7 +9413,7 @@ \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantConnector.BeforeBuildDatabase \cf1\b0\fs16 \par \cf2\strike TInstantConnector\cf3\strike0\{linkID=3770>main\}\cf1\{keepn\} \par \pard\sb25\sa85\fs18 Occurs before the database is build. -\par \pard\sb25\sa25\b\f1 property\b0 BeforeBuildDatabase: \strike TInstantSchemeEvent\strike0\{linkID=12520>main\}; +\par \pard\sb25\sa25\b\f1 property\b0 BeforeBuildDatabase: \strike TInstantSchemeEvent\strike0\{linkID=12530>main\}; \par \pard\sb55\sa25\b\f0 Description \par \pard\sb25\sa25\b0 Write a BeforeBuildDatabase event handler to take specific action before a database is build. The event is particularly useful if modifications or additions should be made to the database scheme like adding indices. \par @@ -9434,7 +9434,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fswiss\fcharset0 Arial;}{\f3\fnil Arial;}{\f4\fnil\fcharset2 Symbol;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantContainer \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\tx5680\ul Hierarchy\ulnone\{linkID=4310\}\tab\strike Members\strike0\{linkID=4380>nav\}\tab\strike Properties\strike0\{linkID=4330>nav\}\tab\strike Methods\strike0\{linkID=4360>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\tx5680\ul Hierarchy\ulnone\{linkID=4310\}\tab\strike Members\strike0\{linkID=4380>nav\}\tab\strike Properties\strike0\{linkID=4330>nav\}\tab\strike Methods\strike0\{linkID=4360>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 TInstantContainer is the ancestor of attribute classes that represent a relationship with multiple objects. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\f1 TInstantContainer = \b class\b0 (\strike TInstantComplex\strike0\{linkID=3190>main\}) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\b\f0 Description @@ -10304,7 +10304,7 @@ \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantContainer.Sort \cf1\b0\fs16 \par \cf2\strike TInstantContainer\cf3\strike0\{linkID=4300>main\}\cf1\{keepn\} \par \pard\sb25\sa85\fs18 Sorts the objects in the container based on comparison function. -\par \pard\sb25\sa25\b\f1 procedure\b0 Sort(Compare: \strike TInstantSortCompare\strike0\{linkID=12530>main\}); +\par \pard\sb25\sa25\b\f1 procedure\b0 Sort(Compare: \strike TInstantSortCompare\strike0\{linkID=12540>main\}); \par \pard\sb55\sa25\b\f0 Description \par \pard\sb25\sa25\b0 Call Sort to QuickSort the objects in the container. Compare is a comparison function that indicates how the items are to be ordered. \par @@ -10325,7 +10325,7 @@ {\rtf1\ansi\ansicpg1252\deff0\deflang3081{\fonttbl{\f0\fnil\fcharset0 Arial;}{\f1\fnil Arial;}{\f2\fswiss Arial;}{\f3\fswiss\fcharset0 Arial;}{\f4\fmodern Courier New;}{\f5\fmodern\fcharset0 Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1033\b\fs24 TInstantCurrency\cf1\lang3081\b0\f1\fs18 -\par \pard\sb25\tx1400\tx2840\tx4260\tx5680\lang1040\ul\f2\fs16 Hierarchy\ulnone\{linkID=4690\}\tab\strike Members\strike0\{linkID=4760>nav\}\tab\strike Properties\strike0\{linkID=4710>nav\}\tab\ul See Also\ulnone\{linkID=4680\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\tx5680\lang1040\ul\f2\fs16 Hierarchy\ulnone\{linkID=4690\}\tab\strike Members\strike0\{linkID=4760>nav\}\tab\strike Properties\strike0\{linkID=4710>nav\}\tab\ul See Also\ulnone\{linkID=4680\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 TInstant\lang1033\f3 Currency \lang1040\f2 represents a \lang1033\f3 Currency \lang1040\f2 value. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\f4 TInstant\lang1033\f5 Currency\lang1040\f4 = \b class\b0 (\strike TInstantNumeric\strike0\{linkID=7290>main\}) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\b\f2 Description @@ -10618,7 +10618,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fswiss\fcharset0 Arial;}{\f3\fnil Arial;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantCustomExposer \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\cf2\ul Hierarchy\cf3\ulnone\{linkID=4800\}\cf1\tab\cf2\strike Members\cf3\strike0\{linkID=4880>nav\}\cf1\tab\cf2\strike Properties\cf3\strike0\{linkID=4820>nav\}\cf1\tab\cf2\strike Methods\cf3\strike0\{linkID=4860>nav\}\cf1\tab\cf2\strike Events\cf3\strike0\{linkID=4840>nav\}\cf1\tab\cf2\strike Unit: InstantPresentation\cf3\strike0\{linkID=13070>main\}\cf1\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\cf2\ul Hierarchy\cf3\ulnone\{linkID=4800\}\cf1\tab\cf2\strike Members\cf3\strike0\{linkID=4880>nav\}\cf1\tab\cf2\strike Properties\cf3\strike0\{linkID=4820>nav\}\cf1\tab\cf2\strike Methods\cf3\strike0\{linkID=4860>nav\}\cf1\tab\cf2\strike Events\cf3\strike0\{linkID=4840>nav\}\cf1\tab\cf2\strike Unit: InstantPresentation\cf3\strike0\{linkID=13100>main\}\cf1\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\tx5755\fs18 The ancestor of components that make objects accessible via data-aware controls. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\tx5755\f1 TInstantCustomExposer = \b class\b0 (TDataSet) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\tx5755\b\f0 Description @@ -11021,7 +11021,7 @@ main FieldOptions;FieldOptions_Property;TInstantCustomExposer_FieldOptions -TRUE +FALSE 11 {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fnil Arial;}{\f3\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} @@ -12312,7 +12312,7 @@ main OnAddClassFieldDef;OnAddClassFieldDef_Event;TInstantCustomExposer_OnAddClassFieldDef -TRUE +FALSE 10 {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fswiss\fcharset0 Arial;}{\f2\fmodern Courier New;}{\f3\fmodern\fcharset0 Courier New;}{\f4\fnil\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;\red0\green128\blue0;\red128\green0\blue0;} @@ -12680,7 +12680,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\cf1\lang1040\b\f0\fs24 TInstantDateTime \b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=5680\}\tab\strike Members\strike0\{linkID=5750>nav\}\tab\strike Properties\strike0\{linkID=5700>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=5680\}\tab\strike Members\strike0\{linkID=5750>nav\}\tab\strike Properties\strike0\{linkID=5700>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 TInstantDateTime represents a TDateTime value. \par \pard\sb25\sa25\tx1435\tx2875\f1 TInstantDateTime = \b class\b0 (\strike TInstantSimple\strike0\{linkID=10430>main\}) \par \pard\sb55\sa25\tx1435\tx2875\b\f0 Description @@ -12949,7 +12949,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantDBISAMConnector \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=5790\}\tab\strike Members\strike0\{linkID=5860>nav\}\tab\strike Properties\strike0\{linkID=5810>nav\}\tab\strike Methods\strike0\{linkID=5850>nav\}\tab\strike Unit: InstantDBISAM\strike0\{linkID=12880>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=5790\}\tab\strike Members\strike0\{linkID=5860>nav\}\tab\strike Properties\strike0\{linkID=5810>nav\}\tab\strike Methods\strike0\{linkID=5850>nav\}\tab\strike Unit: InstantDBISAM\strike0\{linkID=12910>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 Provides access to a database. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\strike\f1 TInstantConnectorClass\strike0\{linkID=12210>main\} = \b class\b0 \b of\b0 \strike TInstantConnector\strike0\{linkID=3770>main\}; \par \strike TInstantConnector\strike0\{linkID=3770>main\} = \b class\b0 (TComponent) @@ -13362,7 +13362,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantDBXConnector \cf1\b0\fs16 -\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=5960\}\tab\strike Unit: InstantDBX\strike0\{linkID=12900>main\}\{keepn\} +\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=5960\}\tab\strike Unit: InstantDBX\strike0\{linkID=12930>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\fs18 Provides access to a database. \par \pard\sb25\sa25\tx1435\strike\f1 TInstantConnectorClass\strike0\{linkID=12210>main\} = \b class\b0 \b of\b0 \strike TInstantConnector\strike0\{linkID=3770>main\}; \par \strike TInstantConnector\strike0\{linkID=3770>main\} = \b class\b0 (TComponent) @@ -13616,7 +13616,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantElement \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=6060\}\tab\strike Members\strike0\{linkID=6130>nav\}\tab\strike Properties\strike0\{linkID=6080>nav\}\tab\strike Methods\strike0\{linkID=6110>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=6060\}\tab\strike Members\strike0\{linkID=6130>nav\}\tab\strike Properties\strike0\{linkID=6080>nav\}\tab\strike Methods\strike0\{linkID=6110>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 TInstantElement is the ancestor of attribute classes that represent a relationship with a single object. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\f1 TInstantElement = \b class\b0 (\strike TInstantComplex\strike0\{linkID=3190>main\}) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\b\f0 Description @@ -14077,7 +14077,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantExplorer \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=6240\}\tab\strike Members\strike0\{linkID=6300>nav\}\tab\strike Properties\strike0\{linkID=6260>nav\}\tab\strike Methods\strike0\{linkID=6290>nav\}\tab\strike Unit: InstantExplorer\strike0\{linkID=12920>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=6240\}\tab\strike Members\strike0\{linkID=6300>nav\}\tab\strike Properties\strike0\{linkID=6260>nav\}\tab\strike Methods\strike0\{linkID=6290>nav\}\tab\strike Unit: InstantExplorer\strike0\{linkID=12950>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 Allows navigation of objects within a tree. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\f1 TInstantExplorer = \b class\b0 (TCustomControl) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\b\f0 Description @@ -14584,7 +14584,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantExposer \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=6460\}\tab\strike Members\strike0\{linkID=6540>nav\}\tab\strike Properties\strike0\{linkID=6480>nav\}\tab\strike Unit: InstantPresentation\strike0\{linkID=13070>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=6460\}\tab\strike Members\strike0\{linkID=6540>nav\}\tab\strike Properties\strike0\{linkID=6480>nav\}\tab\strike Unit: InstantPresentation\strike0\{linkID=13100>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 Provides dataset-based access to objects. \par \pard\sb25\sa25\tx1435\tx2875\f1 TInstantExposer = \b class\b0 (\strike TInstantCustomExposer\strike0\{linkID=4790>main\}) \par \pard\sb55\sa25\tx1435\tx2875\b\f0 Description @@ -15100,7 +15100,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantFileStream \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=6670\}\tab\strike Members\strike0\{linkID=6720>nav\}\tab\strike Methods\strike0\{linkID=6710>nav\}\tab\strike Unit: InstantClasses\strike0\{linkID=12790>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=6670\}\tab\strike Members\strike0\{linkID=6720>nav\}\tab\strike Methods\strike0\{linkID=6710>nav\}\tab\strike Unit: InstantClasses\strike0\{linkID=12820>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 Provides stream-based access to data stored in a file. \par \pard\sb25\sa25\tx1435\tx2875\f1 TInstantFileStream = \b class\b0 (\strike TInstantStream\strike0\{linkID=10540>main\}) \par \pard\sb55\sa25\tx1435\tx2875\b\f0 Description @@ -15306,7 +15306,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantFlashFilerConnector \cf1\b0\fs16 -\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=6750\}\tab\strike Unit: InstantFlashFiler\strike0\{linkID=12960>main\}\{keepn\} +\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=6750\}\tab\strike Unit: InstantFlashFiler\strike0\{linkID=12990>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\fs18 Provides access to a database. \par \pard\sb25\sa25\tx1435\strike\f1 TInstantConnectorClass\strike0\{linkID=12210>main\} = \b class\b0 \b of\b0 \strike TInstantConnector\strike0\{linkID=3770>main\}; \par \strike TInstantConnector\strike0\{linkID=3770>main\} = \b class\b0 (TComponent) @@ -15552,7 +15552,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantFloat \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5680\ul Hierarchy\ulnone\{linkID=6860\}\tab\strike Members\strike0\{linkID=6930>nav\}\tab\strike Properties\strike0\{linkID=6880>nav\}\tab\ul See Also\ulnone\{linkID=6850\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5680\ul Hierarchy\ulnone\{linkID=6860\}\tab\strike Members\strike0\{linkID=6930>nav\}\tab\strike Properties\strike0\{linkID=6880>nav\}\tab\ul See Also\ulnone\{linkID=6850\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 TInstantFloat represents a Double value. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\f1 TInstantFloat = \b class\b0 (\strike TInstantNumeric\strike0\{linkID=7290>main\}) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\b\f0 Description @@ -15844,7 +15844,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantIBXConnector \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=6970\}\tab\strike Members\strike0\{linkID=7040>nav\}\tab\strike Properties\strike0\{linkID=6990>nav\}\tab\strike Unit: InstantIBX\strike0\{linkID=12980>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=6970\}\tab\strike Members\strike0\{linkID=7040>nav\}\tab\strike Properties\strike0\{linkID=6990>nav\}\tab\strike Unit: InstantIBX\strike0\{linkID=13010>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 Provides access to a database. \par \pard\sb25\sa25\tx1435\tx2875\strike\f1 TInstantConnectorClass\strike0\{linkID=12210>main\} = \b class\b0 \b of\b0 \strike TInstantConnector\strike0\{linkID=3770>main\}; \par \strike TInstantConnector\strike0\{linkID=3770>main\} = \b class\b0 (TComponent) @@ -16125,7 +16125,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantInteger \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=7090\}\tab\strike Members\strike0\{linkID=7160>nav\}\tab\strike Properties\strike0\{linkID=7110>nav\}\tab\ul See Also\ulnone\{linkID=7080\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=7090\}\tab\strike Members\strike0\{linkID=7160>nav\}\tab\strike Properties\strike0\{linkID=7110>nav\}\tab\ul See Also\ulnone\{linkID=7080\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 TInstantInteger represents a 32-bit Integer value. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\f1 TInstantInteger = \b class\b0 (\strike TInstantNumeric\strike0\{linkID=7290>main\}) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\b\f0 Description @@ -16415,7 +16415,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantMemo \cf1\b0\fs16 -\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=7200\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=7200\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\fs18 TInstantMemo represents a memo. \par \pard\sb25\sa25\tx1435\f1 TInstantMemo = \b class\b0 (\strike TInstantBlob\strike0\{linkID=2680>main\}) \par \pard\sb55\sa25\tx1435\b\f0 Description @@ -16668,7 +16668,7 @@ {\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}{\f2\fswiss\fcharset0 Arial;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantNumeric \cf1\b0\fs16 -\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=7300\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1435\ul Hierarchy\ulnone\{linkID=7300\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\fs18 TInstantNumeric is the ancestor of attribute classes that represent a numeric value. \par \pard\sb25\sa25\tx1435\f1 TInstantNumeric = \b class\b0 (\strike TInstantSimple\strike0\{linkID=10430>main\}) \par \pard\sb55\sa25\tx1435\b\f0 Description @@ -16914,7 +16914,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantObject \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\tx8520\tx9940\ul Hierarchy\ulnone\{linkID=7420\}\tab\strike Members\strike0\{linkID=7490>nav\}\tab\strike Properties\strike0\{linkID=7440>nav\}\tab\strike Methods\strike0\{linkID=7470>nav\}\tab\strike Events\strike0\{linkID=7460>nav\}\tab\ul See Also\ulnone\{linkID=7400\}\tab\strike Example 1\strike0\{linkID=7410>example\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\tx8520\tx9940\ul Hierarchy\ulnone\{linkID=7420\}\tab\strike Members\strike0\{linkID=7490>nav\}\tab\strike Properties\strike0\{linkID=7440>nav\}\tab\strike Methods\strike0\{linkID=7470>nav\}\tab\strike Events\strike0\{linkID=7460>nav\}\tab\ul See Also\ulnone\{linkID=7400\}\tab\strike Example 1\strike0\{linkID=7410>example\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\tx5755\tx7195\tx8635\fs18 The ancestor for classes with persistence capabilities. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\tx5755\tx7195\tx8635\f1 TInstantObject = \b class\b0 (\strike TInstantStreamable\strike0\{linkID=10830>main\}, IUnknown) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\tx5755\tx7195\tx8635\b\f0 Description @@ -20414,7 +20414,7 @@ \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantObject.RefreshAll \cf1\b0\fs16 \par \strike TInstantObject\strike0\{linkID=7390>main\}\{keepn\} \par \pard\sb25\sa85\fs18 Refreshes all instances associated with a connector object. -\par \pard\sb25\sa25\b\f1 class\b0 \b procedure\b0 RefreshAll(AConnector: \strike TInstantConnector\strike0\{linkID=3770>main\}; Progress: \strike TInstantProgressEvent\strike0\{linkID=12510>main\}); +\par \pard\sb25\sa25\b\f1 class\b0 \b procedure\b0 RefreshAll(AConnector: \strike TInstantConnector\strike0\{linkID=3770>main\}; Progress: \strike TInstantProgressEvent\strike0\{linkID=12520>main\}); \par \pard\sb55\sa25\b\f0 Description \par \pard\sb25\sa25\b0 Call RefreshAll to refresh all instances of the class associated with a connector object. The \strike Connector\strike0\{linkID=7530>main\} argument can optionally be used to specify a \strike Connector\strike0\{linkID=7530>main\} object. If the connector is not specified, RefreshAll uses the default connector. Use the progress argument to attach a progress event in order to receive progress information during the refresh process. \par @@ -20745,7 +20745,7 @@ \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantObject.VerifyOperation \cf1\b0\fs16 \par \pard\sb25\tx1435\strike TInstantObject\strike0\{linkID=7390>main\}\tab\ul See Also\ulnone\{linkID=9070\}\{keepn\} \par \pard\sb25\sa85\tx1435\fs18 Called automatically to verify that an operation may be carried out. -\par \pard\sb25\sa25\tx1435\b\f1 function\b0 VerifyOperation(OperationType: \strike TInstantOperationType\strike0\{linkID=12490>main\}): \strike TInstantVerificationResult\strike0\{linkID=12570>main\}; \b virtual\b0 ; +\par \pard\sb25\sa25\tx1435\b\f1 function\b0 VerifyOperation(OperationType: \strike TInstantOperationType\strike0\{linkID=12490>main\}): \strike TInstantVerificationResult\strike0\{linkID=12600>main\}; \b virtual\b0 ; \par \pard\sb55\sa25\tx1435\b\f0 Description \par \pard\sb25\sa25\tx1435\b0 VerifyOperation is called automatically to verify that a specific operation may be carried out. Do not call it explicitly in your applications. The VerifyOperation implemented in \strike TInstantObject\strike0\{linkID=7390>main\} does nothing. Override this method when creating a class that needs to verify operations before they are carried out. The method returns vrOk by default. \par @@ -20977,7 +20977,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantOwnedCollection \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=9180\}\tab\strike Members\strike0\{linkID=9230>nav\}\tab\strike Methods\strike0\{linkID=9220>nav\}\tab\strike Unit: InstantClasses\strike0\{linkID=12790>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=9180\}\tab\strike Members\strike0\{linkID=9230>nav\}\tab\strike Methods\strike0\{linkID=9220>nav\}\tab\strike Unit: InstantClasses\strike0\{linkID=12820>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 TInstantOwnedCollection is a collection that has an owner. \par \pard\sb25\sa25\tx1435\tx2875\f1 TInstantOwnedCollection = \b class\b0 (\strike TInstantCollection\strike0\{linkID=2970>main\}) \par \pard\sb55\sa25\tx1435\tx2875\b\f0 Description @@ -21152,7 +21152,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantPart \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\ul Hierarchy\ulnone\{linkID=9280\}\tab\strike Members\strike0\{linkID=9350>nav\}\tab\strike Methods\strike0\{linkID=9330>nav\}\tab\ul See Also\ulnone\{linkID=9260\}\tab\strike Example 1\strike0\{linkID=9270>example\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\ul Hierarchy\ulnone\{linkID=9280\}\tab\strike Members\strike0\{linkID=9350>nav\}\tab\strike Methods\strike0\{linkID=9330>nav\}\tab\ul See Also\ulnone\{linkID=9260\}\tab\strike Example 1\strike0\{linkID=9270>example\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\tx5755\fs18 TInstantPart represents a part relationship to a single object. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\tx5755\f1 TInstantPart = \b class\b0 (\strike TInstantElement\strike0\{linkID=6050>main\}) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\tx5755\b\f0 Description @@ -21523,7 +21523,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantParts \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\ul Hierarchy\ulnone\{linkID=9420\}\tab\strike Members\strike0\{linkID=9490>nav\}\tab\strike Methods\strike0\{linkID=9470>nav\}\tab\ul See Also\ulnone\{linkID=9400\}\tab\strike Example 1\strike0\{linkID=9410>example\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\ul Hierarchy\ulnone\{linkID=9420\}\tab\strike Members\strike0\{linkID=9490>nav\}\tab\strike Methods\strike0\{linkID=9470>nav\}\tab\ul See Also\ulnone\{linkID=9400\}\tab\strike Example 1\strike0\{linkID=9410>example\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\tx5755\fs18 TInstantParts represents a part relationship to multiple objects. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\tx5755\f1 TInstantParts = \b class\b0 (\strike TInstantContainer\strike0\{linkID=4300>main\}) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\tx5755\b\f0 Description @@ -21878,7 +21878,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantReference \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\tx8520\ul Hierarchy\ulnone\{linkID=9550\}\tab\strike Members\strike0\{linkID=9620>nav\}\tab\strike Properties\strike0\{linkID=9570>nav\}\tab\strike Methods\strike0\{linkID=9600>nav\}\tab\ul See Also\ulnone\{linkID=9530\}\tab\strike Example 1\strike0\{linkID=9540>example\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\tx8520\ul Hierarchy\ulnone\{linkID=9550\}\tab\strike Members\strike0\{linkID=9620>nav\}\tab\strike Properties\strike0\{linkID=9570>nav\}\tab\strike Methods\strike0\{linkID=9600>nav\}\tab\ul See Also\ulnone\{linkID=9530\}\tab\strike Example 1\strike0\{linkID=9540>example\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\tx5755\tx7195\fs18 TInstantReference represents a reference relationship to a single object. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\tx5755\tx7195\f1 TInstantReference = \b class\b0 (\strike TInstantElement\strike0\{linkID=6050>main\}) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\tx5755\tx7195\b\f0 Description @@ -22540,7 +22540,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantReferences \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\tx8520\ul Hierarchy\ulnone\{linkID=9810\}\tab\strike Members\strike0\{linkID=9880>nav\}\tab\strike Properties\strike0\{linkID=9830>nav\}\tab\strike Methods\strike0\{linkID=9860>nav\}\tab\ul See Also\ulnone\{linkID=9790\}\tab\strike Example 1\strike0\{linkID=9800>example\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5720\tx7100\tx8520\ul Hierarchy\ulnone\{linkID=9810\}\tab\strike Members\strike0\{linkID=9880>nav\}\tab\strike Properties\strike0\{linkID=9830>nav\}\tab\strike Methods\strike0\{linkID=9860>nav\}\tab\ul See Also\ulnone\{linkID=9790\}\tab\strike Example 1\strike0\{linkID=9800>example\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\tx5755\tx7195\fs18 TInstantReferences represents a reference relationship to multiple objects. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\tx5755\tx7195\f1 TInstantReferences = \b class\b0 (\strike TInstantContainer\strike0\{linkID=4300>main\}) \par \pard\sb55\sa25\tx1435\tx2875\tx4315\tx5755\tx7195\b\f0 Description @@ -23011,7 +23011,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantRelationalConnector \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=9970\}\tab\strike Members\strike0\{linkID=10040>nav\}\tab\strike Properties\strike0\{linkID=9990>nav\}\tab\strike Events\strike0\{linkID=10010>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13020>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul Hierarchy\ulnone\{linkID=9970\}\tab\strike Members\strike0\{linkID=10040>nav\}\tab\strike Properties\strike0\{linkID=9990>nav\}\tab\strike Events\strike0\{linkID=10010>nav\}\tab\strike Unit: InstantPersistence\strike0\{linkID=13050>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\tx4315\fs18 Provides access to a database. \par \pard\sb25\sa25\tx1435\tx2875\tx4315\strike\f1 TInstantConnectorClass\strike0\{linkID=12210>main\} = \b class\b0 \b of\b0 \strike TInstantConnector\strike0\{linkID=3770>main\}; \par \strike TInstantConnector\strike0\{linkID=3770>main\} = \b class\b0 (TComponent) @@ -23369,7 +23369,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantResourceStream \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=10120\}\tab\strike Members\strike0\{linkID=10170>nav\}\tab\strike Methods\strike0\{linkID=10160>nav\}\tab\strike Unit: InstantClasses\strike0\{linkID=12790>main\}\{keepn\} +\par \pard\sb25\tx1400\tx2840\tx4260\ul Hierarchy\ulnone\{linkID=10120\}\tab\strike Members\strike0\{linkID=10170>nav\}\tab\strike Methods\strike0\{linkID=10160>nav\}\tab\strike Unit: InstantClasses\strike0\{linkID=12820>main\}\{keepn\} \par \pard\sb25\sa85\tx1435\tx2875\fs18 TInstantResourceStream provides access to a compiled resource in the application. \par \pard\sb25\sa25\tx1435\tx2875\f1 TInstantResourceStream = \b class\b0 (\strike TInstantStream\strike0\{linkID=10540>main\}) \par \pard\sb55\sa25\tx1435\tx2875\b\f0 Description @@ -23579,7 +23579,7 @@ {\rtf1\ansi\deff0{\fonttbl{\f0\fswiss Arial;}{\f1\fmodern Courier New;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\lang1040\b\f0\fs24 TInstantSelector \cf1\b0\fs16 -\par \pard\sb25\tx1400\tx2840\tx4280\tx5700\ul... [truncated message content] |
From: <sr...@us...> - 2006-08-09 01:04:02
|
Revision: 702 Author: srmitch Date: 2006-08-08 18:02:16 -0700 (Tue, 08 Aug 2006) ViewCVS: http://svn.sourceforge.net/instantobjects?rev=702&view=rev Log Message: ----------- - Merged Refactor_InstantPersistenceUnit branch changes r696:701 into the trunk. Modified Paths: -------------- trunk/Demos/Intro/Intro.dpr trunk/Demos/Intro/Intro.mdr trunk/Demos/PrimerCross/BasicBrowse.pas trunk/Demos/PrimerCross/BasicEdit.pas trunk/Demos/PrimerCross/BasicView.pas trunk/Demos/PrimerCross/CategoryBrowse.pas trunk/Demos/PrimerCross/CompanyBrowse.pas trunk/Demos/PrimerCross/CompanyEdit.pas trunk/Demos/PrimerCross/ContactBrowse.pas trunk/Demos/PrimerCross/ContactEdit.dfm trunk/Demos/PrimerCross/ContactEdit.pas trunk/Demos/PrimerCross/ContactFilterEdit.pas trunk/Demos/PrimerCross/ContactSort.pas trunk/Demos/PrimerCross/ContactView.dfm trunk/Demos/PrimerCross/ContactView.pas trunk/Demos/PrimerCross/CountryBrowse.pas trunk/Demos/PrimerCross/DemoData.pas trunk/Demos/PrimerCross/DemoDataRequest.pas trunk/Demos/PrimerCross/HelpView.pas trunk/Demos/PrimerCross/Main.pas trunk/Demos/PrimerCross/MainData.pas trunk/Demos/PrimerCross/PerformanceView.pas trunk/Demos/PrimerCross/PersonBrowse.pas trunk/Demos/PrimerCross/PersonEdit.pas trunk/Demos/PrimerCross/Primer.dpr trunk/Demos/PrimerCross/PrimerExternal.dpr trunk/Demos/PrimerCross/QueryView.pas trunk/Demos/PrimerCross/RandomData.pas trunk/Demos/PrimerCross/Stopwatch.pas trunk/Demos/PrimerCross/Utility.pas trunk/Demos/PrimerCross/Welcome.pas trunk/Source/Brokers/ADO/InstantADO.pas trunk/Source/Brokers/BDE/InstantBDE.pas trunk/Source/Brokers/BDE/InstantBDECatalog.pas trunk/Source/Brokers/BDE/InstantBDEConnectionDefEdit.pas trunk/Source/Brokers/DBX/InstantDBX.pas trunk/Source/Brokers/IBX/InstantIBX.pas trunk/Source/Brokers/IBX/InstantIBXConnectionDefEdit.pas trunk/Source/Brokers/NexusDb/InstantNexusDB.pas trunk/Source/Brokers/NexusDb/InstantNexusDBCatalog.pas trunk/Source/Brokers/NexusDb/InstantNexusDBConnectionDefEdit.pas trunk/Source/Brokers/XML/InstantXML.pas trunk/Source/Brokers/XML/InstantXMLCatalog.pas trunk/Source/Catalogs/IBFb/InstantIBFbCatalog.pas trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas trunk/Source/Core/D2006/IOCore.dpk trunk/Source/Core/D5/IOCore_D5.dpk trunk/Source/Core/D6/IOCore.dpk trunk/Source/Core/D7/IOCore.dpk trunk/Source/Core/InstantAccessors.pas trunk/Source/Core/InstantClasses.pas trunk/Source/Core/InstantCode.pas trunk/Source/Core/InstantCommand.pas trunk/Source/Core/InstantConnectionManager.pas trunk/Source/Core/InstantConnectionManagerFormUnit.pas trunk/Source/Core/InstantCustomDBEvolverFormUnit.pas trunk/Source/Core/InstantDBBuild.pas trunk/Source/Core/InstantDBEvolution.pas trunk/Source/Core/InstantExplorer.pas trunk/Source/Core/InstantPersistence.pas trunk/Source/Core/InstantPresentation.pas trunk/Source/Core/InstantPump.pas trunk/Source/Core/K3/IOCore.dpk trunk/Source/Design/InstantAttributeEditor.pas trunk/Source/Design/InstantClassEditor.pas trunk/Source/Design/InstantCommandEditor.pas trunk/Source/ObjectFoundry/OFClasses.pas trunk/Source/ObjectFoundry/OFExpert.pas trunk/Source/Tests/InstantMock.pas trunk/Source/Tests/MinimalModel.pas trunk/Source/Tests/TestIO.mdr trunk/Source/Tests/TestIO.mdx trunk/Source/Tests/TestInstantAttribute.pas trunk/Source/Tests/TestInstantAttributeMap.pas trunk/Source/Tests/TestInstantAttributeMetadata.pas trunk/Source/Tests/TestInstantClassMetadata.pas trunk/Source/Tests/TestInstantFieldMetadata.pas trunk/Source/Tests/TestInstantIndexMetadata.pas trunk/Source/Tests/TestInstantMetadata.pas trunk/Source/Tests/TestInstantObject.pas trunk/Source/Tests/TestInstantObjectStore.pas trunk/Source/Tests/TestInstantPart.pas trunk/Source/Tests/TestInstantParts.pas trunk/Source/Tests/TestInstantReference.pas trunk/Source/Tests/TestInstantReferences.pas trunk/Source/Tests/TestInstantScheme.pas trunk/Source/Tests/TestInstantTableMetadata.pas trunk/Source/Tests/TestMinimalModel.pas trunk/Source/Tests/TestMockBroker.pas Added Paths: ----------- trunk/Source/Core/InstantBrokers.pas trunk/Source/Core/InstantMetadata.pas trunk/Source/Core/InstantTypes.pas Modified: trunk/Demos/Intro/Intro.dpr =================================================================== --- trunk/Demos/Intro/Intro.dpr 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/Intro/Intro.dpr 2006-08-09 01:02:16 UTC (rev 702) @@ -2,8 +2,8 @@ uses Forms, + Model in 'Model.pas', Main in 'Main.pas' {MainForm}, - Model in 'Model.pas', ContactEdit in 'ContactEdit.pas' {ContactEditForm}, PersonEdit in 'PersonEdit.pas' {PersonEditForm}, CompanyEdit in 'CompanyEdit.pas' {CompanyEditForm}; Modified: trunk/Demos/Intro/Intro.mdr =================================================================== (Binary files differ) Modified: trunk/Demos/PrimerCross/BasicBrowse.pas =================================================================== --- trunk/Demos/PrimerCross/BasicBrowse.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/BasicBrowse.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -1,7 +1,13 @@ unit BasicBrowse; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, DB, {$IFDEF MSWINDOWS} Modified: trunk/Demos/PrimerCross/BasicEdit.pas =================================================================== --- trunk/Demos/PrimerCross/BasicEdit.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/BasicEdit.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -1,7 +1,13 @@ unit BasicEdit; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, DB, {$IFDEF MSWINDOWS} Modified: trunk/Demos/PrimerCross/BasicView.pas =================================================================== --- trunk/Demos/PrimerCross/BasicView.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/BasicView.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -2,7 +2,11 @@ interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} uses SysUtils, Classes, Modified: trunk/Demos/PrimerCross/CategoryBrowse.pas =================================================================== --- trunk/Demos/PrimerCross/CategoryBrowse.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/CategoryBrowse.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -2,6 +2,12 @@ interface +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, {$IFDEF MSWINDOWS} Modified: trunk/Demos/PrimerCross/CompanyBrowse.pas =================================================================== --- trunk/Demos/PrimerCross/CompanyBrowse.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/CompanyBrowse.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -2,6 +2,12 @@ interface +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, {$IFDEF MSWINDOWS} Modified: trunk/Demos/PrimerCross/CompanyEdit.pas =================================================================== --- trunk/Demos/PrimerCross/CompanyEdit.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/CompanyEdit.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -1,7 +1,13 @@ unit CompanyEdit; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, {$IFDEF MSWINDOWS} Modified: trunk/Demos/PrimerCross/ContactBrowse.pas =================================================================== --- trunk/Demos/PrimerCross/ContactBrowse.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/ContactBrowse.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -2,6 +2,12 @@ interface +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, {$IFDEF MSWINDOWS} Modified: trunk/Demos/PrimerCross/ContactEdit.dfm =================================================================== --- trunk/Demos/PrimerCross/ContactEdit.dfm 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/ContactEdit.dfm 2006-08-09 01:02:16 UTC (rev 702) @@ -197,7 +197,6 @@ end end object PhonesExposer: TInstantExposer [2] - Options = [] ContainerName = 'Phones' MasterSource = SubjectSource Mode = amContent Modified: trunk/Demos/PrimerCross/ContactEdit.pas =================================================================== --- trunk/Demos/PrimerCross/ContactEdit.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/ContactEdit.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -1,7 +1,13 @@ unit ContactEdit; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, {$IFDEF MSWINDOWS} Modified: trunk/Demos/PrimerCross/ContactFilterEdit.pas =================================================================== --- trunk/Demos/PrimerCross/ContactFilterEdit.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/ContactFilterEdit.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -1,7 +1,13 @@ unit ContactFilterEdit; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, {$IFDEF MSWINDOWS} Modified: trunk/Demos/PrimerCross/ContactSort.pas =================================================================== --- trunk/Demos/PrimerCross/ContactSort.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/ContactSort.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -1,7 +1,13 @@ unit ContactSort; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, {$IFDEF MSWINDOWS} @@ -40,7 +46,8 @@ implementation uses - Model, TypInfo, InstantRtti, InstantPresentation; + Model, TypInfo, InstantRtti, InstantPresentation, InstantMetadata, + InstantTypes; {$R *.dfm} Modified: trunk/Demos/PrimerCross/ContactView.dfm =================================================================== --- trunk/Demos/PrimerCross/ContactView.dfm 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/ContactView.dfm 2006-08-09 01:02:16 UTC (rev 702) @@ -70,8 +70,6 @@ Height = 28 Align = alLeft BorderWidth = 1 - EdgeBorders = [] - Flat = True Images = ActionImages ParentShowHint = False ShowHint = True Modified: trunk/Demos/PrimerCross/ContactView.pas =================================================================== --- trunk/Demos/PrimerCross/ContactView.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/ContactView.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -1,11 +1,11 @@ unit ContactView; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} -{$IFDEF VER150} -{$WARN UNSAFE_TYPE OFF} -{$WARN UNSAFE_CAST OFF} -{$WARN UNSAFE_CODE OFF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} {$ENDIF} uses Modified: trunk/Demos/PrimerCross/CountryBrowse.pas =================================================================== --- trunk/Demos/PrimerCross/CountryBrowse.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/CountryBrowse.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -2,6 +2,12 @@ interface +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, BasicBrowse, DB, {$IFDEF MSWINDOWS} Modified: trunk/Demos/PrimerCross/DemoData.pas =================================================================== --- trunk/Demos/PrimerCross/DemoData.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/DemoData.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -2,6 +2,12 @@ interface +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses Classes, Model, InstantPersistence, RandomData; Modified: trunk/Demos/PrimerCross/DemoDataRequest.pas =================================================================== --- trunk/Demos/PrimerCross/DemoDataRequest.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/DemoDataRequest.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -1,7 +1,13 @@ unit DemoDataRequest; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, {$IFDEF MSWINDOWS} Modified: trunk/Demos/PrimerCross/HelpView.pas =================================================================== --- trunk/Demos/PrimerCross/HelpView.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/HelpView.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -2,6 +2,12 @@ interface +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, BasicView, OleCtrls, SHDocVw, StdCtrls, ExtCtrls, ComCtrls; Modified: trunk/Demos/PrimerCross/Main.pas =================================================================== --- trunk/Demos/PrimerCross/Main.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/Main.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -1,11 +1,11 @@ unit Main; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} -{$IFDEF VER150} -{$WARN UNSAFE_TYPE OFF} -{$WARN UNSAFE_CAST OFF} -{$WARN UNSAFE_CODE OFF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} {$ENDIF} uses @@ -108,7 +108,8 @@ procedure Connect; procedure Disconnect; procedure Reset; - property ActiveSubView: TBasicViewForm read FActiveSubView write SetActiveSubView; + property ActiveSubView: TBasicViewForm read FActiveSubView + write SetActiveSubView; property Connector: TInstantConnector read FConnector; property ConnectionName: string read GetConnectionName; property IsConnected: Boolean read GetIsConnected; @@ -124,7 +125,8 @@ implementation uses - Contnrs, Model, Welcome, MainData, RandomData, DemoData, Utility, ContactView, PerformanceView, + Contnrs, Model, Welcome, MainData, RandomData, DemoData, Utility, ContactView, + PerformanceView, {$IFDEF MSWINDOWS} HelpView, JPeg, {$ENDIF} @@ -132,7 +134,7 @@ HelpViewK3, {$ENDIF} DemoDataRequest, InstantPresentation, InstantClasses, - QueryView, InstantImageUtils, + QueryView, InstantImageUtils, InstantTypes, { Note: This demo attempts to include brokers for the data access layers supported natively by Delphi. To include additional brokers, Modified: trunk/Demos/PrimerCross/MainData.pas =================================================================== --- trunk/Demos/PrimerCross/MainData.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/MainData.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -1,7 +1,13 @@ unit MainData; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, {$IFDEF MSWINDOWS} Modified: trunk/Demos/PrimerCross/PerformanceView.pas =================================================================== --- trunk/Demos/PrimerCross/PerformanceView.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/PerformanceView.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -1,11 +1,11 @@ unit PerformanceView; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} -{$IFDEF VER150} -{$WARN UNSAFE_TYPE OFF} -{$WARN UNSAFE_CAST OFF} -{$WARN UNSAFE_CODE OFF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} {$ENDIF} uses @@ -173,7 +173,7 @@ {$R *.dfm} uses - Model, DemoData, IniFiles, Utility; + InstantBrokers, Model, DemoData, IniFiles, Utility; { TTestResult } Modified: trunk/Demos/PrimerCross/PersonBrowse.pas =================================================================== --- trunk/Demos/PrimerCross/PersonBrowse.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/PersonBrowse.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -2,6 +2,12 @@ interface +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, {$IFDEF MSWINDOWS} Modified: trunk/Demos/PrimerCross/PersonEdit.pas =================================================================== --- trunk/Demos/PrimerCross/PersonEdit.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/PersonEdit.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -1,7 +1,13 @@ unit PersonEdit; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, {$IFDEF MSWINDOWS} Modified: trunk/Demos/PrimerCross/Primer.dpr =================================================================== --- trunk/Demos/PrimerCross/Primer.dpr 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/Primer.dpr 2006-08-09 01:02:16 UTC (rev 702) @@ -32,8 +32,13 @@ program Primer; +{$IFDEF LINUX} {$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses Forms, Main in 'Main.pas' {MainForm}, Modified: trunk/Demos/PrimerCross/PrimerExternal.dpr =================================================================== --- trunk/Demos/PrimerCross/PrimerExternal.dpr 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/PrimerExternal.dpr 2006-08-09 01:02:16 UTC (rev 702) @@ -31,8 +31,13 @@ program PrimerExternal; -{$I '../../InstantDefines.inc'} +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses Forms, Main in 'Main.pas' {MainForm}, Modified: trunk/Demos/PrimerCross/QueryView.pas =================================================================== --- trunk/Demos/PrimerCross/QueryView.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/QueryView.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -1,7 +1,13 @@ unit QueryView; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, {$IFDEF MSWINDOWS} Modified: trunk/Demos/PrimerCross/RandomData.pas =================================================================== --- trunk/Demos/PrimerCross/RandomData.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/RandomData.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -2,10 +2,10 @@ interface -{$IFDEF VER150} -{$WARN UNSAFE_TYPE OFF} -{$WARN UNSAFE_CAST OFF} -{$WARN UNSAFE_CODE OFF} +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} {$ENDIF} type Modified: trunk/Demos/PrimerCross/Stopwatch.pas =================================================================== --- trunk/Demos/PrimerCross/Stopwatch.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/Stopwatch.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -2,7 +2,11 @@ interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} uses SysUtils, Modified: trunk/Demos/PrimerCross/Utility.pas =================================================================== --- trunk/Demos/PrimerCross/Utility.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/Utility.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -1,7 +1,13 @@ unit Utility; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + procedure BeginBusy; procedure EndBusy; function Confirm(const Text: string): Boolean; Modified: trunk/Demos/PrimerCross/Welcome.pas =================================================================== --- trunk/Demos/PrimerCross/Welcome.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Demos/PrimerCross/Welcome.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -1,9 +1,11 @@ unit Welcome; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} -{$IFDEF VER150} -{$WARN UNSAFE_TYPE OFF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} {$ENDIF} uses Modified: trunk/Source/Brokers/ADO/InstantADO.pas =================================================================== --- trunk/Source/Brokers/ADO/InstantADO.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Source/Brokers/ADO/InstantADO.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -40,7 +40,7 @@ uses Classes, Db, ADODB, SysUtils, InstantPersistence, InstantClasses, - InstantCommand; + InstantCommand, InstantBrokers, InstantMetadata, InstantTypes; type TInstantADOProviderType = (ptUnknown, ptMSJet, ptMSSQLServer, ptOracle, ptMySQL, ptIBMDB2); Modified: trunk/Source/Brokers/BDE/InstantBDE.pas =================================================================== --- trunk/Source/Brokers/BDE/InstantBDE.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Source/Brokers/BDE/InstantBDE.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -44,7 +44,7 @@ uses Classes, Db, DBTables, SysUtils, InstantPersistence, InstantCommand, - InstantConsts; + InstantBrokers, InstantMetadata, InstantTypes, InstantConsts; type TInstantBDEDriverType = (dtUnknown, dtStandard, dtInterBase, dtMSAccess, Modified: trunk/Source/Brokers/BDE/InstantBDECatalog.pas =================================================================== --- trunk/Source/Brokers/BDE/InstantBDECatalog.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Source/Brokers/BDE/InstantBDECatalog.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -38,7 +38,8 @@ interface uses - InstantPersistence, DB, DBTables; + InstantPersistence, DB, DBTables, InstantMetadata, InstantBrokers, + InstantTypes; type // A TInstantCatalog that reads catalog information from a BDE Modified: trunk/Source/Brokers/BDE/InstantBDEConnectionDefEdit.pas =================================================================== --- trunk/Source/Brokers/BDE/InstantBDEConnectionDefEdit.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Source/Brokers/BDE/InstantBDEConnectionDefEdit.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -40,7 +40,7 @@ uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, - InstantBDE, StdCtrls, ExtCtrls; + InstantBDE, StdCtrls, ExtCtrls, InstantMetadata; type TInstantBDEConnectionDefEditForm = class(TForm) @@ -84,7 +84,7 @@ {$R *.DFM} uses - DbTables, InstantPersistence, InstantClasses, InstantConsts; + DbTables, InstantPersistence, InstantClasses, InstantTypes, InstantConsts; const NoAlias = '(None)'; Modified: trunk/Source/Brokers/DBX/InstantDBX.pas =================================================================== --- trunk/Source/Brokers/DBX/InstantDBX.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Source/Brokers/DBX/InstantDBX.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -45,7 +45,8 @@ {$IFDEF LINUX} QControls, {$ENDIF} - Classes, DB, DBXpress, SqlExpr, InstantPersistence, InstantCommand; + Classes, DB, DBXpress, SqlExpr, InstantPersistence, InstantCommand, + InstantBrokers, InstantMetadata, InstantTypes; type TInstantDBXConnectionDef = class(TInstantConnectionBasedConnectionDef) Modified: trunk/Source/Brokers/IBX/InstantIBX.pas =================================================================== --- trunk/Source/Brokers/IBX/InstantIBX.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Source/Brokers/IBX/InstantIBX.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -40,7 +40,7 @@ uses Classes, Db, IBDatabase, IBTable, IBQuery, SysUtils, InstantPersistence, - InstantClasses, InstantCommand; + InstantBrokers, InstantClasses, InstantCommand, InstantMetadata, InstantTypes; type TInstantIBXOption = (ibxUseDelimitedIdents); Modified: trunk/Source/Brokers/IBX/InstantIBXConnectionDefEdit.pas =================================================================== --- trunk/Source/Brokers/IBX/InstantIBXConnectionDefEdit.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Source/Brokers/IBX/InstantIBXConnectionDefEdit.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -89,7 +89,7 @@ {$R *.DFM} uses - IB, InstantPersistence, InstantClasses, InstantConsts; + IB, InstantPersistence, InstantClasses, InstantTypes, InstantConsts; { TInstantIBXConnectionDefEditForm } Modified: trunk/Source/Brokers/NexusDb/InstantNexusDB.pas =================================================================== --- trunk/Source/Brokers/NexusDb/InstantNexusDB.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Source/Brokers/NexusDb/InstantNexusDB.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -43,7 +43,8 @@ {$IFDEF MSWINDOWS} Windows, {$ENDIF} - Classes, DB, InstantPersistence, InstantCommand, + Classes, DB, InstantPersistence, InstantBrokers, InstantCommand, + InstantMetadata, InstantTypes, nxptBasePooledTransport, nxsdServerEngine, nxdb, nxsdDataDictionary; type @@ -842,7 +843,7 @@ end; {$ENDIF} -{ TInstantNexusDBSQLQuery } +{ TInstantNexusDBQuery } class function TInstantNexusDBQuery.TranslatorClass: TInstantRelationalTranslatorClass; Modified: trunk/Source/Brokers/NexusDb/InstantNexusDBCatalog.pas =================================================================== --- trunk/Source/Brokers/NexusDb/InstantNexusDBCatalog.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Source/Brokers/NexusDb/InstantNexusDBCatalog.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -39,7 +39,7 @@ interface uses - InstantPersistence; + InstantPersistence, InstantBrokers, InstantMetadata, InstantTypes; type // A TInstantCatalog that reads catalog information from a NexusDb Modified: trunk/Source/Brokers/NexusDb/InstantNexusDBConnectionDefEdit.pas =================================================================== --- trunk/Source/Brokers/NexusDb/InstantNexusDBConnectionDefEdit.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Source/Brokers/NexusDb/InstantNexusDBConnectionDefEdit.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -124,9 +124,7 @@ {$WARN UNIT_PLATFORM ON} {$ENDIF} {$ENDIF} - InstantClasses, - InstantPersistence, - InstantConsts, + InstantClasses, InstantPersistence, InstantTypes, InstantConsts, InstantNexusDBConsts; { TInstantNexusDBConnectionDefEditForm } Modified: trunk/Source/Brokers/XML/InstantXML.pas =================================================================== --- trunk/Source/Brokers/XML/InstantXML.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Source/Brokers/XML/InstantXML.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -42,7 +42,8 @@ interface uses - Classes, DB, InstantPersistence, InstantCommand, Contnrs; + Classes, DB, Contnrs, InstantPersistence, InstantBrokers, InstantCommand, + InstantMetadata, InstantTypes; const XML_UTF8_HEADER = '<?xml version="1.0" encoding="UTF-8"?>'; Modified: trunk/Source/Brokers/XML/InstantXMLCatalog.pas =================================================================== --- trunk/Source/Brokers/XML/InstantXMLCatalog.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Source/Brokers/XML/InstantXMLCatalog.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -45,7 +45,7 @@ {$IFDEF MSWINDOWS} FileCtrl, {$ENDIF} - InstantPersistence; + InstantPersistence, InstantBrokers, InstantMetadata, InstantTypes; type // A TInstantCatalog that reads catalog information from a XML Modified: trunk/Source/Catalogs/IBFb/InstantIBFbCatalog.pas =================================================================== --- trunk/Source/Catalogs/IBFb/InstantIBFbCatalog.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Source/Catalogs/IBFb/InstantIBFbCatalog.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -39,7 +39,7 @@ interface uses - InstantPersistence; + InstantPersistence, InstantBrokers, InstantMetadata, InstantTypes; type // A TInstantCatalog that reads catalog information from an InterBase Modified: trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas =================================================================== --- trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -38,7 +38,7 @@ interface uses - InstantPersistence; + InstantPersistence, InstantBrokers, InstantMetadata, InstantTypes; type // A TInstantCatalog that reads catalog information from an MS-SQL server database. Modified: trunk/Source/Core/D2006/IOCore.dpk =================================================================== --- trunk/Source/Core/D2006/IOCore.dpk 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Source/Core/D2006/IOCore.dpk 2006-08-09 01:02:16 UTC (rev 702) @@ -54,6 +54,9 @@ InstantDBEvolution in '..\InstantDBEvolution.pas', InstantCustomDBEvolverFormUnit in '..\InstantCustomDBEvolverFormUnit.pas' {InstantCustomDBEvolverForm}, InstantDBEvolverFormUnit in '..\InstantDBEvolverFormUnit.pas' {InstantDBEvolverForm}, - InstantDBBuilderFormUnit in '..\InstantDBBuilderFormUnit.pas' {InstantDBBuilderForm}; + InstantDBBuilderFormUnit in '..\InstantDBBuilderFormUnit.pas' {InstantDBBuilderForm}, + InstantTypes in '..\InstantTypes.pas', + InstantBrokers in '..\InstantBrokers.pas', + InstantMetadata in '..\InstantMetadata.pas'; end. Modified: trunk/Source/Core/D5/IOCore_D5.dpk =================================================================== --- trunk/Source/Core/D5/IOCore_D5.dpk 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Source/Core/D5/IOCore_D5.dpk 2006-08-09 01:02:16 UTC (rev 702) @@ -52,6 +52,9 @@ InstantCustomDBEvolverFormUnit in '..\InstantCustomDBEvolverFormUnit.pas' {InstantCustomDBEvolverForm}, InstantDBEvolverFormUnit in '..\InstantDBEvolverFormUnit.pas' {InstantDBEvolverForm}, InstantDBEvolution in '..\InstantDBEvolution.pas', - InstantDBBuild in '..\InstantDBBuild.pas'; + InstantDBBuild in '..\InstantDBBuild.pas', + InstantTypes in '..\InstantTypes.pas', + InstantBrokers in '..\InstantBrokers.pas', + InstantMetadata in '..\InstantMetadata.pas'; end. Modified: trunk/Source/Core/D6/IOCore.dpk =================================================================== --- trunk/Source/Core/D6/IOCore.dpk 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Source/Core/D6/IOCore.dpk 2006-08-09 01:02:16 UTC (rev 702) @@ -54,6 +54,9 @@ InstantConnectionManagerFormUnit in '..\InstantConnectionManagerFormUnit.pas' {InstantConnectionManagerForm}, InstantCustomDBEvolverFormUnit in '..\InstantCustomDBEvolverFormUnit.pas' {InstantCustomDBEvolverForm}, InstantDBBuilderFormUnit in '..\InstantDBBuilderFormUnit.pas' {InstantDBBuilderForm}, - InstantDBEvolverFormUnit in '..\InstantDBEvolverFormUnit.pas' {InstantDBEvolverForm}; + InstantDBEvolverFormUnit in '..\InstantDBEvolverFormUnit.pas' {InstantDBEvolverForm}, + InstantTypes in '..\InstantTypes.pas', + InstantBrokers in '..\InstantBrokers.pas', + InstantMetadata in '..\InstantMetadata.pas'; end. Modified: trunk/Source/Core/D7/IOCore.dpk =================================================================== --- trunk/Source/Core/D7/IOCore.dpk 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Source/Core/D7/IOCore.dpk 2006-08-09 01:02:16 UTC (rev 702) @@ -55,6 +55,9 @@ InstantDBEvolution in '..\InstantDBEvolution.pas', InstantCustomDBEvolverFormUnit in '..\InstantCustomDBEvolverFormUnit.pas' {InstantCustomDBEvolverForm}, InstantDBEvolverFormUnit in '..\InstantDBEvolverFormUnit.pas' {InstantDBEvolverForm}, - InstantDBBuilderFormUnit in '..\InstantDBBuilderFormUnit.pas' {InstantDBBuilderForm}; + InstantDBBuilderFormUnit in '..\InstantDBBuilderFormUnit.pas' {InstantDBBuilderForm}, + InstantTypes in '..\InstantTypes.pas', + InstantBrokers in '..\InstantBrokers.pas', + InstantMetadata in '..\InstantMetadata.pas'; end. Modified: trunk/Source/Core/InstantAccessors.pas =================================================================== --- trunk/Source/Core/InstantAccessors.pas 2006-08-09 00:04:12 UTC (rev 701) +++ trunk/Source/Core/InstantAccessors.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -158,6 +158,7 @@ else Result := InternalObjectCount; end; + function TInstantObjectAccessor.GetSubject: TInstantObject; begin Result := inherited Subject as TInstantObject; Copied: trunk/Source/Core/InstantBrokers.pas (from rev 701, branches/Refactor_InstantPersistenceUnit/Source/Core/InstantBrokers.pas) =================================================================== --- trunk/Source/Core/InstantBrokers.pas (rev 0) +++ trunk/Source/Core/InstantBrokers.pas 2006-08-09 01:02:16 UTC (rev 702) @@ -0,0 +1,5954 @@ +(* + * InstantObjects + * Broker and Connector Classes + *) + +(* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is: Seleqt InstantObjects + * + * The Initial Developer of the Original Code is: Seleqt + * + * Portions created by the Initial Developer are Copyright (C) 2001-2003 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Carlo Barazzetta, Andrea Petrelli, Nando Dessena, Steven Mitchell, + * Joao Morais, Cesar Coll, Uberto Barbini, David Taylor, Hanedi Salas, + * Riceball Lee, David Moorhouse + * + * ***** END LICENSE BLOCK ***** *) + +unit InstantBrokers; + +{$IFDEF LINUX} +{$I '../InstantDefines.inc'} +{$ELSE} +{$I '..\InstantDefines.inc'} +{$ENDIF} + +interface + +uses SysUtils, Classes, Db, InstantPersistence, InstantTypes, InstantMetadata, + InstantConsts, InstantClasses, Contnrs, InstantCommand; + +type + TInstantBrokerCatalog = class; + TInstantConnectionBasedConnector = class; + TInstantCustomRelationalBroker = class; + TInstantCustomRelationalQuery = class; + TInstantCustomRelationalQueryClass = class of TInstantCustomRelationalQuery; + TInstantCustomResolver = class; + TInstantLinkResolver = class; + TInstantNavigationalBroker = class; + TInstantNavigationalLinkResolver = class; + TInstantNavigationalResolver = class; + TInstantNavigationalResolverClass = class of TInstantNavigationalResolver; + TInstantRelationalConnector = class; + TInstantRelationalTranslator = class; + TInstantRelationalTranslatorClass = class of TInstantRelationalTranslator; + TInstantSQLBroker = class; + TInstantSQLBrokerCatalog = class; + TInstantSQLGenerator = class; + TInstantSQLGeneratorClass = class of TInstantSQLGenerator; + TInstantSQLLinkResolver = class; + TInstantSQLResolver = class; + TInstantStatementCache = class; + + PObjectRow = ^TObjectRow; + TObjectRow = record + Row: Integer; + Instance: TObject; + end; + + PInstantOperationInfo = ^TInstantOperationInfo; + TInstantOperationInfo = record + Success: Boolean; + Conflict: Boolean; + end; + + TInstantBrokerOperation = procedure(AObject: TInstantObject; + const AObjectId: string; Map: TInstantAttributeMap; + ConflictAction: TInstantConflictAction = caFail; + Info: PInstantOperationInfo = nil) of object; + TInstantGetDataSetEvent = procedure(Sender: TObject; + const CommandText: string; var DataSet: TDataset) of object; + TInstantInitDataSetEvent = procedure(Sender: TObject; + const CommandText: string; DataSet: TDataSet) of object; + TInstantNavigationalResolverOperation = procedure(AObject: TInstantObject; + AttributeMetadata: TInstantAttributeMetadata) of object; + + + TInstantCustomRelationalBroker = class(TInstantBroker) + private + FStatementCache: TInstantStatementCache; + FStatementCacheCapacity: Integer; + procedure DisposeMap(AObject: TInstantObject; const AObjectId: string; + Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; + Info: PInstantOperationInfo); + function GetConnector: TInstantRelationalConnector; + function PerformOperation(AObject: TInstantObject; const AObjectId: string; + OperationType: TInstantOperationType; Operation: TInstantBrokerOperation; + ConflictAction: TInstantConflictAction): Boolean; + procedure RetrieveMap(AObject: TInstantObject; const AObjectId: string; + Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; + Info: PInstantOperationInfo); + procedure StoreMap(AObject: TInstantObject; const AObjectId: string; + Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; + Info: PInstantOperationInfo); + function GetStatementCache: TInstantStatementCache; + procedure SetStatementCacheCapacity(const Value: Integer); + protected + property StatementCache: TInstantStatementCache read GetStatementCache; + function EnsureResolver(Map: TInstantAttributeMap): TInstantCustomResolver; + virtual; abstract; + function GetDBMSName: string; virtual; + function GetSQLDelimiters: string; virtual; + function GetSQLQuote: Char; virtual; + function GetSQLWildcard: string; virtual; + function InternalDisposeObject(AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; override; + function InternalRetrieveObject(AObject: TInstantObject; + const AObjectId: string; ConflictAction: TInstantConflictAction): Boolean; + override; + function InternalStoreObject(AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; override; + public + constructor Create(AConnector: TInstantConnector); override; + destructor Destroy; override; + function Execute(const AStatement: string; AParams: TParams = nil): Integer; + virtual; + property Connector: TInstantRelationalConnector read GetConnector; + property DBMSName: string read GetDBMSName; + property SQLDelimiters: string read GetSQLDelimiters; + property SQLQuote: Char read GetSQLQuote; + property SQLWildcard: string read GetSQLWildCard; + property StatementCacheCapacity: Integer read FStatementCacheCapacity + write SetStatementCacheCapacity; + end; + + TInstantNavigationalBroker = class(TInstantCustomRelationalBroker) + private + FResolverList: TObjectList; + function GetResolverCount: Integer; + function GetResolverList: TObjectList; + function GetResolvers(Index: Integer): TInstantnavigationalResolver; + property ResolverList: TObjectList read GetResolverList; + protected + function CreateResolver(const TableName: string): + TInstantNavigationalResolver; virtual; abstract; + function EnsureResolver(Map: TInstantAttributeMap): TInstantCustomResolver; + override; + function FindResolver(const TableName: string): + TInstantNavigationalResolver; + property ResolverCount: Integer read GetResolverCount; + property Resolvers[Index: Integer]: TInstantNavigationalResolver + read GetResolvers; + public + destructor Destroy; override; + end; + + //Backwards compatibility + TInstantRelationalBroker = TInstantNavigationalBroker; + + TInstantSQLBroker = class(TInstantCustomRelationalBroker) + private + FGenerator: TInstantSQLGenerator; + FResolverList: TObjectList; + function GetResolverList: TObjectList; + function GetResolverCount: Integer; + function GetResolvers(Index: Integer): TInstantSQLResolver; + function GetGenerator: TInstantSQLGenerator; + protected + function CreateResolver(Map: TInstantAttributeMap): TInstantSQLResolver; + virtual; abstract; + function EnsureResolver(AMap: TInstantAttributeMap): TInstantCustomResolver; + override; + procedure InternalBuildDatabase(Scheme: TInstantScheme); override; + property ResolverList: TObjectList read GetResolverList; + procedure AssignDataSetParams(DataSet : TDataSet; AParams: TParams); + virtual; + function CreateDataSet(const AStatement: string; AParams: TParams = nil): + TDataSet; virtual; abstract; + public + destructor Destroy; override; + function AcquireDataSet(const AStatement: string; AParams: TParams = nil): + TDataSet; virtual; + procedure ReleaseDataSet(const ADataSet: TDataSet); virtual; + function DataTypeToColumnType(DataType: TInstantDataType; + Size: Integer): string; virtual; abstract; + function FindResolver(AMap: TInstantAttributeMap): TInstantSQLResolver; + class function GeneratorClass: TInstantSQLGeneratorClass; virtual; + property Generator: TInstantSQLGenerator read GetGenerator; + property ResolverCount: Integer read GetResolverCount; + property Resolvers[Index: Integer]: TInstantSQLResolver read GetResolvers; + end; + + TInstantRelationalConnector = class(TInstantConnector) + private + FOnGetDataSet: TInstantGetDataSetEvent; + FOnInitDataSet: TInstantInitDataSetEvent; + protected + procedure DoGetDataSet(const CommandText: string; var DataSet: TDataSet); + procedure DoInitDataSet(const CommandText: string; DataSet: TDataSet); + function GetBroker: TInstantCustomRelationalBroker; + procedure GetDataSet(const CommandText: string; var DataSet: TDataSet); + virtual; + function GetDBMSName: string; virtual; + procedure InitDataSet(const CommandText: string; DataSet: TDataSet); + virtual; + function InternalCreateScheme(Model: TInstantModel): TInstantScheme; + override; + public + property Broker: TInstantCustomRelationalBroker read GetBroker; + property DBMSName: string read GetDBMSName; + published + property OnGetDataSet: TInstantGetDataSetEvent read FOnGetDataSet + write FOnGetDataSet; + property OnInitDataSet: TInstantInitDataSetEvent read FOnInitDataSet + write FOnInitDataSet; + end; + + TInstantConnectionBasedConnector = class(TInstantRelationalConnector) + private + FConnection: TCustomConnection; + FLoginPrompt: Boolean; + procedure DoAfterConnectionChange; + procedure DoBeforeConnectionChange; + function GetConnection: TCustomConnection; + function GetLoginPrompt: Boolean; + procedure SetConnection(Value: TCustomConnection); + procedure SetLoginPrompt(const Value: Boolean); + protected + procedure AssignLoginOptions; virtual; + procedure AfterConnectionChange; virtual; + procedure BeforeConnectionChange; virtual; + procedure CheckConnection; + function GetConnected: Boolean; override; + procedure InternalConnect; override; + procedure InternalDisconnect; override; + procedure Notification(AComponent: TComponent; Operation: TOperation); + override; + public + property Connection: TCustomConnection read GetConnection + write SetConnection; + function HasConnection: Boolean; + constructor Create(AOwner: TComponent); override; + published + property LoginPrompt: Boolean read GetLoginPrompt write SetLoginPrompt + default True; + end; + + TInstantCustomResolver = class(TInstantStreamable) + private + FBroker: TInstantCustomRelationalBroker; + protected + function KeyViolation(AObject: TInstantObject; const AObjectId: string; + E: Exception): EInstantKeyViolation; + procedure InternalDisposeMap(AObject: TInstantObject; + Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; + Info: PInstantOperationInfo); virtual; + procedure InternalRetrieveMap(AObject: TInstantObject; + const AObjectId: string; Map: TInstantAttributeMap; + ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); + virtual; + procedure InternalStoreMap(AObject: TInstantObject; + Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; + Info: PInstantOperationInfo); virtual; + public + constructor Create(ABroker: TInstantCustomRelationalBroker); + procedure DisposeMap(AObject: TInstantObject; Map: TInstantAttributeMap; + ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); + procedure DisposeObject(AObject: TInstantObject; Conflict: + TInstantConflictAction); + procedure RetrieveMap(AObject: TInstantObject; const AObjectId: string; + Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; + Info: PInstantOperationInfo); + procedure StoreMap(AObject: TInstantObject; Map: TInstantAttributeMap; + ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); + procedure StoreObject(AObject: TInstantObject; Conflict: + TInstantConflictAction); + property Broker: TInstantCustomRelationalBroker read FBroker; + end; + + TInstantNavigationalResolver = class(TInstantCustomResolver) + private + FDataSet: TDataSet; + FFreeDataSet: Boolean; + FNavigationalLinkResolvers: TObjectList; + FTableName: string; + function CheckConflict(AObject: TInstantObject; const AObjectId: string; + ConflictAction: TInstantConflictAction): Boolean; + procedure ClearAttribute(AObject: TInstantObject; + AttributeMetadata: TInstantAttributeMetadata); + function FieldByName(const FieldName: string): TField; + procedure FreeDataSet; + function GetBroker: TInstantNavigationalBroker; + function GetDataSet: TDataSet; + function GetNavigationalLinkResolvers: TObjectList; + function GetObjectClassName: string; + function GetObjectId: string; + procedure PerformOperation(AObject: TInstantObject; + Map: TInstantAttributeMap; Operation: + TInstantNavigationalResolverOperation); + procedure ReadAttribute(AObject: TInstantObject; + AttributeMetadata: TInstantAttributeMetadata); + procedure ResetAttribute(AObject: TInstantObject; + AttributeMetadata: TInstantAttributeMetadata); + procedure SetDataSet(Value: TDataset); + procedure WriteAttribute(AObject: TInstantObject; + AttributeMetadata: TInstantAttributeMetadata); + protected + procedure Append; virtual; + procedure Cancel; virtual; + procedure ClearBlob(Attribute: TInstantBlob); virtual; + procedure ClearBoolean(Attribute: TInstantBoolean); virtual; + procedure ClearDateTime(Attribute: TInstantDateTime); virtual; + procedure ClearInteger(Attribute: TInstantInteger); virtual; + procedure ClearFloat(Attribute: TInstantFloat); virtual; + procedure ClearCurrency(Attribute: TInstantCurrency); virtual; + procedure ClearMemo(Attribute: TInstantMemo); virtual; + procedure ClearPart(Attribute: TInstantPart); virtual; + procedure ClearParts(Attribute: TInstantParts); virtual; + procedure ClearReference(Attribute: TInstantReference); virtual; + procedure ClearReferences(Attribute: TInstantReferences); virtual; + procedure ClearString(Attribute: TInstantString); virtual; + procedure Close; virtual; + function CreateDataSet: TDataSet; virtual; abstract; + function CreateNavigationalLinkResolver(const ATableName: string): + TInstantNavigationalLinkResolver; virtual; abstract; + function CreateLocateVarArray(const AObjectClassName, AObjectId: string): + Variant; + procedure Delete; virtual; + procedure Edit; virtual; + function GetLinkDatasetResolver(const ATableName: string): + TInstantNavigationalLinkResolver; + function FieldHasObjects(Field: TField): Boolean; virtual; + function FindLinkDatasetResolver(const ATableName: string): + TInstantNavigationalLinkResolver; + procedure InternalDisposeMap(AObject: TInstantObject; + Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; + Info: PInstantOperationInfo); override; + procedure InternalRetrieveMap(AObject: TInstantObject; + const AObjectId: string; Map: TInstantAttributeMap; + ConflictAction: TInstantConflictAction; + Info: PInstantOperationInfo); override; + procedure InternalStoreMap(AObject: TInstantObject; + Map: TInstantAttributeMap; + ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); + override; + function Locate(const AObjectClassName, AObjectId: string): Boolean; + virtual; abstract; + procedure Open; virtual; + procedure Post; virtual; + procedure ReadBlob(Attribute: TInstantBlob); virtual; + procedure ReadBoolean(Attribute: TInstantBoolean); virtual; + procedure ReadDateTime(Attribute: TInstantDateTime); virtual; + procedure ReadInteger(Attribute: TInstantInteger); virtual; + procedure ReadFloat(Attribute: TInstantFloat); virtual; + procedure ReadCurrency(Attribute: TInstantCurrency); virtual; + procedure ReadMemo(Attribute: TInstantMemo); virtual; + procedure ReadPart(Attribute: TInstantPart); virtual; + procedure ReadParts(Attribute: TInstantParts); virtual; + procedure ReadReference(Attribute: TInstantReference); virtual; + procedure ReadReferences(Attribute: TInstantReferences); virtual; + procedure ReadString(Attribute: TInstantString); virtual; + procedure ResetAttributes(AObject: TInstantObject; + Map: TInstantAttributeMap); + procedure SetObjectUpdateCount(AObject: TInstantObject; Value: Integer); + function TranslateError(AObject: TInstantObject; E: Exception): Exception; + virtual; + procedure WriteBlob(Attribute: TInstantBlob); virtual; + procedure WriteBoolean(Attribute: TInstantBoolean); virtual; + procedure WriteDateTime(Attribute: TInstantDateTime); virtual; + procedure WriteFloat(Attribute: TInstantFloat); virtual; + procedure WriteCurrency(Attribute: TInstantCurrency); virtual; + procedure WriteInteger(Attribute: TInstantInteger); virtual; + procedure WriteMemo(Attribute: TInstantMemo); virtual; + procedure WritePart(Attribute: TInstantPart); virtual; + procedure WriteParts(Attribute: TInstantParts); virtual; + procedure WriteReference(Attribute: TInstantReference); virtual; + procedure WriteReferences(Attribute: TInstantReferences); virtual; + procedure WriteString(Attribute: TInstantString); virtual; + property DataSet: TDataset read GetDataSet write SetDataSet; + property NavigationalLinkResolvers: TObjectList read + GetNavigationalLinkResolvers; + public + constructor Create(ABroker: TInstantNavigationalBroker; + const ATableName: string); + destructor Destroy; override; + property Broker: TInstantNavigationalBroker read GetBroker; + property ObjectClassName: string read GetObjectClassName; + property ObjectId: string read GetObjectId; + property TableName: string read FTableName; + end; + + //Backwards compatibility + TInstantResolver = TInstantNavigationalResolver; + + TInstantSQLResolver = class(TInstantCustomResolver) + private + FMap: TInstantAttributeMap; + FDeleteSQL: string; + FDeleteConcurrentSQL: string; + FInsertSQL: string; + FSelectSQL: string; + FUpdateSQL: string; + FUpdateConcurrentSQL: string; + FSelectExternalSQL: string; + FSelectExternalPartSQL: string; + FDeleteExternalSQL: string; + FInsertExternalSQL: string; + procedure AddIntegerParam(Params: TParams; const ParamName: string; + Value: Integer); + procedure AddStringParam(Params: TParams; const ParamName, Value: string); + // Adds an "Id" param, whose data type and size depends on connector + // settings. + procedure AddIdParam(Params: TParams; const ParamName, Value: string); + procedure CheckConflict(Info: PInstantOperationInfo; + AObject: TInstantObject); + function ExecuteStatement(const AStatement: string; AParams: TParams; + Info: PInstantOperationInfo; ConflictAction: TInstantConflictAction; + AObject: TInstantObject): Integer; + function GetDeleteConcurrentSQL: string; + function GetDeleteSQL: string; + function GetInsertSQL: string; + function GetSelectSQL: string; + function GetUpdateConcurrentSQL: string; + function GetUpdateSQL: string; + function GetBroker: TInstantSQLBroker; + function GetSelectExternalSQL: string; + function GetSelectExternalPartSQL: string; + function GetDeleteExternalSQL: string; + function GetInsertExternalSQL: string; + protected + procedure AddAttributeParam(Attribute: TInstantAttribute; + Params: TParams); virtual; + procedure AddAttributeParams(Params: TParams; AObject: TInstantObject; + Map: TInstantAttributeMap); + procedure AddBaseParams(Params: TParams; AClassName, AObjectId: string; + AUpdateCount: Integer = -1); + procedure AddConcurrencyParam(Params: TParams; AUpdateCount: Integer); + function AddParam(Params: TParams; const ParamName: string; + ADataType: TFieldType): TParam; + procedure AddPersistentIdParam(Params: TParams; APersistentId: string); + procedure InternalDisposeMap(AObject: TInstantObject; + Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; + Info: PInstantOperationInfo); override; + procedure InternalRetrieveMap(AObject: TInstantObject; + const AObjectId: string; Map: TInstantAttributeMap; + ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); + override; + procedure InternalStoreMap(AObject: TInstantObject; + Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; + Info: PInstantOperationInfo); override; + procedure ReadAttribute(AObject: TInstantObject; const AObjectId: string; + AttributeMetadata: TInstantAttributeMetadata; DataSet: TDataSet); virtual; + procedure ReadAttributes(AObject: TInstantObject; const AObjectId: string; + Map: TInstantAttributeMap; DataSet: TDataSet); + function ReadBlobField(DataSet: TDataSet; const FieldName: string): string; + virtual; + function ReadBooleanField(DataSet: TDataSet; const FieldName: string): + Boolean; virtual; + function ReadDateTimeField(DataSet: TDataSet; const FieldName: string): + TDateTime; virtual; + function ReadFloatField(DataSet: TDataSet; const FieldName: string): Double; + virtual; + function ReadCurrencyField(DataSet: TDataSet; const FieldName: string): + Currency; virtual; + function ReadIntegerField(DataSet: TDataSet; const FieldName: string): + Integer; virtual; + function ReadMemoField(DataSet: TDataSet; const FieldName: string): string; + virtual; + function ReadStringField(DataSet: TDataSet; const FieldName: string): + string; virtual; + procedure RemoveConcurrencyParam(Params: TParams); + procedure RemovePersistentIdParam(Params: TParams); + function TranslateError(AObject: TInstantObject; + E: Exception): Exception; virtual; + public + constructor Create(ABroker: TInstantSQLBroker; AMap: TInstantAttributeMap); + property Broker: TInstantSQLBroker read GetBroker; + property DeleteConcurrentSQL: string read GetDeleteConcurrentSQL write FDeleteConcurrentSQL; + property DeleteSQL: string read GetDeleteSQL write FDeleteSQL; + property DeleteExternalSQL: string read GetDeleteExternalSQL write FDeleteExternalSQL; + property InsertSQL: string read GetInsertSQL write FInsertSQL; + property InsertExternalSQL: string read GetInsertExternalSQL + write FInsertExternalSQL; + property Map: TInstantAttributeMap read FMap; + property SelectSQL: string read GetSelectSQL write FSelectSQL; + property SelectExternalSQL: string read GetSelectExternalSQL + write FSelectExternalSQL; + property SelectExternalPartSQL: string read GetSelectExternalPartSQL + write FSelectExternalPartSQL; + property UpdateConcurrentSQL: string read GetUpdateConcurrentSQL + write FUpdateConcurrentSQL; + property UpdateSQL: string read GetUpdateSQL write FUpdateSQL; + end; + + // TInstantLinkResolver class defines common interface for handling + // access to container attributes with external storage + TInstantLinkResolver = class(TInstantStreamable) + private + FResolver: TInstantCustomResolver; + function GetBroker: TInstantCustomRelationalBroker; + function GetResolver: TInstantCustomResolver; + protected + procedure InternalStoreAttributeObjects(Attribute: TInstantContainer); + virtual; + procedure InternalClearAttributeLinkRecords; virtual; + procedure InternalDisposeDeletedAttributeObjects( + Attribute: TInstantContainer); virtual; + procedure InternalReadAttributeObjects(Attribute: TInstantContainer; + const AObjectId: string); virtual; + public + constructor Create(AResolver: TInstantCustomResolver); + procedure StoreAttributeObjects(Attribute: TInstantContainer); + procedure ClearAttributeLinkRecords; + procedure DisposeDeletedAttributeObjects(Attribute: TInstantContainer); + procedure ReadAttributeObjects(Attribute: TInstantContainer; + const AObjectId: string); + property Broker: TInstantCustomRelationalBroker read GetBroker; + property Resolver: TInstantCustomResolver read GetResolver; + end; + + // TInstantNavigationalLinkResolver is an abstract class that + // defines the interface for handling access to container attributes + // with external storage for navigational brokers. + // Each navigational broker needs to provide a concrete class descendent. + // See the BDE broker as an example. + TInstantNavigationalLinkResolver = class(TInstantLinkResolver) + private + FDataSet: TDataSet; + FFreeDataSet: Boolean; + FTableName: string; + function FieldByName(const FieldName: string): TField; + procedure FreeDataSet; + function GetBroker: TInstantNavigationalBroker; + function GetDataSet: TDataSet; + function GetResolver: TInstantNavigationalResolver; + procedure SetDataSet(Value: TDataset); + protected + procedure Append; virtual; + procedure Cancel; virtual; + procedure Close; virtual; + function CreateDataSet: TDataSet; virtual; abstract; + procedure Delete; virtual; + procedure Edit; virtual; + function Eof: Boolean; virtual; + procedure First; virtual; + procedure InternalStoreAttributeObjects(Attribute: TInstantContainer); override; + procedure InternalClearAttributeLinkRecords; override; + procedure InternalDisposeDeletedAttributeObjects( + Attribute: TInstantContainer); override; + procedure InternalReadAttributeObjects(Attribute: TInstantContainer; + const AObjectId: string); override; + procedure Next; virtual; + procedure Open; virtual; + procedure Post; virtual; + procedure SetDatasetParentRange(const AParentClass, AParentId: string); + virtual; abstract; + property DataSet: TDataset read GetDataSet write SetDataSet; + public + constructor Create(AResolver: TInstantNavigationalResolver; + const ATableName: string); + destructor Destroy; override; + property Broker: TInstantNavigationalBroker read GetBroker; + property Resolver: TInstantNavigationalResolver read GetResolver; + property TableName: string read FTableName; + end; + + // TInstantSQLLinkResolver class defines interface for handling + // access to container attributes with external storage for + // SQL brokers. Due to the generic nature of SQL this class is used + // directly and no descendant classes are needed for SQL brokers. + TInstantSQLLinkResolver = class(TInstantLinkResolver) + private + FAttributeOwner: TInstantObject; + FTableName: string; +... [truncated message content] |
From: <sr...@us...> - 2006-08-09 00:04:22
|
Revision: 701 Author: srmitch Date: 2006-08-08 17:04:12 -0700 (Tue, 08 Aug 2006) ViewCVS: http://svn.sourceforge.net/instantobjects?rev=701&view=rev Log Message: ----------- - Changed TInstantAbstractAttribute.Initialize to abstract. - Added empty TInstantAttribute.Initialize method. Modified Paths: -------------- branches/Refactor_InstantPersistenceUnit/Source/Core/InstantClasses.pas branches/Refactor_InstantPersistenceUnit/Source/Core/InstantPersistence.pas Modified: branches/Refactor_InstantPersistenceUnit/Source/Core/InstantClasses.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Core/InstantClasses.pas 2006-08-07 11:30:35 UTC (rev 700) +++ branches/Refactor_InstantPersistenceUnit/Source/Core/InstantClasses.pas 2006-08-09 00:04:12 UTC (rev 701) @@ -404,7 +404,7 @@ procedure SetOwner(AOwner: TInstantAbstractObject); function GetMetadata: TInstantCollectionItem; procedure SetMetadata(AMetadata: TInstantCollectionItem); - procedure Initialize; virtual; + procedure Initialize; virtual; abstract; public constructor Create(AOwner: TInstantAbstractObject; AMetadata: TInstantCollectionItem); virtual; @@ -1944,10 +1944,6 @@ Result := FOwner; end; -procedure TInstantAbstractAttribute.Initialize; -begin -end; - procedure TInstantAbstractAttribute.SetMetadata( AMetadata: TInstantCollectionItem); begin Modified: branches/Refactor_InstantPersistenceUnit/Source/Core/InstantPersistence.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Core/InstantPersistence.pas 2006-08-07 11:30:35 UTC (rev 700) +++ branches/Refactor_InstantPersistenceUnit/Source/Core/InstantPersistence.pas 2006-08-09 00:04:12 UTC (rev 701) @@ -179,6 +179,7 @@ function GetIsDefault: Boolean; virtual; function GetIsMandatory: Boolean; virtual; function GetOwner: TInstantObject; reintroduce; virtual; + procedure Initialize; override; procedure ReadName(Reader: TInstantReader); procedure SetAsBoolean(AValue: Boolean); virtual; procedure SetAsCurrency(AValue: Currency); virtual; @@ -2384,6 +2385,10 @@ Result := AsVariant; end; +procedure TInstantAttribute.Initialize; +begin +end; + procedure TInstantAttribute.ReadName(Reader: TInstantReader); begin Reader.ReadStr; |
From: <na...@us...> - 2006-08-07 11:30:44
|
Revision: 700 Author: nandod Date: 2006-08-07 04:30:35 -0700 (Mon, 07 Aug 2006) ViewCVS: http://svn.sourceforge.net/instantobjects?rev=700&view=rev Log Message: ----------- * pulled TInstantAttribute.Initialize up to keep TInstantAttribute.SetMetadata clean of unwanted side effects. Modified Paths: -------------- branches/Refactor_InstantPersistenceUnit/Source/Core/InstantClasses.pas branches/Refactor_InstantPersistenceUnit/Source/Core/InstantPersistence.pas Modified: branches/Refactor_InstantPersistenceUnit/Source/Core/InstantClasses.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Core/InstantClasses.pas 2006-08-07 04:06:11 UTC (rev 699) +++ branches/Refactor_InstantPersistenceUnit/Source/Core/InstantClasses.pas 2006-08-07 11:30:35 UTC (rev 700) @@ -404,6 +404,7 @@ procedure SetOwner(AOwner: TInstantAbstractObject); function GetMetadata: TInstantCollectionItem; procedure SetMetadata(AMetadata: TInstantCollectionItem); + procedure Initialize; virtual; public constructor Create(AOwner: TInstantAbstractObject; AMetadata: TInstantCollectionItem); virtual; @@ -1943,10 +1944,15 @@ Result := FOwner; end; +procedure TInstantAbstractAttribute.Initialize; +begin +end; + procedure TInstantAbstractAttribute.SetMetadata( AMetadata: TInstantCollectionItem); begin FMetadata := AMetadata; + Initialize; end; procedure TInstantAbstractAttribute.SetOwner(AOwner: TInstantAbstractObject); @@ -1959,7 +1965,7 @@ begin inherited Create; FOwner := AOwner; - FMetadata := AMetadata; + SetMetadata(AMetadata); end; end. Modified: branches/Refactor_InstantPersistenceUnit/Source/Core/InstantPersistence.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Core/InstantPersistence.pas 2006-08-07 04:06:11 UTC (rev 699) +++ branches/Refactor_InstantPersistenceUnit/Source/Core/InstantPersistence.pas 2006-08-07 11:30:35 UTC (rev 700) @@ -179,7 +179,6 @@ function GetIsDefault: Boolean; virtual; function GetIsMandatory: Boolean; virtual; function GetOwner: TInstantObject; reintroduce; virtual; - procedure Initialize; virtual; procedure ReadName(Reader: TInstantReader); procedure SetAsBoolean(AValue: Boolean); virtual; procedure SetAsCurrency(AValue: Currency); virtual; @@ -2270,8 +2269,7 @@ begin Assert((AOwner = nil) or (AOwner is TInstantObject)); Assert((AMetadata = nil) or (AMetadata is TInstantAttributeMetadata)); - inherited Create(AOwner, nil); - SetMetadata(TInstantAttributeMetadata(AMetadata)); + inherited Create(AOwner, AMetadata); end; function TInstantAttribute.GetAsBoolean: Boolean; @@ -2386,10 +2384,6 @@ Result := AsVariant; end; -procedure TInstantAttribute.Initialize; -begin -end; - procedure TInstantAttribute.ReadName(Reader: TInstantReader); begin Reader.ReadStr; @@ -2454,7 +2448,6 @@ if Assigned(Value) and (Value.AttributeType <> AttributeType) then raise EInstantError.CreateFmt(SMetadataMismatch, [ClassName, Name]); inherited SetMetadata(Value); - Initialize; end; procedure TInstantAttribute.SetOwner(AOwner: TInstantObject); |
From: <sr...@us...> - 2006-08-07 04:06:22
|
Revision: 699 Author: srmitch Date: 2006-08-06 21:06:11 -0700 (Sun, 06 Aug 2006) ViewCVS: http://svn.sourceforge.net/instantobjects?rev=699&view=rev Log Message: ----------- - Reverted some changes to use of Reintroduce to avoid compiler warnings. - Reverted some changes to TInstantAttribute.Create to ensure new attribute is initialized. Modified Paths: -------------- branches/Refactor_InstantPersistenceUnit/Source/Core/InstantClasses.pas branches/Refactor_InstantPersistenceUnit/Source/Core/InstantMetadata.pas branches/Refactor_InstantPersistenceUnit/Source/Core/InstantPersistence.pas Modified: branches/Refactor_InstantPersistenceUnit/Source/Core/InstantClasses.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Core/InstantClasses.pas 2006-08-06 09:39:33 UTC (rev 698) +++ branches/Refactor_InstantPersistenceUnit/Source/Core/InstantClasses.pas 2006-08-07 04:06:11 UTC (rev 699) @@ -400,7 +400,7 @@ FMetadata: TInstantCollectionItem; FOwner: TInstantAbstractObject; protected - function GetOwner: TInstantAbstractObject; + function GetOwner: TInstantAbstractObject; reintroduce; virtual; procedure SetOwner(AOwner: TInstantAbstractObject); function GetMetadata: TInstantCollectionItem; procedure SetMetadata(AMetadata: TInstantCollectionItem); Modified: branches/Refactor_InstantPersistenceUnit/Source/Core/InstantMetadata.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Core/InstantMetadata.pas 2006-08-06 09:39:33 UTC (rev 698) +++ branches/Refactor_InstantPersistenceUnit/Source/Core/InstantMetadata.pas 2006-08-07 04:06:11 UTC (rev 699) @@ -63,6 +63,7 @@ private function GetCollection: TInstantMetadatas; procedure SetCollection(Value: TInstantMetadatas); + {$IFDEF D6+}reintroduce; {$ENDIF} protected function InternalEquals(const Other: TInstantMetadata): Boolean; virtual; public @@ -142,7 +143,7 @@ protected function InternalEquals(const Other: TInstantMetadata): Boolean; override; public - constructor Create(ACollection: TInstantFieldMetadatas); + constructor Create(ACollection: TInstantFieldMetadatas); reintroduce; procedure Assign(Source: TPersistent); override; // Returns True if one of the data types of Other (Other.DataType and // Other.AlternateDataTypes) equals one of the data types of Self. @@ -172,7 +173,7 @@ protected function InternalEquals(const Other: TInstantMetadata): Boolean; override; public - constructor Create(ACollection: TInstantMetadatas); + constructor Create(ACollection: TInstantMetadatas); reintroduce; procedure Assign(Source: TPersistent); override; property Collection: TInstantIndexMetadatas read GetCollection; // Returns True if the field identified by AFieldMetadata is part of this Modified: branches/Refactor_InstantPersistenceUnit/Source/Core/InstantPersistence.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Core/InstantPersistence.pas 2006-08-06 09:39:33 UTC (rev 698) +++ branches/Refactor_InstantPersistenceUnit/Source/Core/InstantPersistence.pas 2006-08-07 04:06:11 UTC (rev 699) @@ -178,7 +178,7 @@ function GetIsChanged: Boolean; virtual; function GetIsDefault: Boolean; virtual; function GetIsMandatory: Boolean; virtual; - function GetOwner: TInstantObject; virtual; + function GetOwner: TInstantObject; reintroduce; virtual; procedure Initialize; virtual; procedure ReadName(Reader: TInstantReader); procedure SetAsBoolean(AValue: Boolean); virtual; @@ -2270,7 +2270,8 @@ begin Assert((AOwner = nil) or (AOwner is TInstantObject)); Assert((AMetadata = nil) or (AMetadata is TInstantAttributeMetadata)); - inherited Create(AOwner, AMetadata); + inherited Create(AOwner, nil); + SetMetadata(TInstantAttributeMetadata(AMetadata)); end; function TInstantAttribute.GetAsBoolean: Boolean; |
From: <na...@us...> - 2006-08-06 09:39:53
|
Revision: 698 Author: nandod Date: 2006-08-06 02:39:33 -0700 (Sun, 06 Aug 2006) ViewCVS: http://svn.sourceforge.net/instantobjects?rev=698&view=rev Log Message: ----------- - uses clause of two brokers and a catalog updated. - use of overload and reintroduce reduced. - removed some Code Site logging code left there by mistake. Modified Paths: -------------- branches/Refactor_InstantPersistenceUnit/Source/Brokers/ADO/InstantADO.pas branches/Refactor_InstantPersistenceUnit/Source/Brokers/DBX/InstantDBX.pas branches/Refactor_InstantPersistenceUnit/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas branches/Refactor_InstantPersistenceUnit/Source/Core/InstantClasses.pas branches/Refactor_InstantPersistenceUnit/Source/Core/InstantMetadata.pas branches/Refactor_InstantPersistenceUnit/Source/Core/InstantPersistence.pas Modified: branches/Refactor_InstantPersistenceUnit/Source/Brokers/ADO/InstantADO.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Brokers/ADO/InstantADO.pas 2006-08-06 04:35:11 UTC (rev 697) +++ branches/Refactor_InstantPersistenceUnit/Source/Brokers/ADO/InstantADO.pas 2006-08-06 09:39:33 UTC (rev 698) @@ -40,7 +40,7 @@ uses Classes, Db, ADODB, SysUtils, InstantPersistence, InstantClasses, - InstantCommand; + InstantCommand, InstantBrokers, InstantMetadata, InstantTypes; type TInstantADOProviderType = (ptUnknown, ptMSJet, ptMSSQLServer, ptOracle, ptMySQL, ptIBMDB2); Modified: branches/Refactor_InstantPersistenceUnit/Source/Brokers/DBX/InstantDBX.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Brokers/DBX/InstantDBX.pas 2006-08-06 04:35:11 UTC (rev 697) +++ branches/Refactor_InstantPersistenceUnit/Source/Brokers/DBX/InstantDBX.pas 2006-08-06 09:39:33 UTC (rev 698) @@ -45,7 +45,8 @@ {$IFDEF LINUX} QControls, {$ENDIF} - Classes, DB, DBXpress, SqlExpr, InstantPersistence, InstantCommand; + Classes, DB, DBXpress, SqlExpr, InstantPersistence, InstantCommand, + InstantBrokers, InstantMetadata, InstantTypes; type TInstantDBXConnectionDef = class(TInstantConnectionBasedConnectionDef) Modified: branches/Refactor_InstantPersistenceUnit/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas 2006-08-06 04:35:11 UTC (rev 697) +++ branches/Refactor_InstantPersistenceUnit/Source/Catalogs/MSSql/InstantMSSqlCatalog.pas 2006-08-06 09:39:33 UTC (rev 698) @@ -38,7 +38,7 @@ interface uses - InstantPersistence; + InstantPersistence, InstantBrokers, InstantMetadata, InstantTypes; type // A TInstantCatalog that reads catalog information from an MS-SQL server database. Modified: branches/Refactor_InstantPersistenceUnit/Source/Core/InstantClasses.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Core/InstantClasses.pas 2006-08-06 04:35:11 UTC (rev 697) +++ branches/Refactor_InstantPersistenceUnit/Source/Core/InstantClasses.pas 2006-08-06 09:39:33 UTC (rev 698) @@ -386,12 +386,11 @@ private FConnector: TComponent; protected - procedure SetConnector(AConnector: TComponent); overload; virtual; + function GetConnector: TComponent; + procedure SetConnector(AConnector: TComponent); public - constructor Create(AConnector: TComponent = nil); virtual; constructor Retrieve(const AObjectId: string; CreateIfMissing: Boolean = False; - Refresh: Boolean = False; AConnector: TComponent = nil); virtual; abstract; - property Connector: TComponent read FConnector; + Refresh: Boolean = False; AConnector: TComponent = nil); virtual; abstract; end; TInstantAbstractAttributeClass = class of TInstantAbstractAttribute; @@ -401,12 +400,13 @@ FMetadata: TInstantCollectionItem; FOwner: TInstantAbstractObject; protected - procedure SetOwner(AOwner: TInstantAbstractObject); overload; virtual; + function GetOwner: TInstantAbstractObject; + procedure SetOwner(AOwner: TInstantAbstractObject); + function GetMetadata: TInstantCollectionItem; + procedure SetMetadata(AMetadata: TInstantCollectionItem); public - constructor Create(AOwner: TInstantAbstractObject; AMetadata: - TInstantCollectionItem); virtual; - property Metadata: TInstantCollectionItem read FMetadata write FMetadata; - property Owner: TInstantAbstractObject read FOwner; + constructor Create(AOwner: TInstantAbstractObject; + AMetadata: TInstantCollectionItem); virtual; end; TInstantStreamFormat = (sfBinary, sfXML); @@ -1919,10 +1919,11 @@ DoConvertProperties(''); end; -constructor TInstantAbstractObject.Create(AConnector: TComponent = nil); +{ TInstantAbstractObject } + +function TInstantAbstractObject.GetConnector: TComponent; begin - inherited Create; - FConnector := AConnector; + Result := FConnector; end; procedure TInstantAbstractObject.SetConnector(AConnector: TComponent); @@ -1930,11 +1931,21 @@ FConnector := AConnector; end; -constructor TInstantAbstractAttribute.Create(AOwner: TInstantAbstractObject; - AMetadata: TInstantCollectionItem); +{ TInstantAbstractAttribute } + +function TInstantAbstractAttribute.GetMetadata: TInstantCollectionItem; begin - inherited Create; - FOwner := AOwner; + Result := FMetadata; +end; + +function TInstantAbstractAttribute.GetOwner: TInstantAbstractObject; +begin + Result := FOwner; +end; + +procedure TInstantAbstractAttribute.SetMetadata( + AMetadata: TInstantCollectionItem); +begin FMetadata := AMetadata; end; @@ -1943,5 +1954,13 @@ FOwner := AOwner; end; +constructor TInstantAbstractAttribute.Create(AOwner: TInstantAbstractObject; + AMetadata: TInstantCollectionItem); +begin + inherited Create; + FOwner := AOwner; + FMetadata := AMetadata; +end; + end. Modified: branches/Refactor_InstantPersistenceUnit/Source/Core/InstantMetadata.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Core/InstantMetadata.pas 2006-08-06 04:35:11 UTC (rev 697) +++ branches/Refactor_InstantPersistenceUnit/Source/Core/InstantMetadata.pas 2006-08-06 09:39:33 UTC (rev 698) @@ -40,9 +40,7 @@ interface -uses Classes, Contnrs, Db, InstantClasses, InstantTypes, InstantConsts -, CodeSiteLogging -; +uses Classes, Contnrs, Db, InstantClasses, InstantTypes, InstantConsts; type TInstantAttributeMap = class; @@ -65,7 +63,6 @@ private function GetCollection: TInstantMetadatas; procedure SetCollection(Value: TInstantMetadatas); - {$IFDEF D6+}reintroduce;{$ENDIF} protected function InternalEquals(const Other: TInstantMetadata): Boolean; virtual; public @@ -145,7 +142,7 @@ protected function InternalEquals(const Other: TInstantMetadata): Boolean; override; public - constructor Create(ACollection: TInstantFieldMetadatas); reintroduce; + constructor Create(ACollection: TInstantFieldMetadatas); procedure Assign(Source: TPersistent); override; // Returns True if one of the data types of Other (Other.DataType and // Other.AlternateDataTypes) equals one of the data types of Self. @@ -175,7 +172,7 @@ protected function InternalEquals(const Other: TInstantMetadata): Boolean; override; public - constructor Create(ACollection: TInstantMetadatas); reintroduce; + constructor Create(ACollection: TInstantMetadatas); procedure Assign(Source: TPersistent); override; property Collection: TInstantIndexMetadatas read GetCollection; // Returns True if the field identified by AFieldMetadata is part of this @@ -1694,13 +1691,10 @@ var AClass: TInstantAbstractAttributeClass; begin - CodeSite.EnterMethod(Self, 'TInstantAttributeMetadata.CreateAttribute'); AClass := AttributeClass; - CodeSite.Send('AClass', AClass.ClassName); if not Assigned(AClass) then raise EInstantError.CreateFmt(SUnsupportedType, [AttributeTypeName]); Result := AClass.Create(TInstantObject(AObject), Self); - CodeSite.ExitMethod(Self, 'TInstantAttributeMetadata.CreateAttribute'); end; function TInstantAttributeMetadata.GetAttributeClass: Modified: branches/Refactor_InstantPersistenceUnit/Source/Core/InstantPersistence.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Core/InstantPersistence.pas 2006-08-06 04:35:11 UTC (rev 697) +++ branches/Refactor_InstantPersistenceUnit/Source/Core/InstantPersistence.pas 2006-08-06 09:39:33 UTC (rev 698) @@ -178,7 +178,7 @@ function GetIsChanged: Boolean; virtual; function GetIsDefault: Boolean; virtual; function GetIsMandatory: Boolean; virtual; - function GetOwner: TInstantObject; reintroduce; overload; virtual; + function GetOwner: TInstantObject; virtual; procedure Initialize; virtual; procedure ReadName(Reader: TInstantReader); procedure SetAsBoolean(AValue: Boolean); virtual; @@ -190,12 +190,12 @@ procedure SetAsString(const AValue: string); virtual; procedure SetAsVariant(AValue: Variant); virtual; procedure SetIsChanged(Value: Boolean); - procedure SetOwner(AOwner: TInstantObject); reintroduce; overload; virtual; + procedure SetOwner(AOwner: TInstantObject); virtual; procedure StringValidationError(InvalidChar: Char); procedure WriteName(Writer: TInstantWriter); public constructor Create(AOwner: TInstantAbstractObject = nil; AMetadata: - TInstantCollectionItem = nil); override; + TInstantCollectionItem = nil); override; procedure Changed; procedure CheckHasMetadata; procedure Reset; virtual; @@ -452,7 +452,7 @@ TInstantComplex = class(TInstantAttribute) private - function GetRequiredClass: TInstantAbstractObjectClass; + function GetRequiredClass: TInstantObjectClass; function GetRequiredClassName: string; protected function GetAllowOwned: Boolean; virtual; @@ -464,7 +464,7 @@ property Connector: TInstantConnector read GetConnector; function DetachObject(AObject: TInstantObject): Boolean; virtual; property AllowOwned: Boolean read GetAllowOwned; - property RequiredClass: TInstantAbstractObjectClass read GetRequiredClass; + property RequiredClass: TInstantObjectClass read GetRequiredClass; property RequiredClassName: string read GetRequiredClassName; end; @@ -844,8 +844,7 @@ procedure ReadObject(Reader: TInstantReader); override; procedure RestoreState; virtual; procedure SaveState; virtual; - procedure SetConnector(AConnector: TInstantConnector); reintroduce; overload; - virtual; + procedure SetConnector(AConnector: TInstantConnector); virtual; procedure SetId(const Value: string); virtual; function VerifyOperation(OperationType: TInstantOperationType): TInstantVerificationResult; virtual; procedure WriteObject(Writer: TInstantWriter); override; @@ -856,7 +855,7 @@ public constructor Clone(Source: TInstantObject; AConnector: TInstantConnector = nil); overload; virtual; - constructor Create(AConnector: TComponent = nil); override; + constructor Create(AConnector: TInstantConnector = nil); virtual; constructor Retrieve(const AObjectId: string; CreateIfMissing: Boolean = False; Refresh: Boolean = False; AConnector: TComponent = nil); override; function AddObject(AObject: TInstantObject): Integer; overload; @@ -2267,10 +2266,11 @@ end; constructor TInstantAttribute.Create(AOwner: TInstantAbstractObject = nil; - AMetadata: TInstantCollectionItem = nil); + AMetadata: TInstantCollectionItem = nil); begin - inherited Create(AOwner, nil); - SetMetadata(TInstantAttributeMetadata(AMetadata)); + Assert((AOwner = nil) or (AOwner is TInstantObject)); + Assert((AMetadata = nil) or (AMetadata is TInstantAttributeMetadata)); + inherited Create(AOwner, AMetadata); end; function TInstantAttribute.GetAsBoolean: Boolean; @@ -2364,7 +2364,7 @@ function TInstantAttribute.GetMetadata: TInstantAttributeMetadata; begin - Result := inherited Metadata as TInstantAttributeMetadata; + Result := inherited GetMetadata as TInstantAttributeMetadata; end; function TInstantAttribute.GetName: string; @@ -2377,7 +2377,7 @@ function TInstantAttribute.GetOwner: TInstantObject; begin - Result := inherited Owner as TInstantObject; + Result := inherited GetOwner as TInstantObject; end; function TInstantAttribute.GetValue: Variant; @@ -2452,7 +2452,7 @@ begin if Assigned(Value) and (Value.AttributeType <> AttributeType) then raise EInstantError.CreateFmt(SMetadataMismatch, [ClassName, Name]); - inherited Metadata := Value; + inherited SetMetadata(Value); Initialize; end; @@ -3589,10 +3589,10 @@ InstantCheckConnector(Result); end; -function TInstantComplex.GetRequiredClass: TInstantAbstractObjectClass; +function TInstantComplex.GetRequiredClass: TInstantObjectClass; begin if Assigned(Metadata) then - Result := Metadata.ObjectClass + Result := TInstantObjectClass(Metadata.ObjectClass) else Result := TInstantObject; end; @@ -5571,10 +5571,10 @@ ConvertAttributes; end; -constructor TInstantObject.Create(AConnector: TComponent = nil); +constructor TInstantObject.Create(AConnector: TInstantConnector = nil); begin inherited Create; - InstantCheckConnector(TInstantConnector(AConnector)); + InstantCheckConnector(AConnector); SetConnector(AConnector); Init; DoAfterCreate; @@ -6515,7 +6515,7 @@ begin inherited Create; InstantCheckConnector(TInstantConnector(AConnector)); - SetConnector(AConnector); + SetConnector(TInstantConnector(AConnector)); Instance := ObjectStore.Find(AObjectId); if Assigned(Instance) then begin @@ -6557,7 +6557,7 @@ function TInstantObject.GetConnector: TInstantConnector; begin - Result := inherited Connector as TInstantConnector; + Result := inherited GetConnector as TInstantConnector; end; procedure TInstantObject.SaveState; |
From: <sr...@us...> - 2006-08-06 04:39:18
|
Revision: 697 Author: srmitch Date: 2006-08-05 21:35:11 -0700 (Sat, 05 Aug 2006) ViewCVS: http://svn.sourceforge.net/instantobjects?rev=697&view=rev Log Message: ----------- - Refactored InstantPersistence.pas into the following: InstantPersistence.pas - Remains the main 'IO interface' unit. InstantBrokers.pas - Contains the descendant brokers, connectors classes. InstantMetadata.pas - Contains the metadata, scheme, etc. classes. InstantTypes - Contains some type declarations. The TInstantQueryCommand class was moved into InstantCommand.pas. To enable the decoupling two basic 'abstract' classes, TInstantAbstractObject and TInstantAbstractAttribute, were introduced both of which were put in the InstantClasses unit. - Updated the BDE, IBX, NexusDB and XML brokers for the above changes. - Updated PrimerCross demo for the above changes. No changes required for Intro demo. Modified Paths: -------------- branches/Refactor_InstantPersistenceUnit/Demos/Intro/Intro.dpr branches/Refactor_InstantPersistenceUnit/Demos/Intro/Intro.mdr branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/BasicBrowse.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/BasicEdit.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/BasicView.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/CategoryBrowse.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/CompanyBrowse.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/CompanyEdit.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactBrowse.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactEdit.dfm branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactEdit.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactFilterEdit.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactSort.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactView.dfm branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactView.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/CountryBrowse.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/DemoData.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/DemoDataRequest.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/HelpView.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/Main.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/MainData.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/PerformanceView.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/PersonBrowse.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/PersonEdit.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/Primer.dpr branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/PrimerExternal.dpr branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/QueryView.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/RandomData.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/Stopwatch.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/Utility.pas branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/Welcome.pas branches/Refactor_InstantPersistenceUnit/Source/Brokers/BDE/InstantBDE.pas branches/Refactor_InstantPersistenceUnit/Source/Brokers/BDE/InstantBDECatalog.pas branches/Refactor_InstantPersistenceUnit/Source/Brokers/BDE/InstantBDEConnectionDefEdit.pas branches/Refactor_InstantPersistenceUnit/Source/Brokers/IBX/InstantIBX.pas branches/Refactor_InstantPersistenceUnit/Source/Brokers/IBX/InstantIBXConnectionDefEdit.pas branches/Refactor_InstantPersistenceUnit/Source/Brokers/NexusDb/InstantNexusDB.pas branches/Refactor_InstantPersistenceUnit/Source/Brokers/NexusDb/InstantNexusDBCatalog.pas branches/Refactor_InstantPersistenceUnit/Source/Brokers/NexusDb/InstantNexusDBConnectionDefEdit.pas branches/Refactor_InstantPersistenceUnit/Source/Brokers/XML/InstantXML.pas branches/Refactor_InstantPersistenceUnit/Source/Brokers/XML/InstantXMLCatalog.pas branches/Refactor_InstantPersistenceUnit/Source/Catalogs/IBFb/InstantIBFbCatalog.pas branches/Refactor_InstantPersistenceUnit/Source/Core/D2006/IOCore.dpk branches/Refactor_InstantPersistenceUnit/Source/Core/D5/IOCore_D5.dpk branches/Refactor_InstantPersistenceUnit/Source/Core/D6/IOCore.dpk branches/Refactor_InstantPersistenceUnit/Source/Core/D7/IOCore.dpk branches/Refactor_InstantPersistenceUnit/Source/Core/InstantAccessors.pas branches/Refactor_InstantPersistenceUnit/Source/Core/InstantClasses.pas branches/Refactor_InstantPersistenceUnit/Source/Core/InstantCode.pas branches/Refactor_InstantPersistenceUnit/Source/Core/InstantCommand.pas branches/Refactor_InstantPersistenceUnit/Source/Core/InstantConnectionManager.pas branches/Refactor_InstantPersistenceUnit/Source/Core/InstantConnectionManagerFormUnit.pas branches/Refactor_InstantPersistenceUnit/Source/Core/InstantCustomDBEvolverFormUnit.pas branches/Refactor_InstantPersistenceUnit/Source/Core/InstantDBBuild.pas branches/Refactor_InstantPersistenceUnit/Source/Core/InstantDBEvolution.pas branches/Refactor_InstantPersistenceUnit/Source/Core/InstantExplorer.pas branches/Refactor_InstantPersistenceUnit/Source/Core/InstantPersistence.pas branches/Refactor_InstantPersistenceUnit/Source/Core/InstantPresentation.pas branches/Refactor_InstantPersistenceUnit/Source/Core/InstantPump.pas branches/Refactor_InstantPersistenceUnit/Source/Core/K3/IOCore.dpk branches/Refactor_InstantPersistenceUnit/Source/Design/InstantAttributeEditor.pas branches/Refactor_InstantPersistenceUnit/Source/Design/InstantClassEditor.pas branches/Refactor_InstantPersistenceUnit/Source/Design/InstantCommandEditor.pas branches/Refactor_InstantPersistenceUnit/Source/ObjectFoundry/OFClasses.pas branches/Refactor_InstantPersistenceUnit/Source/ObjectFoundry/OFExpert.pas branches/Refactor_InstantPersistenceUnit/Source/Tests/InstantMock.pas branches/Refactor_InstantPersistenceUnit/Source/Tests/MinimalModel.pas branches/Refactor_InstantPersistenceUnit/Source/Tests/TestIO.mdr branches/Refactor_InstantPersistenceUnit/Source/Tests/TestIO.mdx branches/Refactor_InstantPersistenceUnit/Source/Tests/TestInstantAttribute.pas branches/Refactor_InstantPersistenceUnit/Source/Tests/TestInstantAttributeMap.pas branches/Refactor_InstantPersistenceUnit/Source/Tests/TestInstantAttributeMetadata.pas branches/Refactor_InstantPersistenceUnit/Source/Tests/TestInstantClassMetadata.pas branches/Refactor_InstantPersistenceUnit/Source/Tests/TestInstantFieldMetadata.pas branches/Refactor_InstantPersistenceUnit/Source/Tests/TestInstantIndexMetadata.pas branches/Refactor_InstantPersistenceUnit/Source/Tests/TestInstantMetadata.pas branches/Refactor_InstantPersistenceUnit/Source/Tests/TestInstantObject.pas branches/Refactor_InstantPersistenceUnit/Source/Tests/TestInstantObjectStore.pas branches/Refactor_InstantPersistenceUnit/Source/Tests/TestInstantPart.pas branches/Refactor_InstantPersistenceUnit/Source/Tests/TestInstantParts.pas branches/Refactor_InstantPersistenceUnit/Source/Tests/TestInstantReference.pas branches/Refactor_InstantPersistenceUnit/Source/Tests/TestInstantReferences.pas branches/Refactor_InstantPersistenceUnit/Source/Tests/TestInstantScheme.pas branches/Refactor_InstantPersistenceUnit/Source/Tests/TestInstantTableMetadata.pas branches/Refactor_InstantPersistenceUnit/Source/Tests/TestMinimalModel.pas branches/Refactor_InstantPersistenceUnit/Source/Tests/TestMockBroker.pas Added Paths: ----------- branches/Refactor_InstantPersistenceUnit/Source/Core/InstantBrokers.pas branches/Refactor_InstantPersistenceUnit/Source/Core/InstantMetadata.pas branches/Refactor_InstantPersistenceUnit/Source/Core/InstantTypes.pas Modified: branches/Refactor_InstantPersistenceUnit/Demos/Intro/Intro.dpr =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/Intro/Intro.dpr 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/Intro/Intro.dpr 2006-08-06 04:35:11 UTC (rev 697) @@ -2,8 +2,8 @@ uses Forms, + Model in 'Model.pas', Main in 'Main.pas' {MainForm}, - Model in 'Model.pas', ContactEdit in 'ContactEdit.pas' {ContactEditForm}, PersonEdit in 'PersonEdit.pas' {PersonEditForm}, CompanyEdit in 'CompanyEdit.pas' {CompanyEditForm}; Modified: branches/Refactor_InstantPersistenceUnit/Demos/Intro/Intro.mdr =================================================================== (Binary files differ) Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/BasicBrowse.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/BasicBrowse.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/BasicBrowse.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -1,7 +1,13 @@ unit BasicBrowse; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, DB, {$IFDEF MSWINDOWS} Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/BasicEdit.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/BasicEdit.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/BasicEdit.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -1,7 +1,13 @@ unit BasicEdit; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, DB, {$IFDEF MSWINDOWS} Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/BasicView.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/BasicView.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/BasicView.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -2,7 +2,11 @@ interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} uses SysUtils, Classes, Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/CategoryBrowse.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/CategoryBrowse.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/CategoryBrowse.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -2,6 +2,12 @@ interface +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, {$IFDEF MSWINDOWS} Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/CompanyBrowse.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/CompanyBrowse.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/CompanyBrowse.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -2,6 +2,12 @@ interface +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, {$IFDEF MSWINDOWS} Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/CompanyEdit.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/CompanyEdit.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/CompanyEdit.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -1,7 +1,13 @@ unit CompanyEdit; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, {$IFDEF MSWINDOWS} Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactBrowse.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactBrowse.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactBrowse.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -2,6 +2,12 @@ interface +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, {$IFDEF MSWINDOWS} Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactEdit.dfm =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactEdit.dfm 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactEdit.dfm 2006-08-06 04:35:11 UTC (rev 697) @@ -197,7 +197,6 @@ end end object PhonesExposer: TInstantExposer [2] - Options = [] ContainerName = 'Phones' MasterSource = SubjectSource Mode = amContent Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactEdit.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactEdit.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactEdit.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -1,7 +1,13 @@ unit ContactEdit; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, {$IFDEF MSWINDOWS} Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactFilterEdit.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactFilterEdit.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactFilterEdit.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -1,7 +1,13 @@ unit ContactFilterEdit; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, {$IFDEF MSWINDOWS} Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactSort.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactSort.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactSort.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -1,7 +1,13 @@ unit ContactSort; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, {$IFDEF MSWINDOWS} @@ -40,7 +46,8 @@ implementation uses - Model, TypInfo, InstantRtti, InstantPresentation; + Model, TypInfo, InstantRtti, InstantPresentation, InstantMetadata, + InstantTypes; {$R *.dfm} Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactView.dfm =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactView.dfm 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactView.dfm 2006-08-06 04:35:11 UTC (rev 697) @@ -70,8 +70,6 @@ Height = 28 Align = alLeft BorderWidth = 1 - EdgeBorders = [] - Flat = True Images = ActionImages ParentShowHint = False ShowHint = True Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactView.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactView.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/ContactView.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -1,11 +1,11 @@ unit ContactView; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} -{$IFDEF VER150} -{$WARN UNSAFE_TYPE OFF} -{$WARN UNSAFE_CAST OFF} -{$WARN UNSAFE_CODE OFF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} {$ENDIF} uses Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/CountryBrowse.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/CountryBrowse.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/CountryBrowse.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -2,6 +2,12 @@ interface +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, BasicBrowse, DB, {$IFDEF MSWINDOWS} Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/DemoData.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/DemoData.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/DemoData.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -2,6 +2,12 @@ interface +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses Classes, Model, InstantPersistence, RandomData; Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/DemoDataRequest.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/DemoDataRequest.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/DemoDataRequest.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -1,7 +1,13 @@ unit DemoDataRequest; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, {$IFDEF MSWINDOWS} Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/HelpView.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/HelpView.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/HelpView.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -2,6 +2,12 @@ interface +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, BasicView, OleCtrls, SHDocVw, StdCtrls, ExtCtrls, ComCtrls; Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/Main.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/Main.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/Main.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -1,11 +1,11 @@ unit Main; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} -{$IFDEF VER150} -{$WARN UNSAFE_TYPE OFF} -{$WARN UNSAFE_CAST OFF} -{$WARN UNSAFE_CODE OFF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} {$ENDIF} uses @@ -108,7 +108,8 @@ procedure Connect; procedure Disconnect; procedure Reset; - property ActiveSubView: TBasicViewForm read FActiveSubView write SetActiveSubView; + property ActiveSubView: TBasicViewForm read FActiveSubView + write SetActiveSubView; property Connector: TInstantConnector read FConnector; property ConnectionName: string read GetConnectionName; property IsConnected: Boolean read GetIsConnected; @@ -124,7 +125,8 @@ implementation uses - Contnrs, Model, Welcome, MainData, RandomData, DemoData, Utility, ContactView, PerformanceView, + Contnrs, Model, Welcome, MainData, RandomData, DemoData, Utility, ContactView, + PerformanceView, {$IFDEF MSWINDOWS} HelpView, JPeg, {$ENDIF} @@ -132,7 +134,7 @@ HelpViewK3, {$ENDIF} DemoDataRequest, InstantPresentation, InstantClasses, - QueryView, InstantImageUtils, + QueryView, InstantImageUtils, InstantTypes, { Note: This demo attempts to include brokers for the data access layers supported natively by Delphi. To include additional brokers, Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/MainData.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/MainData.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/MainData.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -1,7 +1,13 @@ unit MainData; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, {$IFDEF MSWINDOWS} Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/PerformanceView.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/PerformanceView.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/PerformanceView.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -1,11 +1,11 @@ unit PerformanceView; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} -{$IFDEF VER150} -{$WARN UNSAFE_TYPE OFF} -{$WARN UNSAFE_CAST OFF} -{$WARN UNSAFE_CODE OFF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} {$ENDIF} uses @@ -173,7 +173,7 @@ {$R *.dfm} uses - Model, DemoData, IniFiles, Utility; + InstantBrokers, Model, DemoData, IniFiles, Utility; { TTestResult } Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/PersonBrowse.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/PersonBrowse.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/PersonBrowse.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -2,6 +2,12 @@ interface +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, {$IFDEF MSWINDOWS} Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/PersonEdit.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/PersonEdit.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/PersonEdit.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -1,7 +1,13 @@ unit PersonEdit; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, {$IFDEF MSWINDOWS} Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/Primer.dpr =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/Primer.dpr 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/Primer.dpr 2006-08-06 04:35:11 UTC (rev 697) @@ -32,8 +32,13 @@ program Primer; +{$IFDEF LINUX} {$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses Forms, Main in 'Main.pas' {MainForm}, Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/PrimerExternal.dpr =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/PrimerExternal.dpr 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/PrimerExternal.dpr 2006-08-06 04:35:11 UTC (rev 697) @@ -31,8 +31,13 @@ program PrimerExternal; -{$I '../../InstantDefines.inc'} +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses Forms, Main in 'Main.pas' {MainForm}, Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/QueryView.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/QueryView.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/QueryView.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -1,7 +1,13 @@ unit QueryView; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + uses SysUtils, Classes, {$IFDEF MSWINDOWS} Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/RandomData.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/RandomData.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/RandomData.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -2,10 +2,10 @@ interface -{$IFDEF VER150} -{$WARN UNSAFE_TYPE OFF} -{$WARN UNSAFE_CAST OFF} -{$WARN UNSAFE_CODE OFF} +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} {$ENDIF} type Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/Stopwatch.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/Stopwatch.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/Stopwatch.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -2,7 +2,11 @@ interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} uses SysUtils, Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/Utility.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/Utility.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/Utility.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -1,7 +1,13 @@ unit Utility; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + procedure BeginBusy; procedure EndBusy; function Confirm(const Text: string): Boolean; Modified: branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/Welcome.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/Welcome.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Demos/PrimerCross/Welcome.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -1,9 +1,11 @@ unit Welcome; interface -{$IFDEF VER130}{$DEFINE MSWINDOWS}{$ENDIF} -{$IFDEF VER150} -{$WARN UNSAFE_TYPE OFF} + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} {$ENDIF} uses Modified: branches/Refactor_InstantPersistenceUnit/Source/Brokers/BDE/InstantBDE.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Brokers/BDE/InstantBDE.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Source/Brokers/BDE/InstantBDE.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -44,7 +44,7 @@ uses Classes, Db, DBTables, SysUtils, InstantPersistence, InstantCommand, - InstantConsts; + InstantBrokers, InstantMetadata, InstantTypes, InstantConsts; type TInstantBDEDriverType = (dtUnknown, dtStandard, dtInterBase, dtMSAccess, Modified: branches/Refactor_InstantPersistenceUnit/Source/Brokers/BDE/InstantBDECatalog.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Brokers/BDE/InstantBDECatalog.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Source/Brokers/BDE/InstantBDECatalog.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -38,7 +38,8 @@ interface uses - InstantPersistence, DB, DBTables; + InstantPersistence, DB, DBTables, InstantMetadata, InstantBrokers, + InstantTypes; type // A TInstantCatalog that reads catalog information from a BDE Modified: branches/Refactor_InstantPersistenceUnit/Source/Brokers/BDE/InstantBDEConnectionDefEdit.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Brokers/BDE/InstantBDEConnectionDefEdit.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Source/Brokers/BDE/InstantBDEConnectionDefEdit.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -40,7 +40,7 @@ uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, - InstantBDE, StdCtrls, ExtCtrls; + InstantBDE, StdCtrls, ExtCtrls, InstantMetadata; type TInstantBDEConnectionDefEditForm = class(TForm) @@ -84,7 +84,7 @@ {$R *.DFM} uses - DbTables, InstantPersistence, InstantClasses, InstantConsts; + DbTables, InstantPersistence, InstantClasses, InstantTypes, InstantConsts; const NoAlias = '(None)'; Modified: branches/Refactor_InstantPersistenceUnit/Source/Brokers/IBX/InstantIBX.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Brokers/IBX/InstantIBX.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Source/Brokers/IBX/InstantIBX.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -40,7 +40,7 @@ uses Classes, Db, IBDatabase, IBTable, IBQuery, SysUtils, InstantPersistence, - InstantClasses, InstantCommand; + InstantBrokers, InstantClasses, InstantCommand, InstantMetadata, InstantTypes; type TInstantIBXOption = (ibxUseDelimitedIdents); Modified: branches/Refactor_InstantPersistenceUnit/Source/Brokers/IBX/InstantIBXConnectionDefEdit.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Brokers/IBX/InstantIBXConnectionDefEdit.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Source/Brokers/IBX/InstantIBXConnectionDefEdit.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -89,7 +89,7 @@ {$R *.DFM} uses - IB, InstantPersistence, InstantClasses, InstantConsts; + IB, InstantPersistence, InstantClasses, InstantTypes, InstantConsts; { TInstantIBXConnectionDefEditForm } Modified: branches/Refactor_InstantPersistenceUnit/Source/Brokers/NexusDb/InstantNexusDB.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Brokers/NexusDb/InstantNexusDB.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Source/Brokers/NexusDb/InstantNexusDB.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -43,7 +43,8 @@ {$IFDEF MSWINDOWS} Windows, {$ENDIF} - Classes, DB, InstantPersistence, InstantCommand, + Classes, DB, InstantPersistence, InstantBrokers, InstantCommand, + InstantMetadata, InstantTypes, nxptBasePooledTransport, nxsdServerEngine, nxdb, nxsdDataDictionary; type @@ -842,7 +843,7 @@ end; {$ENDIF} -{ TInstantNexusDBSQLQuery } +{ TInstantNexusDBQuery } class function TInstantNexusDBQuery.TranslatorClass: TInstantRelationalTranslatorClass; Modified: branches/Refactor_InstantPersistenceUnit/Source/Brokers/NexusDb/InstantNexusDBCatalog.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Brokers/NexusDb/InstantNexusDBCatalog.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Source/Brokers/NexusDb/InstantNexusDBCatalog.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -39,7 +39,7 @@ interface uses - InstantPersistence; + InstantPersistence, InstantBrokers, InstantMetadata, InstantTypes; type // A TInstantCatalog that reads catalog information from a NexusDb Modified: branches/Refactor_InstantPersistenceUnit/Source/Brokers/NexusDb/InstantNexusDBConnectionDefEdit.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Brokers/NexusDb/InstantNexusDBConnectionDefEdit.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Source/Brokers/NexusDb/InstantNexusDBConnectionDefEdit.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -124,9 +124,7 @@ {$WARN UNIT_PLATFORM ON} {$ENDIF} {$ENDIF} - InstantClasses, - InstantPersistence, - InstantConsts, + InstantClasses, InstantPersistence, InstantTypes, InstantConsts, InstantNexusDBConsts; { TInstantNexusDBConnectionDefEditForm } Modified: branches/Refactor_InstantPersistenceUnit/Source/Brokers/XML/InstantXML.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Brokers/XML/InstantXML.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Source/Brokers/XML/InstantXML.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -42,7 +42,8 @@ interface uses - Classes, DB, InstantPersistence, InstantCommand, Contnrs; + Classes, DB, Contnrs, InstantPersistence, InstantBrokers, InstantCommand, + InstantMetadata, InstantTypes; const XML_UTF8_HEADER = '<?xml version="1.0" encoding="UTF-8"?>'; Modified: branches/Refactor_InstantPersistenceUnit/Source/Brokers/XML/InstantXMLCatalog.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Brokers/XML/InstantXMLCatalog.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Source/Brokers/XML/InstantXMLCatalog.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -45,7 +45,7 @@ {$IFDEF MSWINDOWS} FileCtrl, {$ENDIF} - InstantPersistence; + InstantPersistence, InstantBrokers, InstantMetadata, InstantTypes; type // A TInstantCatalog that reads catalog information from a XML Modified: branches/Refactor_InstantPersistenceUnit/Source/Catalogs/IBFb/InstantIBFbCatalog.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Catalogs/IBFb/InstantIBFbCatalog.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Source/Catalogs/IBFb/InstantIBFbCatalog.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -39,7 +39,7 @@ interface uses - InstantPersistence; + InstantPersistence, InstantBrokers, InstantMetadata, InstantTypes; type // A TInstantCatalog that reads catalog information from an InterBase Modified: branches/Refactor_InstantPersistenceUnit/Source/Core/D2006/IOCore.dpk =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Core/D2006/IOCore.dpk 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Source/Core/D2006/IOCore.dpk 2006-08-06 04:35:11 UTC (rev 697) @@ -54,6 +54,9 @@ InstantDBEvolution in '..\InstantDBEvolution.pas', InstantCustomDBEvolverFormUnit in '..\InstantCustomDBEvolverFormUnit.pas' {InstantCustomDBEvolverForm}, InstantDBEvolverFormUnit in '..\InstantDBEvolverFormUnit.pas' {InstantDBEvolverForm}, - InstantDBBuilderFormUnit in '..\InstantDBBuilderFormUnit.pas' {InstantDBBuilderForm}; + InstantDBBuilderFormUnit in '..\InstantDBBuilderFormUnit.pas' {InstantDBBuilderForm}, + InstantTypes in '..\InstantTypes.pas', + InstantBrokers in '..\InstantBrokers.pas', + InstantMetadata in '..\InstantMetadata.pas'; end. Modified: branches/Refactor_InstantPersistenceUnit/Source/Core/D5/IOCore_D5.dpk =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Core/D5/IOCore_D5.dpk 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Source/Core/D5/IOCore_D5.dpk 2006-08-06 04:35:11 UTC (rev 697) @@ -52,6 +52,9 @@ InstantCustomDBEvolverFormUnit in '..\InstantCustomDBEvolverFormUnit.pas' {InstantCustomDBEvolverForm}, InstantDBEvolverFormUnit in '..\InstantDBEvolverFormUnit.pas' {InstantDBEvolverForm}, InstantDBEvolution in '..\InstantDBEvolution.pas', - InstantDBBuild in '..\InstantDBBuild.pas'; + InstantDBBuild in '..\InstantDBBuild.pas', + InstantTypes in '..\InstantTypes.pas', + InstantBrokers in '..\InstantBrokers.pas', + InstantMetadata in '..\InstantMetadata.pas'; end. Modified: branches/Refactor_InstantPersistenceUnit/Source/Core/D6/IOCore.dpk =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Core/D6/IOCore.dpk 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Source/Core/D6/IOCore.dpk 2006-08-06 04:35:11 UTC (rev 697) @@ -54,6 +54,9 @@ InstantConnectionManagerFormUnit in '..\InstantConnectionManagerFormUnit.pas' {InstantConnectionManagerForm}, InstantCustomDBEvolverFormUnit in '..\InstantCustomDBEvolverFormUnit.pas' {InstantCustomDBEvolverForm}, InstantDBBuilderFormUnit in '..\InstantDBBuilderFormUnit.pas' {InstantDBBuilderForm}, - InstantDBEvolverFormUnit in '..\InstantDBEvolverFormUnit.pas' {InstantDBEvolverForm}; + InstantDBEvolverFormUnit in '..\InstantDBEvolverFormUnit.pas' {InstantDBEvolverForm}, + InstantTypes in '..\InstantTypes.pas', + InstantBrokers in '..\InstantBrokers.pas', + InstantMetadata in '..\InstantMetadata.pas'; end. Modified: branches/Refactor_InstantPersistenceUnit/Source/Core/D7/IOCore.dpk =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Core/D7/IOCore.dpk 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Source/Core/D7/IOCore.dpk 2006-08-06 04:35:11 UTC (rev 697) @@ -55,6 +55,9 @@ InstantDBEvolution in '..\InstantDBEvolution.pas', InstantCustomDBEvolverFormUnit in '..\InstantCustomDBEvolverFormUnit.pas' {InstantCustomDBEvolverForm}, InstantDBEvolverFormUnit in '..\InstantDBEvolverFormUnit.pas' {InstantDBEvolverForm}, - InstantDBBuilderFormUnit in '..\InstantDBBuilderFormUnit.pas' {InstantDBBuilderForm}; + InstantDBBuilderFormUnit in '..\InstantDBBuilderFormUnit.pas' {InstantDBBuilderForm}, + InstantTypes in '..\InstantTypes.pas', + InstantBrokers in '..\InstantBrokers.pas', + InstantMetadata in '..\InstantMetadata.pas'; end. Modified: branches/Refactor_InstantPersistenceUnit/Source/Core/InstantAccessors.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Core/InstantAccessors.pas 2006-08-06 03:40:47 UTC (rev 696) +++ branches/Refactor_InstantPersistenceUnit/Source/Core/InstantAccessors.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -158,6 +158,7 @@ else Result := InternalObjectCount; end; + function TInstantObjectAccessor.GetSubject: TInstantObject; begin Result := inherited Subject as TInstantObject; Added: branches/Refactor_InstantPersistenceUnit/Source/Core/InstantBrokers.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Core/InstantBrokers.pas (rev 0) +++ branches/Refactor_InstantPersistenceUnit/Source/Core/InstantBrokers.pas 2006-08-06 04:35:11 UTC (rev 697) @@ -0,0 +1,5954 @@ +(* + * InstantObjects + * Broker and Connector Classes + *) + +(* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is: Seleqt InstantObjects + * + * The Initial Developer of the Original Code is: Seleqt + * + * Portions created by the Initial Developer are Copyright (C) 2001-2003 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Carlo Barazzetta, Andrea Petrelli, Nando Dessena, Steven Mitchell, + * Joao Morais, Cesar Coll, Uberto Barbini, David Taylor, Hanedi Salas, + * Riceball Lee, David Moorhouse + * + * ***** END LICENSE BLOCK ***** *) + +unit InstantBrokers; + +{$IFDEF LINUX} +{$I '../InstantDefines.inc'} +{$ELSE} +{$I '..\InstantDefines.inc'} +{$ENDIF} + +interface + +uses SysUtils, Classes, Db, InstantPersistence, InstantTypes, InstantMetadata, + InstantConsts, InstantClasses, Contnrs, InstantCommand; + +type + TInstantBrokerCatalog = class; + TInstantConnectionBasedConnector = class; + TInstantCustomRelationalBroker = class; + TInstantCustomRelationalQuery = class; + TInstantCustomRelationalQueryClass = class of TInstantCustomRelationalQuery; + TInstantCustomResolver = class; + TInstantLinkResolver = class; + TInstantNavigationalBroker = class; + TInstantNavigationalLinkResolver = class; + TInstantNavigationalResolver = class; + TInstantNavigationalResolverClass = class of TInstantNavigationalResolver; + TInstantRelationalConnector = class; + TInstantRelationalTranslator = class; + TInstantRelationalTranslatorClass = class of TInstantRelationalTranslator; + TInstantSQLBroker = class; + TInstantSQLBrokerCatalog = class; + TInstantSQLGenerator = class; + TInstantSQLGeneratorClass = class of TInstantSQLGenerator; + TInstantSQLLinkResolver = class; + TInstantSQLResolver = class; + TInstantStatementCache = class; + + PObjectRow = ^TObjectRow; + TObjectRow = record + Row: Integer; + Instance: TObject; + end; + + PInstantOperationInfo = ^TInstantOperationInfo; + TInstantOperationInfo = record + Success: Boolean; + Conflict: Boolean; + end; + + TInstantBrokerOperation = procedure(AObject: TInstantObject; + const AObjectId: string; Map: TInstantAttributeMap; + ConflictAction: TInstantConflictAction = caFail; + Info: PInstantOperationInfo = nil) of object; + TInstantGetDataSetEvent = procedure(Sender: TObject; + const CommandText: string; var DataSet: TDataset) of object; + TInstantInitDataSetEvent = procedure(Sender: TObject; + const CommandText: string; DataSet: TDataSet) of object; + TInstantNavigationalResolverOperation = procedure(AObject: TInstantObject; + AttributeMetadata: TInstantAttributeMetadata) of object; + + + TInstantCustomRelationalBroker = class(TInstantBroker) + private + FStatementCache: TInstantStatementCache; + FStatementCacheCapacity: Integer; + procedure DisposeMap(AObject: TInstantObject; const AObjectId: string; + Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; + Info: PInstantOperationInfo); + function GetConnector: TInstantRelationalConnector; + function PerformOperation(AObject: TInstantObject; const AObjectId: string; + OperationType: TInstantOperationType; Operation: TInstantBrokerOperation; + ConflictAction: TInstantConflictAction): Boolean; + procedure RetrieveMap(AObject: TInstantObject; const AObjectId: string; + Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; + Info: PInstantOperationInfo); + procedure StoreMap(AObject: TInstantObject; const AObjectId: string; + Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; + Info: PInstantOperationInfo); + function GetStatementCache: TInstantStatementCache; + procedure SetStatementCacheCapacity(const Value: Integer); + protected + property StatementCache: TInstantStatementCache read GetStatementCache; + function EnsureResolver(Map: TInstantAttributeMap): TInstantCustomResolver; + virtual; abstract; + function GetDBMSName: string; virtual; + function GetSQLDelimiters: string; virtual; + function GetSQLQuote: Char; virtual; + function GetSQLWildcard: string; virtual; + function InternalDisposeObject(AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; override; + function InternalRetrieveObject(AObject: TInstantObject; + const AObjectId: string; ConflictAction: TInstantConflictAction): Boolean; + override; + function InternalStoreObject(AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; override; + public + constructor Create(AConnector: TInstantConnector); override; + destructor Destroy; override; + function Execute(const AStatement: string; AParams: TParams = nil): Integer; + virtual; + property Connector: TInstantRelationalConnector read GetConnector; + property DBMSName: string read GetDBMSName; + property SQLDelimiters: string read GetSQLDelimiters; + property SQLQuote: Char read GetSQLQuote; + property SQLWildcard: string read GetSQLWildCard; + property StatementCacheCapacity: Integer read FStatementCacheCapacity + write SetStatementCacheCapacity; + end; + + TInstantNavigationalBroker = class(TInstantCustomRelationalBroker) + private + FResolverList: TObjectList; + function GetResolverCount: Integer; + function GetResolverList: TObjectList; + function GetResolvers(Index: Integer): TInstantnavigationalResolver; + property ResolverList: TObjectList read GetResolverList; + protected + function CreateResolver(const TableName: string): + TInstantNavigationalResolver; virtual; abstract; + function EnsureResolver(Map: TInstantAttributeMap): TInstantCustomResolver; + override; + function FindResolver(const TableName: string): + TInstantNavigationalResolver; + property ResolverCount: Integer read GetResolverCount; + property Resolvers[Index: Integer]: TInstantNavigationalResolver + read GetResolvers; + public + destructor Destroy; override; + end; + + //Backwards compatibility + TInstantRelationalBroker = TInstantNavigationalBroker; + + TInstantSQLBroker = class(TInstantCustomRelationalBroker) + private + FGenerator: TInstantSQLGenerator; + FResolverList: TObjectList; + function GetResolverList: TObjectList; + function GetResolverCount: Integer; + function GetResolvers(Index: Integer): TInstantSQLResolver; + function GetGenerator: TInstantSQLGenerator; + protected + function CreateResolver(Map: TInstantAttributeMap): TInstantSQLResolver; + virtual; abstract; + function EnsureResolver(AMap: TInstantAttributeMap): TInstantCustomResolver; + override; + procedure InternalBuildDatabase(Scheme: TInstantScheme); override; + property ResolverList: TObjectList read GetResolverList; + procedure AssignDataSetParams(DataSet : TDataSet; AParams: TParams); + virtual; + function CreateDataSet(const AStatement: string; AParams: TParams = nil): + TDataSet; virtual; abstract; + public + destructor Destroy; override; + function AcquireDataSet(const AStatement: string; AParams: TParams = nil): + TDataSet; virtual; + procedure ReleaseDataSet(const ADataSet: TDataSet); virtual; + function DataTypeToColumnType(DataType: TInstantDataType; + Size: Integer): string; virtual; abstract; + function FindResolver(AMap: TInstantAttributeMap): TInstantSQLResolver; + class function GeneratorClass: TInstantSQLGeneratorClass; virtual; + property Generator: TInstantSQLGenerator read GetGenerator; + property ResolverCount: Integer read GetResolverCount; + property Resolvers[Index: Integer]: TInstantSQLResolver read GetResolvers; + end; + + TInstantRelationalConnector = class(TInstantConnector) + private + FOnGetDataSet: TInstantGetDataSetEvent; + FOnInitDataSet: TInstantInitDataSetEvent; + protected + procedure DoGetDataSet(const CommandText: string; var DataSet: TDataSet); + procedure DoInitDataSet(const CommandText: string; DataSet: TDataSet); + function GetBroker: TInstantCustomRelationalBroker; + procedure GetDataSet(const CommandText: string; var DataSet: TDataSet); + virtual; + function GetDBMSName: string; virtual; + procedure InitDataSet(const CommandText: string; DataSet: TDataSet); + virtual; + function InternalCreateScheme(Model: TInstantModel): TInstantScheme; + override; + public + property Broker: TInstantCustomRelationalBroker read GetBroker; + property DBMSName: string read GetDBMSName; + published + property OnGetDataSet: TInstantGetDataSetEvent read FOnGetDataSet + write FOnGetDataSet; + property OnInitDataSet: TInstantInitDataSetEvent read FOnInitDataSet + write FOnInitDataSet; + end; + + TInstantConnectionBasedConnector = class(TInstantRelationalConnector) + private + FConnection: TCustomConnection; + FLoginPrompt: Boolean; + procedure DoAfterConnectionChange; + procedure DoBeforeConnectionChange; + function GetConnection: TCustomConnection; + function GetLoginPrompt: Boolean; + procedure SetConnection(Value: TCustomConnection); + procedure SetLoginPrompt(const Value: Boolean); + protected + procedure AssignLoginOptions; virtual; + procedure AfterConnectionChange; virtual; + procedure BeforeConnectionChange; virtual; + procedure CheckConnection; + function GetConnected: Boolean; override; + procedure InternalConnect; override; + procedure InternalDisconnect; override; + procedure Notification(AComponent: TComponent; Operation: TOperation); + override; + public + property Connection: TCustomConnection read GetConnection + write SetConnection; + function HasConnection: Boolean; + constructor Create(AOwner: TComponent); override; + published + property LoginPrompt: Boolean read GetLoginPrompt write SetLoginPrompt + default True; + end; + + TInstantCustomResolver = class(TInstantStreamable) + private + FBroker: TInstantCustomRelationalBroker; + protected + function KeyViolation(AObject: TInstantObject; const AObjectId: string; + E: Exception): EInstantKeyViolation; + procedure InternalDisposeMap(AObject: TInstantObject; + Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; + Info: PInstantOperationInfo); virtual; + procedure InternalRetrieveMap(AObject: TInstantObject; + const AObjectId: string; Map: TInstantAttributeMap; + ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); + virtual; + procedure InternalStoreMap(AObject: TInstantObject; + Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; + Info: PInstantOperationInfo); virtual; + public + constructor Create(ABroker: TInstantCustomRelationalBroker); + procedure DisposeMap(AObject: TInstantObject; Map: TInstantAttributeMap; + ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); + procedure DisposeObject(AObject: TInstantObject; Conflict: + TInstantConflictAction); + procedure RetrieveMap(AObject: TInstantObject; const AObjectId: string; + Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; + Info: PInstantOperationInfo); + procedure StoreMap(AObject: TInstantObject; Map: TInstantAttributeMap; + ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); + procedure StoreObject(AObject: TInstantObject; Conflict: + TInstantConflictAction); + property Broker: TInstantCustomRelationalBroker read FBroker; + end; + + TInstantNavigationalResolver = class(TInstantCustomResolver) + private + FDataSet: TDataSet; + FFreeDataSet: Boolean; + FNavigationalLinkResolvers: TObjectList; + FTableName: string; + function CheckConflict(AObject: TInstantObject; const AObjectId: string; + ConflictAction: TInstantConflictAction): Boolean; + procedure ClearAttribute(AObject: TInstantObject; + AttributeMetadata: TInstantAttributeMetadata); + function FieldByName(const FieldName: string): TField; + procedure FreeDataSet; + function GetBroker: TInstantNavigationalBroker; + function GetDataSet: TDataSet; + function GetNavigationalLinkResolvers: TObjectList; + function GetObjectClassName: string; + function GetObjectId: string; + procedure PerformOperation(AObject: TInstantObject; + Map: TInstantAttributeMap; Operation: + TInstantNavigationalResolverOperation); + procedure ReadAttribute(AObject: TInstantObject; + AttributeMetadata: TInstantAttributeMetadata); + procedure ResetAttribute(AObject: TInstantObject; + AttributeMetadata: TInstantAttributeMetadata); + procedure SetDataSet(Value: TDataset); + procedure WriteAttribute(AObject: TInstantObject; + AttributeMetadata: TInstantAttributeMetadata); + protected + procedure Append; virtual; + procedure Cancel; virtual; + procedure ClearBlob(Attribute: TInstantBlob); virtual; + procedure ClearBoolean(Attribute: TInstantBoolean); virtual; + procedure ClearDateTime(Attribute: TInstantDateTime); virtual; + procedure ClearInteger(Attribute: TInstantInteger); virtual; + procedure ClearFloat(Attribute: TInstantFloat); virtual; + procedure ClearCurrency(Attribute: TInstantCurrency); virtual; + procedure ClearMemo(Attribute: TInstantMemo); virtual; + procedure ClearPart(Attribute: TInstantPart); virtual; + procedure ClearParts(Attribute: TInstantParts); virtual; + procedure ClearReference(Attribute: TInstantReference); virtual; + procedure ClearReferences(Attribute: TInstantReferences); virtual; + procedure ClearString(Attribute: TInstantString); virtual; + procedure Close; virtual; + function CreateDataSet: TDataSet; virtual; abstract; + function CreateNavigationalLinkResolver(const ATableName: string): + TInstantNavigationalLinkResolver; virtual; abstract; + function CreateLocateVarArray(const AObjectClassName, AObjectId: string): + Variant; + procedure Delete; virtual; + procedure Edit; virtual; + function GetLinkDatasetResolver(const ATableName: string): + TInstantNavigationalLinkResolver; + function FieldHasObjects(Field: TField): Boolean; virtual; + function FindLinkDatasetResolver(const ATableName: string): + TInstantNavigationalLinkResolver; + procedure InternalDisposeMap(AObject: TInstantObject; + Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; + Info: PInstantOperationInfo); override; + procedure InternalRetrieveMap(AObject: TInstantObject; + const AObjectId: string; Map: TInstantAttributeMap; + ConflictAction: TInstantConflictAction; + Info: PInstantOperationInfo); override; + procedure InternalStoreMap(AObject: TInstantObject; + Map: TInstantAttributeMap; + ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); + override; + function Locate(const AObjectClassName, AObjectId: string): Boolean; + virtual; abstract; + procedure Open; virtual; + procedure Post; virtual; + procedure ReadBlob(Attribute: TInstantBlob); virtual; + procedure ReadBoolean(Attribute: TInstantBoolean); virtual; + procedure ReadDateTime(Attribute: TInstantDateTime); virtual; + procedure ReadInteger(Attribute: TInstantInteger); virtual; + procedure ReadFloat(Attribute: TInstantFloat); virtual; + procedure ReadCurrency(Attribute: TInstantCurrency); virtual; + procedure ReadMemo(Attribute: TInstantMemo); virtual; + procedure ReadPart(Attribute: TInstantPart); virtual; + procedure ReadParts(Attribute: TInstantParts); virtual; + procedure ReadReference(Attribute: TInstantReference); virtual; + procedure ReadReferences(Attribute: TInstantReferences); virtual; + procedure ReadString(Attribute: TInstantString); virtual; + procedure ResetAttributes(AObject: TInstantObject; + Map: TInstantAttributeMap); + procedure SetObjectUpdateCount(AObject: TInstantObject; Value: Integer); + function TranslateError(AObject: TInstantObject; E: Exception): Exception; + virtual; + procedure WriteBlob(Attribute: TInstantBlob); virtual; + procedure WriteBoolean(Attribute: TInstantBoolean); virtual; + procedure WriteDateTime(Attribute: TInstantDateTime); virtual; + procedure WriteFloat(Attribute: TInstantFloat); virtual; + procedure WriteCurrency(Attribute: TInstantCurrency); virtual; + procedure WriteInteger(Attribute: TInstantInteger); virtual; + procedure WriteMemo(Attribute: TInstantMemo); virtual; + procedure WritePart(Attribute: TInstantPart); virtual; + procedure WriteParts(Attribute: TInstantParts); virtual; + procedure WriteReference(Attribute: TInstantReference); virtual; + procedure WriteReferences(Attribute: TInstantReferences); virtual; + procedure WriteString(Attribute: TInstantString); virtual; + property DataSet: TDataset read GetDataSet write SetDataSet; + property NavigationalLinkResolvers: TObjectList read + GetNavigationalLinkResolvers; + public + constructor Create(ABroker: TInstantNavigationalBroker; + const ATableName: string); + destructor Destroy; override; + property Broker: TInstantNavigationalBroker read GetBroker; + property ObjectClassName: string read GetObjectClassName; + property ObjectId: string read GetObjectId; + property TableName: string read FTableName; + end; + + //Backwards compatibility + TInstantResolver = TInstantNavigationalResolver; + + TInstantSQLResolver = class(TInstantCustomResolver) + private + FMap: TInstantAttributeMap; + FDeleteSQL: string; + FDeleteConcurrentSQL: string; + FInsertSQL: string; + FSelectSQL: string; + FUpdateSQL: string; + FUpdateConcurrentSQL: string; + FSelectExternalSQL: string; + FSelectExternalPartSQL: string; + FDeleteExternalSQL: string; + FInsertExternalSQL: string; + procedure AddIntegerParam(Params: TParams; const ParamName: string; + Value: Integer); + procedure AddStringParam(Params: TParams; const ParamName, Value: string); + // Adds an "Id" param, whose data type and size depends on connector + // settings. + procedure AddIdParam(Params: TParams; const ParamName, Value: string); + procedure CheckConflict(Info: PInstantOperationInfo; + AObject: TInstantObject); + function ExecuteStatement(const AStatement: string; AParams: TParams; + Info: PInstantOperationInfo; ConflictAction: TInstantConflictAction; + AObject: TInstantObject): Integer; + function GetDeleteConcurrentSQL: string; + function GetDeleteSQL: string; + function GetInsertSQL: string; + function GetSelectSQL: string; + function GetUpdateConcurrentSQL: string; + function GetUpdateSQL: string; + function GetBroker: TInstantSQLBroker; + function GetSelectExternalSQL: string; + function GetSelectExternalPartSQL: string; + function GetDeleteExternalSQL: string; + function GetInsertExternalSQL: string; + protected + procedure AddAttributeParam(Attribute: TInstantAttribute; + Params: TParams); virtual; + procedure AddAttributeParams(Params: TParams; AObject: TInstantObject; + Map: TInstantAttributeMap); + procedure AddBaseParams(Params: TParams; AClassName, AObjectId: string; + AUpdateCount: Integer = -1); + procedure AddConcurrencyParam(Params: TParams; AUpdateCoun... [truncated message content] |
From: <sr...@us...> - 2006-08-06 03:41:03
|
Revision: 696 Author: srmitch Date: 2006-08-05 20:40:47 -0700 (Sat, 05 Aug 2006) ViewCVS: http://svn.sourceforge.net/instantobjects?rev=696&view=rev Log Message: ----------- made a copy Added Paths: ----------- branches/Refactor_InstantPersistenceUnit/ Copied: branches/Refactor_InstantPersistenceUnit (from rev 695, trunk) |
From: <na...@us...> - 2006-08-05 10:34:25
|
Revision: 695 Author: nandod Date: 2006-08-05 03:30:22 -0700 (Sat, 05 Aug 2006) ViewCVS: http://svn.sourceforge.net/instantobjects?rev=695&view=rev Log Message: ----------- * Docs and res files updated for 2.0 final. Modified Paths: -------------- branches/2.0/Docs/Changes.txt branches/2.0/ReleaseTools/InstantVersion.res branches/2.0/Source/Brokers/ADO/D2005/DclIOADO.res branches/2.0/Source/Brokers/ADO/D2005/IOADO.res branches/2.0/Source/Brokers/ADO/D2006/DclIOADO.res branches/2.0/Source/Brokers/ADO/D2006/IOADO.res branches/2.0/Source/Brokers/ADO/D5/DclIOADO_D5.res branches/2.0/Source/Brokers/ADO/D5/IOADO_D5.res branches/2.0/Source/Brokers/ADO/D6/DclIOADO.res branches/2.0/Source/Brokers/ADO/D6/IOADO.res branches/2.0/Source/Brokers/ADO/D7/DclIOADO.res branches/2.0/Source/Brokers/ADO/D7/IOADO.res branches/2.0/Source/Brokers/ADS/D5/DclIOADS_D5.res branches/2.0/Source/Brokers/ADS/D5/ioads_D5.res branches/2.0/Source/Brokers/BDE/D2005/DclIOBDE.res branches/2.0/Source/Brokers/BDE/D2005/IOBDE.res branches/2.0/Source/Brokers/BDE/D2006/DclIOBDE.res branches/2.0/Source/Brokers/BDE/D2006/IOBDE.res branches/2.0/Source/Brokers/BDE/D5/DclIOBDE_D5.res branches/2.0/Source/Brokers/BDE/D5/Iobde_D5.res branches/2.0/Source/Brokers/BDE/D6/DclIOBDE.res branches/2.0/Source/Brokers/BDE/D6/IOBDE.res branches/2.0/Source/Brokers/BDE/D7/DclIOBDE.res branches/2.0/Source/Brokers/BDE/D7/IOBDE.res branches/2.0/Source/Brokers/DBISAM/D6/DclDBISAM.res branches/2.0/Source/Brokers/DBISAM/D6/IODBISAM.res branches/2.0/Source/Brokers/DBISAM/D7/DclDBISAM.res branches/2.0/Source/Brokers/DBISAM/D7/IODBISAM.res branches/2.0/Source/Brokers/DBX/D2005/DclIODBX.res branches/2.0/Source/Brokers/DBX/D2005/IODBX.res branches/2.0/Source/Brokers/DBX/D2006/DclIODBX.res branches/2.0/Source/Brokers/DBX/D2006/IODBX.res branches/2.0/Source/Brokers/DBX/D6/DclIODBX.res branches/2.0/Source/Brokers/DBX/D6/IODBX.res branches/2.0/Source/Brokers/DBX/D7/DclIODBX.res branches/2.0/Source/Brokers/DBX/D7/IODBX.res branches/2.0/Source/Brokers/DBX/K3/DclIODBX.res branches/2.0/Source/Brokers/DBX/K3/IODBX.res branches/2.0/Source/Brokers/FlashFiler/D5/DclIOff_D5.res branches/2.0/Source/Brokers/FlashFiler/D5/ioff_D5.res branches/2.0/Source/Brokers/IBX/D2005/DclIOIBX.res branches/2.0/Source/Brokers/IBX/D2005/IOIBX.res branches/2.0/Source/Brokers/IBX/D2006/DclIOIBX.res branches/2.0/Source/Brokers/IBX/D2006/IOIBX.res branches/2.0/Source/Brokers/IBX/D5/DclIOIBX_D5.res branches/2.0/Source/Brokers/IBX/D5/Ioibx_D5.res branches/2.0/Source/Brokers/IBX/D6/DclIOIBX.res branches/2.0/Source/Brokers/IBX/D6/IOIBX.res branches/2.0/Source/Brokers/IBX/D7/DclIOIBX.res branches/2.0/Source/Brokers/IBX/D7/IOIBX.res branches/2.0/Source/Brokers/NexusDb/D2005/DclIONexusDB.res branches/2.0/Source/Brokers/NexusDb/D2005/IONexusDB.res branches/2.0/Source/Brokers/NexusDb/D2006/DclIONexusDB.res branches/2.0/Source/Brokers/NexusDb/D2006/IONexusDB.res branches/2.0/Source/Brokers/NexusDb/D5/DclIONexusDB_D5.res branches/2.0/Source/Brokers/NexusDb/D5/IONexusDB_D5.res branches/2.0/Source/Brokers/NexusDb/D6/DclIONexusDB.res branches/2.0/Source/Brokers/NexusDb/D6/IONexusDB.res branches/2.0/Source/Brokers/NexusDb/D7/DclIONexusDB.res branches/2.0/Source/Brokers/NexusDb/D7/IONexusDB.res branches/2.0/Source/Brokers/UIB/D2005/DclIOUIB.res branches/2.0/Source/Brokers/UIB/D2005/IOUIB.res branches/2.0/Source/Brokers/UIB/D2006/DclIOUIB.res branches/2.0/Source/Brokers/UIB/D2006/IOUIB.res branches/2.0/Source/Brokers/UIB/D5/DclIOUIB_D5.res branches/2.0/Source/Brokers/UIB/D5/IOUIB_D5.res branches/2.0/Source/Brokers/UIB/D6/DclIOUIB.res branches/2.0/Source/Brokers/UIB/D6/IOUIB.res branches/2.0/Source/Brokers/UIB/D7/DclIOUIB.res branches/2.0/Source/Brokers/UIB/D7/IOUIB.res branches/2.0/Source/Brokers/XML/D2005/DclIOXML.res branches/2.0/Source/Brokers/XML/D2005/IOXML.res branches/2.0/Source/Brokers/XML/D2006/DclIOXML.res branches/2.0/Source/Brokers/XML/D2006/IOXML.res branches/2.0/Source/Brokers/XML/D5/DclIOXML_D5.res branches/2.0/Source/Brokers/XML/D5/Ioxml_D5.res branches/2.0/Source/Brokers/XML/D6/DclIOXML.res branches/2.0/Source/Brokers/XML/D6/IOXML.res branches/2.0/Source/Brokers/XML/D7/DclIOXML.res branches/2.0/Source/Brokers/XML/D7/IOXML.res branches/2.0/Source/Brokers/XML/k3/DclIOXML.res branches/2.0/Source/Brokers/XML/k3/IOXML.res branches/2.0/Source/Brokers/ZeosDBO/D2005/DclIOZeosDBO.res branches/2.0/Source/Brokers/ZeosDBO/D2005/IOZeosDBO.res branches/2.0/Source/Brokers/ZeosDBO/D2006/DclIOZeosDBO.res branches/2.0/Source/Brokers/ZeosDBO/D2006/IOZeosDBO.res branches/2.0/Source/Brokers/ZeosDBO/D5/DclIOZeosDBO_D5.res branches/2.0/Source/Brokers/ZeosDBO/D5/IOZeosDBO_D5.res branches/2.0/Source/Brokers/ZeosDBO/D6/DclIOZeosDBO.res branches/2.0/Source/Brokers/ZeosDBO/D6/IOZeosDBO.res branches/2.0/Source/Brokers/ZeosDBO/D7/DclIOZeosDBO.res branches/2.0/Source/Brokers/ZeosDBO/D7/IOZeosDBO.res branches/2.0/Source/Catalogs/IBFb/D2005/IOIBFbCatalog.res branches/2.0/Source/Catalogs/IBFb/D2006/IOIBFbCatalog.res branches/2.0/Source/Catalogs/IBFb/D5/IOIBFbCatalog_D5.res branches/2.0/Source/Catalogs/IBFb/D6/IOIBFbCatalog.res branches/2.0/Source/Catalogs/IBFb/D7/IOIBFbCatalog.res branches/2.0/Source/Catalogs/IBFb/K3/IOIBFbCatalog.res branches/2.0/Source/Catalogs/MSSql/D2005/IOMSSqlCatalog.res branches/2.0/Source/Catalogs/MSSql/D2006/IOMSSqlCatalog.res branches/2.0/Source/Catalogs/MSSql/D5/IOMSSqlCatalog_D5.res branches/2.0/Source/Catalogs/MSSql/D6/IOMSSqlCatalog.res branches/2.0/Source/Catalogs/MSSql/D7/IOMSSqlCatalog.res branches/2.0/Source/Catalogs/MSSql/K3/IOMSSqlCatalog.res branches/2.0/Source/Core/D2005/IOCore.res branches/2.0/Source/Core/D2006/IOCore.res branches/2.0/Source/Core/D5/IOCore_D5.res branches/2.0/Source/Core/D6/IOCore.res branches/2.0/Source/Core/D7/IOCore.res branches/2.0/Source/Core/K3/IOCore.res branches/2.0/Source/Design/D2005/DclIOCore.res branches/2.0/Source/Design/D2006/DclIOCore.res branches/2.0/Source/Design/D5/DclIOCore_D5.res branches/2.0/Source/Design/D6/DclIOCore.res branches/2.0/Source/Design/D7/DclIOCore.res branches/2.0/Source/Design/K3/DclIOCore.res branches/2.0/Source/PackageGroups/Install.txt Modified: branches/2.0/Docs/Changes.txt =================================================================== --- branches/2.0/Docs/Changes.txt 2006-08-01 23:13:37 UTC (rev 694) +++ branches/2.0/Docs/Changes.txt 2006-08-05 10:30:22 UTC (rev 695) @@ -1,6 +1,16 @@ VERSION HISTORY --------------- +Version 2.0 (2.0.0.0) (2006-08-05) + +- Further Help file updates. + +- Bug fix for # 1473942. Boolean attributes cause error. + +- Bug fix for # 1531266. Connector.GenerateId doesn't receive Object. + +- Removed default parameter value from GenerateId method. + Version 2.0 RC 1 (1.9.2.1) (2006-05-07) - Help file has been improved. Modified: branches/2.0/ReleaseTools/InstantVersion.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/ADO/D2005/DclIOADO.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/ADO/D2005/IOADO.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/ADO/D2006/DclIOADO.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/ADO/D2006/IOADO.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/ADO/D5/DclIOADO_D5.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/ADO/D5/IOADO_D5.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/ADO/D6/DclIOADO.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/ADO/D6/IOADO.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/ADO/D7/DclIOADO.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/ADO/D7/IOADO.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/ADS/D5/DclIOADS_D5.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/ADS/D5/ioads_D5.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/BDE/D2005/DclIOBDE.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/BDE/D2005/IOBDE.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/BDE/D2006/DclIOBDE.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/BDE/D2006/IOBDE.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/BDE/D5/DclIOBDE_D5.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/BDE/D5/Iobde_D5.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/BDE/D6/DclIOBDE.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/BDE/D6/IOBDE.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/BDE/D7/DclIOBDE.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/BDE/D7/IOBDE.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/DBISAM/D6/DclDBISAM.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/DBISAM/D6/IODBISAM.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/DBISAM/D7/DclDBISAM.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/DBISAM/D7/IODBISAM.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/DBX/D2005/DclIODBX.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/DBX/D2005/IODBX.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/DBX/D2006/DclIODBX.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/DBX/D2006/IODBX.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/DBX/D6/DclIODBX.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/DBX/D6/IODBX.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/DBX/D7/DclIODBX.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/DBX/D7/IODBX.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/DBX/K3/DclIODBX.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/DBX/K3/IODBX.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/FlashFiler/D5/DclIOff_D5.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/FlashFiler/D5/ioff_D5.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/IBX/D2005/DclIOIBX.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/IBX/D2005/IOIBX.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/IBX/D2006/DclIOIBX.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/IBX/D2006/IOIBX.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/IBX/D5/DclIOIBX_D5.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/IBX/D5/Ioibx_D5.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/IBX/D6/DclIOIBX.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/IBX/D6/IOIBX.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/IBX/D7/DclIOIBX.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/IBX/D7/IOIBX.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/NexusDb/D2005/DclIONexusDB.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/NexusDb/D2005/IONexusDB.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/NexusDb/D2006/DclIONexusDB.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/NexusDb/D2006/IONexusDB.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/NexusDb/D5/DclIONexusDB_D5.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/NexusDb/D5/IONexusDB_D5.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/NexusDb/D6/DclIONexusDB.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/NexusDb/D6/IONexusDB.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/NexusDb/D7/DclIONexusDB.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/NexusDb/D7/IONexusDB.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/UIB/D2005/DclIOUIB.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/UIB/D2005/IOUIB.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/UIB/D2006/DclIOUIB.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/UIB/D2006/IOUIB.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/UIB/D5/DclIOUIB_D5.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/UIB/D5/IOUIB_D5.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/UIB/D6/DclIOUIB.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/UIB/D6/IOUIB.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/UIB/D7/DclIOUIB.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/UIB/D7/IOUIB.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/XML/D2005/DclIOXML.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/XML/D2005/IOXML.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/XML/D2006/DclIOXML.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/XML/D2006/IOXML.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/XML/D5/DclIOXML_D5.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/XML/D5/Ioxml_D5.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/XML/D6/DclIOXML.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/XML/D6/IOXML.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/XML/D7/DclIOXML.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/XML/D7/IOXML.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/XML/k3/DclIOXML.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/XML/k3/IOXML.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/ZeosDBO/D2005/DclIOZeosDBO.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/ZeosDBO/D2005/IOZeosDBO.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/ZeosDBO/D2006/DclIOZeosDBO.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/ZeosDBO/D2006/IOZeosDBO.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/ZeosDBO/D5/DclIOZeosDBO_D5.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/ZeosDBO/D5/IOZeosDBO_D5.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/ZeosDBO/D6/DclIOZeosDBO.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/ZeosDBO/D6/IOZeosDBO.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/ZeosDBO/D7/DclIOZeosDBO.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Brokers/ZeosDBO/D7/IOZeosDBO.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Catalogs/IBFb/D2005/IOIBFbCatalog.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Catalogs/IBFb/D2006/IOIBFbCatalog.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Catalogs/IBFb/D5/IOIBFbCatalog_D5.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Catalogs/IBFb/D6/IOIBFbCatalog.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Catalogs/IBFb/D7/IOIBFbCatalog.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Catalogs/IBFb/K3/IOIBFbCatalog.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Catalogs/MSSql/D2005/IOMSSqlCatalog.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Catalogs/MSSql/D2006/IOMSSqlCatalog.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Catalogs/MSSql/D5/IOMSSqlCatalog_D5.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Catalogs/MSSql/D6/IOMSSqlCatalog.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Catalogs/MSSql/D7/IOMSSqlCatalog.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Catalogs/MSSql/K3/IOMSSqlCatalog.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Core/D2005/IOCore.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Core/D2006/IOCore.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Core/D5/IOCore_D5.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Core/D6/IOCore.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Core/D7/IOCore.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Core/K3/IOCore.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Design/D2005/DclIOCore.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Design/D2006/DclIOCore.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Design/D5/DclIOCore_D5.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Design/D6/DclIOCore.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Design/D7/DclIOCore.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/Design/K3/DclIOCore.res =================================================================== (Binary files differ) Modified: branches/2.0/Source/PackageGroups/Install.txt =================================================================== --- branches/2.0/Source/PackageGroups/Install.txt 2006-08-01 23:13:37 UTC (rev 694) +++ branches/2.0/Source/PackageGroups/Install.txt 2006-08-05 10:30:22 UTC (rev 695) @@ -1,10 +1,8 @@ ------------------------------------------------------------------ - InstantObjects 2.0 Beta 2 (1.9.2.1) for Delphi, Kylix, FPC + InstantObjects 2.0 for Delphi, Kylix, FPC Mozilla Public License 1.1 Edition - January 2006 release - Based on Seleqt InstantObjects. Portions created by Seleqt are Copyright (c) 2001-2003 Seleqt. Other portions and changes are Copyright (c) the authors. @@ -71,8 +69,5 @@ 6) dclIOXML.dpk : XML Broker When you are familiar with the packages and source structure of -InstantObjects you can setup and maintain your own personalised +InstantObjects you can setup and maintain your own customized bpg files to include only packages you want use. - - - |
From: <jcm...@us...> - 2006-08-01 23:13:54
|
Revision: 694 Author: jcmoraisjr Date: 2006-08-01 16:13:37 -0700 (Tue, 01 Aug 2006) ViewCVS: http://svn.sourceforge.net/instantobjects?rev=694&view=rev Log Message: ----------- - Fixed bug [1531266] Connector.GenerateId doesn't receive Object; - Removed default parameter value from GenerateId method. Modified Paths: -------------- branches/2.0/Source/Core/InstantPersistence.pas Modified: branches/2.0/Source/Core/InstantPersistence.pas =================================================================== --- branches/2.0/Source/Core/InstantPersistence.pas 2006-08-01 23:06:12 UTC (rev 693) +++ branches/2.0/Source/Core/InstantPersistence.pas 2006-08-01 23:13:37 UTC (rev 694) @@ -1488,7 +1488,7 @@ function InternalCreateQuery: TInstantQuery; virtual; function InternalCreateScheme(Model: TInstantModel): TInstantScheme; virtual; abstract; procedure InternalDisconnect; virtual; abstract; - function InternalGenerateId(const AObject: TInstantObject = nil): string; virtual; + function InternalGenerateId(const AObject: TInstantObject): string; virtual; procedure InternalRollbackTransaction; virtual; procedure InternalStartTransaction; virtual; function RemoveTransactedObject(AObject: TInstantObject): Integer; @@ -1508,7 +1508,7 @@ function CreateQuery: TInstantQuery; procedure Disconnect; function EnsureObjectStore(AClass: TInstantObjectClass): TInstantObjectStore; - function GenerateId(const AObject: TInstantObject = nil): string; + function GenerateId(const AObject: TInstantObject): string; class procedure RegisterClass; procedure RegisterClient(Client: TObject); procedure RollbackTransaction; @@ -8428,7 +8428,7 @@ if IsAbandoned then Result := InstantGenerateId else - Result := Connector.GenerateId; + Result := Connector.GenerateId(Self); end; function TInstantObject.GetCaption: string; @@ -9282,7 +9282,7 @@ end; end; -function TInstantConnector.GenerateId(const AObject: TInstantObject = nil): string; +function TInstantConnector.GenerateId(const AObject: TInstantObject): string; begin Result := InternalGenerateId(AObject); end; @@ -9423,7 +9423,7 @@ Result := Broker.CreateQuery; end; -function TInstantConnector.InternalGenerateId(const AObject: TInstantObject = nil): string; +function TInstantConnector.InternalGenerateId(const AObject: TInstantObject): string; begin if Assigned(FOnGenerateId) then begin |
From: <jcm...@us...> - 2006-08-01 23:06:24
|
Revision: 693 Author: jcmoraisjr Date: 2006-08-01 16:06:12 -0700 (Tue, 01 Aug 2006) ViewCVS: http://svn.sourceforge.net/instantobjects?rev=693&view=rev Log Message: ----------- - Fixed bug [1531266] Connector.GenerateId doesn't receive Object; - Removed default parameter value from GenerateId method. Modified Paths: -------------- trunk/Source/Core/InstantPersistence.pas Modified: trunk/Source/Core/InstantPersistence.pas =================================================================== --- trunk/Source/Core/InstantPersistence.pas 2006-07-30 15:08:43 UTC (rev 692) +++ trunk/Source/Core/InstantPersistence.pas 2006-08-01 23:06:12 UTC (rev 693) @@ -1496,7 +1496,7 @@ function InternalCreateQuery: TInstantQuery; virtual; function InternalCreateScheme(Model: TInstantModel): TInstantScheme; virtual; abstract; procedure InternalDisconnect; virtual; abstract; - function InternalGenerateId(const AObject: TInstantObject = nil): string; virtual; + function InternalGenerateId(const AObject: TInstantObject): string; virtual; procedure InternalRollbackTransaction; virtual; procedure InternalStartTransaction; virtual; function RemoveTransactedObject(AObject: TInstantObject): Integer; @@ -1516,7 +1516,7 @@ function CreateQuery: TInstantQuery; procedure Disconnect; function EnsureObjectStore(AClass: TInstantObjectClass): TInstantObjectStore; - function GenerateId(const AObject: TInstantObject = nil): string; + function GenerateId(const AObject: TInstantObject): string; class procedure RegisterClass; procedure RegisterClient(Client: TObject); procedure RollbackTransaction; @@ -8605,7 +8605,7 @@ if IsAbandoned then Result := InstantGenerateId else - Result := Connector.GenerateId; + Result := Connector.GenerateId(Self); end; function TInstantObject.GetCaption: string; @@ -9459,7 +9459,7 @@ end; end; -function TInstantConnector.GenerateId(const AObject: TInstantObject = nil): string; +function TInstantConnector.GenerateId(const AObject: TInstantObject): string; begin Result := InternalGenerateId(AObject); end; @@ -9600,7 +9600,7 @@ Result := Broker.CreateQuery; end; -function TInstantConnector.InternalGenerateId(const AObject: TInstantObject = nil): string; +function TInstantConnector.InternalGenerateId(const AObject: TInstantObject): string; begin if Assigned(FOnGenerateId) then begin |