From: <na...@us...> - 2008-08-25 13:28:10
|
Revision: 782 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=782&view=rev Author: nandod Date: 2008-08-25 13:28:15 +0000 (Mon, 25 Aug 2008) Log Message: ----------- + new IQL function EXISTS(). Modified Paths: -------------- trunk/Demos/PrimerCross/Primer.dproj trunk/Demos/PrimerCross/PrimerExternal.dpr trunk/Demos/PrimerCross/PrimerExternal.dproj trunk/Demos/PrimerCross/QueryView.dfm trunk/Demos/PrimerCross/QueryView.pas trunk/Source/Brokers/XML/InstantXML.pas trunk/Source/Core/InstantBrokers.pas trunk/Source/Core/InstantCommand.pas trunk/Source/Core/InstantConsts.pas trunk/Source/Core/InstantPersistence.pas trunk/Source/Core/InstantPresentation.pas trunk/Source/Core/InstantUtils.pas trunk/Source/PackageGroups/D2007/AllPackages.groupproj Modified: trunk/Demos/PrimerCross/Primer.dproj =================================================================== --- trunk/Demos/PrimerCross/Primer.dproj 2008-07-08 07:01:41 UTC (rev 781) +++ trunk/Demos/PrimerCross/Primer.dproj 2008-08-25 13:28:15 UTC (rev 782) @@ -1,4 +1,5 @@ -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> +<?xml version="1.0" encoding="utf-8"?> +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <ProjectGuid>{d197a2d4-31b9-43b1-8070-3f804d86e53f}</ProjectGuid> <MainSource>Primer.dpr</MainSource> @@ -20,7 +21,7 @@ </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <Version>7.0</Version> - <DCC_Define>DEBUG</DCC_Define> + <DCC_Define>DEBUG;IO_STATEMENT_LOGGING</DCC_Define> <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_UnitSearchPath> <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_ResourcePath> <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_ObjPath> @@ -30,7 +31,8 @@ <Borland.Personality>Delphi.Personality</Borland.Personality> <Borland.ProjectType>VCLApplication</Borland.ProjectType> <BorlandProject> -<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">2</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">1030</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName">InstantObjects.org</VersionInfoKeys><VersionInfoKeys Name="FileDescription">Primer Demo</VersionInfoKeys><VersionInfoKeys Name="FileVersion">2.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright">MPL public license</VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">2.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">Primer.dpr</Source></Source></Delphi.Personality></BorlandProject></BorlandProject> +<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">2</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">1030</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName">InstantObjects.org</VersionInfoKeys><VersionInfoKeys Name="FileDescription">Primer Demo</VersionInfoKeys><VersionInfoKeys Name="FileVersion">2.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright">MPL public license</VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">2.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">Primer.dpr</Source></Source></Delphi.Personality> <ModelSupport>False</ModelSupport> +</BorlandProject></BorlandProject> </ProjectExtensions> <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" /> <ItemGroup> Modified: trunk/Demos/PrimerCross/PrimerExternal.dpr =================================================================== --- trunk/Demos/PrimerCross/PrimerExternal.dpr 2008-07-08 07:01:41 UTC (rev 781) +++ trunk/Demos/PrimerCross/PrimerExternal.dpr 2008-08-25 13:28:15 UTC (rev 782) @@ -62,10 +62,10 @@ ContactSort in 'ContactSort.pas' {ContactSortForm}, CategoryBrowse in 'CategoryBrowse.pas' {CategoryBrowseForm}, HelpView in 'HelpView.pas' {HelpViewForm: TFrame}, - QueryView in 'QueryView.pas' {QueryViewForm: TFrame}, RandomData in 'RandomData.pas', Stopwatch in 'Stopwatch.pas', - Utility in 'Utility.pas'; + Utility in 'Utility.pas', + QueryView in 'QueryView.pas' {QueryViewForm: TFrame}; {$R *.res} {$R *.mdr} {Model} Modified: trunk/Demos/PrimerCross/PrimerExternal.dproj =================================================================== --- trunk/Demos/PrimerCross/PrimerExternal.dproj 2008-07-08 07:01:41 UTC (rev 781) +++ trunk/Demos/PrimerCross/PrimerExternal.dproj 2008-08-25 13:28:15 UTC (rev 782) @@ -3,7 +3,7 @@ <PropertyGroup> <ProjectGuid>{0d607f9b-9c2b-445d-84fd-7072bc53deff}</ProjectGuid> <MainSource>PrimerExternal.dpr</MainSource> - <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> <DCC_DependencyCheckOutputName>PrimerExternal.exe</DCC_DependencyCheckOutputName> @@ -13,25 +13,25 @@ <DCC_DebugInformation>False</DCC_DebugInformation> <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> - <DCC_Define>RELEASE</DCC_Define> - <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql</DCC_UnitSearchPath> - <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql</DCC_ResourcePath> - <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql</DCC_ObjPath> - <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql</DCC_IncludePath> + <DCC_Define>RELEASE;IO_STATEMENT_LOGGING</DCC_Define> + <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_UnitSearchPath> + <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_ResourcePath> + <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_ObjPath> + <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_IncludePath> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <Version>7.0</Version> - <DCC_Define>DEBUG</DCC_Define> - <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql</DCC_UnitSearchPath> - <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql</DCC_ResourcePath> - <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql</DCC_ObjPath> - <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql</DCC_IncludePath> + <DCC_Define>DEBUG;IO_STATEMENT_LOGGING</DCC_Define> + <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_UnitSearchPath> + <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_ResourcePath> + <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_ObjPath> + <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_IncludePath> </PropertyGroup> <ProjectExtensions> <Borland.Personality>Delphi.Personality</Borland.Personality> <Borland.ProjectType>VCLApplication</Borland.ProjectType> <BorlandProject> -<BorlandProject><Delphi.Personality><Compiler><Compiler Name="UsePackages">False</Compiler><Compiler Name="Packages"></Compiler></Compiler><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><VersionInfo><VersionInfo Name="IncludeVerInfo">False</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">2</VersionInfo><VersionInfo Name="MinorVer">1</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">2057</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName">InstantObjects.org</VersionInfoKeys><VersionInfoKeys Name="FileDescription">Primer Demo</VersionInfoKeys><VersionInfoKeys Name="FileVersion">2.1.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright">MPL public license</VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">2.1</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">PrimerExternal.dpr</Source></Source></Delphi.Personality></BorlandProject></BorlandProject> +<BorlandProject><Delphi.Personality><Compiler><Compiler Name="UsePackages">False</Compiler><Compiler Name="Packages"></Compiler></Compiler><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">2</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">1030</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName">InstantObjects.org</VersionInfoKeys><VersionInfoKeys Name="FileDescription">Primer Demo</VersionInfoKeys><VersionInfoKeys Name="FileVersion">2.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright">MPL public license</VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">2.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">PrimerExternal.dpr</Source></Source></Delphi.Personality></BorlandProject></BorlandProject> </ProjectExtensions> <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" /> <ItemGroup> @@ -46,6 +46,7 @@ </DCCReference> <DCCReference Include="BasicView.pas"> <Form>BasicViewForm</Form> + <DesignClass>TFrame</DesignClass> </DCCReference> <DCCReference Include="CategoryBrowse.pas"> <Form>CategoryBrowseForm</Form> @@ -70,6 +71,7 @@ </DCCReference> <DCCReference Include="ContactView.pas"> <Form>ContactViewForm</Form> + <DesignClass>TFrame</DesignClass> </DCCReference> <DCCReference Include="CountryBrowse.pas"> <Form>CountryBrowseForm</Form> @@ -80,16 +82,19 @@ </DCCReference> <DCCReference Include="HelpView.pas"> <Form>HelpViewForm</Form> + <DesignClass>TFrame</DesignClass> </DCCReference> <DCCReference Include="Main.pas"> <Form>MainForm</Form> </DCCReference> <DCCReference Include="MainData.pas"> <Form>MainDataModule</Form> + <DesignClass>TDataModule</DesignClass> </DCCReference> <DCCReference Include="ModelExternal\Model.pas" /> <DCCReference Include="PerformanceView.pas"> <Form>PerformanceViewForm</Form> + <DesignClass>TFrame</DesignClass> </DCCReference> <DCCReference Include="PersonBrowse.pas"> <Form>PersonBrowseForm</Form> @@ -99,6 +104,7 @@ </DCCReference> <DCCReference Include="QueryView.pas"> <Form>QueryViewForm</Form> + <DesignClass>TFrame</DesignClass> </DCCReference> <DCCReference Include="RandomData.pas" /> <DCCReference Include="Stopwatch.pas" /> Modified: trunk/Demos/PrimerCross/QueryView.dfm =================================================================== --- trunk/Demos/PrimerCross/QueryView.dfm 2008-07-08 07:01:41 UTC (rev 781) +++ trunk/Demos/PrimerCross/QueryView.dfm 2008-08-25 13:28:15 UTC (rev 782) @@ -1,10 +1,10 @@ inherited QueryViewForm: TQueryViewForm - Width = 600 + Width = 772 Height = 320 object Splitter: TSplitter Left = 0 Top = 147 - Width = 600 + Width = 772 Height = 6 Cursor = crVSplit Align = alTop @@ -12,7 +12,7 @@ object CommandPanel: TPanel Left = 0 Top = 0 - Width = 600 + Width = 772 Height = 147 Align = alTop BevelOuter = bvNone @@ -35,7 +35,7 @@ FocusControl = ExampleComboBox end object NumberLabel: TLabel - Left = 443 + Left = 614 Top = 126 Width = 77 Height = 13 @@ -47,7 +47,7 @@ object CommandEdit: TMemo Left = 30 Top = 30 - Width = 540 + Width = 712 Height = 87 Align = alClient Font.Charset = ANSI_CHARSET @@ -69,15 +69,16 @@ object ExampleComboBox: TComboBox Left = 168 Top = 121 - Width = 281 + Width = 461 Height = 21 Style = csDropDownList + DropDownCount = 11 ItemHeight = 13 TabOrder = 1 OnClick = ExampleComboBoxClick end object MaxCountEdit: TMaskEdit - Left = 524 + Left = 695 Top = 122 Width = 44 Height = 21 @@ -87,31 +88,53 @@ Text = '0 ' end end - object ResultPanel: TPanel + object ResultPageControl: TPageControl Left = 0 Top = 153 - Width = 600 + Width = 772 Height = 167 + ActivePage = ResultTabSheet Align = alClient - BevelOuter = bvNone TabOrder = 1 - object ResultGrid: TDBGrid - Left = 0 - Top = 0 - Width = 600 - Height = 167 - Align = alClient - DataSource = TestSource - TabOrder = 0 - TitleFont.Charset = DEFAULT_CHARSET - TitleFont.Color = clWindowText - TitleFont.Height = -11 - TitleFont.Name = 'MS Sans Serif' - TitleFont.Style = [] + object ResultTabSheet: TTabSheet + Caption = 'Result' + object ResultGrid: TDBGrid + Left = 0 + Top = 0 + Width = 764 + Height = 139 + Align = alClient + DataSource = TestSource + TabOrder = 0 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -11 + TitleFont.Name = 'MS Sans Serif' + TitleFont.Style = [] + end end + object TranslatedQueryTabSheet: TTabSheet + Caption = 'Translated Query' + ImageIndex = 1 + object TranslatedQueryMemo: TMemo + Left = 0 + Top = 0 + Width = 764 + Height = 139 + Align = alClient + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Courier New' + Font.Style = [] + ParentFont = False + TabOrder = 0 + end + end end object TestSelector: TInstantSelector AfterScroll = TestSelectorAfterScroll + AfterClose = TestSelectorAfterClose Left = 32 Top = 192 end Modified: trunk/Demos/PrimerCross/QueryView.pas =================================================================== --- trunk/Demos/PrimerCross/QueryView.pas 2008-07-08 07:01:41 UTC (rev 781) +++ trunk/Demos/PrimerCross/QueryView.pas 2008-08-25 13:28:15 UTC (rev 782) @@ -18,7 +18,7 @@ QGraphics, QControls, QForms, QDialogs, QMask, QGrids, QDBGrids, QStdCtrls, QExtCtrls, QActnList, QMenus, QButtons, {$ENDIF} - BasicView, Db, InstantPresentation; + BasicView, Db, InstantPresentation, ComCtrls; type TQueryViewForm = class(TBasicViewForm) @@ -31,29 +31,42 @@ ExecuteAction: TAction; ExecuteButton: TButton; ResultGrid: TDBGrid; - ResultPanel: TPanel; + ResultPageControl: TPageControl; Splitter: TSplitter; TestSelector: TInstantSelector; TestSource: TDataSource; MaxCountEdit: TMaskEdit; NumberLabel: TLabel; + ResultTabSheet: TTabSheet; + TranslatedQueryTabSheet: TTabSheet; + TranslatedQueryMemo: TMemo; procedure ExecuteActionExecute(Sender: TObject); procedure ExampleComboBoxClick(Sender: TObject); procedure TestSelectorAfterScroll(DataSet: TDataSet); procedure ActionsUpdate(Action: TBasicAction; var Handled: Boolean); + procedure TestSelectorAfterClose(DataSet: TDataSet); + private + procedure LogStatement(const AString: string); + procedure UpdateTabSheets; protected procedure LoadExamples; public procedure FormCreate(Sender: TObject); override; + procedure FormShow(Sender: TObject); override; procedure Disconnect; override; + procedure Connect; override; + destructor Destroy; override; end; implementation {$R *.dfm} +uses + InstantPersistence, InstantBrokers, InstantConsts; + const - Examples: array[0..9, 0..1] of string = ( + Examples: array[0..10, 0..1] of string = ( ('All contacts', 'SELECT * FROM ANY TContact'), ('All companies', @@ -73,9 +86,19 @@ ('Corporations ordered descending by city', 'SELECT * FROM TCompany WHERE Name LIKE "%Corp%" ORDER BY City DESC'), ('Employees from same city as their employer', - 'SELECT * FROM TPerson WHERE City = Employer.City') + 'SELECT * FROM TPerson WHERE City = Employer.City'), + ('Categories of contacts in cities with names starting by A', + 'SELECT DISTINCT * FROM TCategory WHERE EXISTS(SELECT * FROM ANY TContact WHERE City LIKE ''A%'' USING Category)'), + ('Companies with at least one employee living in San Diego', + 'SELECT * FROM TCompany WHERE EXISTS(SELECT * FROM TPerson WHERE City = ''San Diego'' USING Employer)') ); +destructor TQueryViewForm.Destroy; +begin + InstantLogProc := nil; + inherited; +end; + procedure TQueryViewForm.Disconnect; begin TestSelector.Close; @@ -104,8 +127,17 @@ begin Caption := 'Query'; LoadExamples; + ResultPageControl.ActivePage := ResultTabSheet; end; +procedure TQueryViewForm.LogStatement(const AString: string); +begin + //Log only first statement + if TranslatedQueryMemo.Lines.Count = 0 then + TranslatedQueryMemo.Lines.Text := + Copy(AString, Length(InstantLogStatementBefore) + 1, MaxInt); +end; + procedure TQueryViewForm.LoadExamples; var I: Integer; @@ -135,4 +167,33 @@ ExecuteAction.Enabled := IsConnected and (CommandEdit.Text <> '') and Visible; end; +procedure TQueryViewForm.FormShow(Sender: TObject); +begin + inherited; + UpdateTabSheets; +end; + +procedure TQueryViewForm.UpdateTabSheets; +begin +{$IFDEF IO_STATEMENT_LOGGING} + TranslatedQueryTabSheet.TabVisible := Assigned(Connector) and (Connector.Broker is TInstantSQLBroker); + InstantLogProc := LogStatement; +{$ELSE} + TranslatedQueryTabSheet.TabVisible := False; + InstantLogProc := nil; +{$ENDIF} +end; + +procedure TQueryViewForm.Connect; +begin + inherited; + UpdateTabSheets; +end; + +procedure TQueryViewForm.TestSelectorAfterClose(DataSet: TDataSet); +begin + inherited; + TranslatedQueryMemo.Clear; +end; + end. Modified: trunk/Source/Brokers/XML/InstantXML.pas =================================================================== --- trunk/Source/Brokers/XML/InstantXML.pas 2008-07-08 07:01:41 UTC (rev 781) +++ trunk/Source/Brokers/XML/InstantXML.pas 2008-08-25 13:28:15 UTC (rev 782) @@ -22,7 +22,7 @@ * * Contributor(s): * Carlo Barazzetta, Adrea Petrelli, Nando Dessena, Marco Cant\xF9, - * Steven Mitchell + * Steven Mitchell, Andrea Magni * * ***** END LICENSE BLOCK ***** *) @@ -63,11 +63,11 @@ FConnected: Boolean; FRootFolder: string; FXMLFileFormat: TXMLFileFormat; - procedure CreateStorageDir(const AStorageName: string); function GetRootFolder: string; procedure SetRootFolder(const AValue: string); function ObjectUpdateCountFromFileName(const AFileName: string): Integer; protected + procedure CreateStorageDir(const AStorageName: string); procedure DoConnect; override; procedure DoDisconnect; override; function GetConnected: Boolean; override; @@ -109,7 +109,7 @@ function CheckConflict(AObject: TInstantObject; const AStorageName, AObjectId: string): Boolean; procedure LoadFileList(const AFileList: TStringList; - const AStorageNames: TStrings); + const AStorageNames: TStrings); virtual; published property RootFolder: string read GetRootFolder write SetRootFolder; property XMLFileFormat: TXMLFileFormat @@ -259,6 +259,7 @@ procedure SetParams(Value: TParams); override; function ObjectFetched(Index: Integer): Boolean; override; procedure SetStatement(const Value: string); override; + function InternalGetObjectReferenceId(Index: Integer) : string; override; property ObjectReferenceCount: Integer read GetObjectReferenceCount; property ObjectReferenceList: TObjectList read GetObjectReferenceList; property ObjectReferences[Index: Integer]: TInstantObjectReference read @@ -312,6 +313,8 @@ property TableMetadata: TInstantTableMetadata read GetTableMetadata; end; +procedure GlobalLoadFileList(const Path: string; FileList: TStringList); + implementation uses @@ -922,6 +925,13 @@ Result := ObjectReferenceCount; end; +function TInstantXMLQuery.InternalGetObjectReferenceId( + Index: Integer): string; +begin + Result := inherited InternalGetObjectReferenceId(Index)+ + '['+TInstantObjectReference(ObjectReferenceList[Index]).ObjectId+']'; +end; + function TInstantXMLQuery.InternalGetObjects(Index: Integer): TObject; begin Result := ObjectReferences[Index].Dereference(Connector); @@ -1245,9 +1255,9 @@ I: Integer; begin Result := inherited TranslateClassRef(ClassRef, Writer); - if TablePathCount > 0 then + if Context.TablePathCount > 0 then begin - (Query as TInstantXMLQuery).StorageNames.Text := TablePaths[0]; + (Query as TInstantXMLQuery).StorageNames.Text := Context.TablePaths[0]; (Query as TInstantXMLQuery).ObjectClassNames.Text := ClassRef.ObjectClassName; if ClassRef.Any then begin Modified: trunk/Source/Core/InstantBrokers.pas =================================================================== --- trunk/Source/Core/InstantBrokers.pas 2008-07-08 07:01:41 UTC (rev 781) +++ trunk/Source/Core/InstantBrokers.pas 2008-08-25 13:28:15 UTC (rev 782) @@ -26,7 +26,7 @@ * Contributor(s): * Carlo Barazzetta, Andrea Petrelli, Nando Dessena, Steven Mitchell, * Joao Morais, Cesar Coll, Uberto Barbini, David Taylor, Hanedi Salas, - * Riceball Lee, David Moorhouse + * Riceball Lee, David Moorhouse, Andrea Magni * * ***** END LICENSE BLOCK ***** *) @@ -778,60 +778,126 @@ property Query: TInstantQuery read GetQuery; end; - TInstantRelationalTranslator = class(TInstantQueryTranslator) + // Holds all information pertaining to a class used in a command. A command + // may use several classes (because of subqueries), and a relational translator + // has a tree of class context objects. + TInstantTranslationContext = class private + FChildContexts: TObjectList; + FClassRef: TInstantIQLClassRef; FCriteriaList: TStringList; + FDelimiters: string; + FObjectClassName: string; + FObjectClassMetadata: TInstantClassMetadata; + FQuote: Char; + FSpecifier: TInstantIQLSpecifier; + FStatement: TInstantIQLObject; FTablePathList: TStringList; + FParentContext: TInstantTranslationContext; + procedure AddJoin(const FromPath, FromField, ToPath, ToField: string); - function ConcatPath(const APathText, AttribName: string): string; - procedure DestroyCriteriaList; - procedure DestroyTablePathList; - function ExtractTarget(const PathStr: string): string; - function RootAttribToFieldName(const AttribName: string): string; function GetClassTablePath: string; + function GetChildContext(const AIndex: Integer): TInstantTranslationContext; + function GetChildContextCount: Integer; function GetCriteriaCount: Integer; function GetCriteriaList: TStringList; function GetCriterias(Index: Integer): string; function GetObjectClassMetadata: TInstantClassMetadata; - function GetQuery: TInstantCustomRelationalQuery; + function GetTableAlias: string; + function GetTableName: string; function GetTablePathAliases(Index: Integer): string; function GetTablePathCount: Integer; function GetTablePathList: TStringList; function GetTablePaths(Index: Integer): string; function PathToTablePath(const PathText: string): string; function PathToTarget(const PathText: string; - out TablePath, FieldName: string): TInstantAttributeMetadata; + out TablePath, FieldName: string; const AClassMetadata: TInstantClassMetadata = nil): TInstantAttributeMetadata; + procedure SetClassRef(const Value: TInstantIQLClassRef); + procedure SetObjectClassName(const Value: string); + procedure SetSpecifier(const Value: TInstantIQLSpecifier); + function TablePathToAlias(const TablePath: string): string; + function GetChildContextIndex: Integer; + function GetChildContextLevel: Integer; + protected + function AddCriteria(const Criteria: string): Integer; + function AddTablePath(const TablePath: string): Integer; + procedure CollectPaths(AObject: TInstantIQLObject; APathList: TList); + function IndexOfCriteria(const Criteria: string): Integer; + function IndexOfTablePath(const TablePath: string): Integer; + procedure Initialize; + procedure MakeJoins(Path: TInstantIQLPath); + procedure MakeTablePaths(Path: TInstantIQLPath); + function QuoteString(const Str: string): string; + + property CriteriaList: TStringList read GetCriteriaList; + property TablePathList: TStringList read GetTablePathList; + public + constructor Create(const AStatement: TInstantIQLObject; const AQuote: Char; + const ADelimiters: string; const AParentContext: TInstantTranslationContext = nil); + destructor Destroy; override; + + procedure AfterConstruction; override; + procedure Clear; + function AddChildContext(const AContext: TInstantTranslationContext): Integer; + function CreateChildContext(const AStatement: TInstantIQLObject): TInstantTranslationContext; + function FindAttributeMetadata(const PathText: string): TInstantAttributeMetadata; + function GetTablePathAlias(const ATablePath: string): string; + function GetSubqueryContext(const ASubQuery: TInstantIQLSubquery): TInstantTranslationContext; + function HasParentContext: Boolean; + function IndexOfChildContext(const AChildContext: TInstantTranslationContext): Integer; function Qualify(const TablePath, FieldName: string): string; function QualifyPath(const PathText: string): string; + function WriteCriterias(Writer: TInstantIQLWriter; IncludeWhere: Boolean): Boolean; + procedure WriteTables(Writer: TInstantIQLWriter); + + property ChildContext[const AIndex: Integer]: TInstantTranslationContext read GetChildContext; + property ChildContextCount: Integer read GetChildContextCount; + property ChildContextIndex: Integer read GetChildContextIndex; + property ChildContextLevel: Integer read GetChildContextLevel; + property ClassRef: TInstantIQLClassRef read FClassRef write SetClassRef; + property ClassTablePath: string read GetClassTablePath; + property CriteriaCount: Integer read GetCriteriaCount; + property Criterias[Index: Integer]: string read GetCriterias; + property Delimiters: string read FDelimiters; + property ObjectClassName: string read FObjectClassName write SetObjectClassName; + property ObjectClassMetadata: TInstantClassMetadata read GetObjectClassMetadata; + property ParentContext: TInstantTranslationContext read FParentContext; + property Quote: Char read FQuote; + property Specifier: TInstantIQLSpecifier read FSpecifier write SetSpecifier; + property Statement: TInstantIQLObject read FStatement; + property TableName: string read GetTableName; + property TableAlias: string read GetTableAlias; + property TablePathAliases[Index: Integer]: string read GetTablePathAliases; + property TablePathCount: Integer read GetTablePathCount; + property TablePaths[Index: Integer]: string read GetTablePaths; + end; + + + TInstantRelationalTranslator = class(TInstantQueryTranslator) + private + FContext: TInstantTranslationContext; + function GetQuery: TInstantCustomRelationalQuery; function ReplaceWildcard(const Str: string): string; - function TablePathToAlias(const TablePath: string): string; - procedure WriteAnd(Writer: TInstantIQLWriter); - function WriteCriterias(Writer: TInstantIQLWriter; IncludeWhere: Boolean): - Boolean; - procedure WriteTables(Writer: TInstantIQLWriter); - property CriteriaList: TStringList read GetCriteriaList; - property TablePathList: TStringList read GetTablePathList; function GetConnector: TInstantRelationalConnector; protected - function AddCriteria(const Criteria: string): Integer; - function AddTablePath(const TablePath: string): Integer; procedure BeforeTranslate; override; procedure Clear; override; procedure CollectObjects(AObject: TInstantIQLObject; - AClassType: TInstantIQLObjectClass; AList: TList); - procedure CollectPaths(AObject: TInstantIQLObject; APathList: TList); + AClassType: TInstantIQLObjectClass; AList: TList; + const AStopClassTypes: array of TInstantIQLObjectClass); function GetDelimiters: string; virtual; function GetQuote: Char; virtual; function GetWildcard: string; virtual; function HasConnector: Boolean; function IncludeOrderFields: Boolean; virtual; - function IndexOfCriteria(const Criteria: string): Integer; - function IndexOfTablePath(const TablePath: string): Integer; function InternalGetObjectClassMetadata: TInstantClassMetadata; virtual; - function IsRootAttribute(const AttributeName: string): Boolean; + function InSubquery(const AObject: TInstantIQLObject; out ASubQuery: TInstantIQLSubquery): Boolean; + // Returns True if the given attribute is a "root" attribute. Root + // attributes are Class and Id. + function IsRootAttribute(const AttributeName: string): Boolean; // funzione non membro function IsPrimary(AObject: TInstantIQLObject): Boolean; - procedure MakeJoins(Path: TInstantIQLPath); - procedure MakeTablePaths(Path: TInstantIQLPath); + function TranslateObject(AObject: TInstantIQLObject; + Writer: TInstantIQLWriter): Boolean; override; function TranslateClassRef(ClassRef: TInstantIQLClassRef; Writer: TInstantIQLWriter): Boolean; virtual; function TranslateClause(Clause: TInstantIQLClause; @@ -840,31 +906,26 @@ Writer: TInstantIQLWriter): Boolean; virtual; function TranslateFunction(AFunction: TInstantIQLFunction; Writer: TInstantIQLWriter): Boolean; virtual; + function TranslateSubqueryFunction(ASubqueryFunction: TInstantIQLSubqueryFunction; + Writer: TInstantIQLWriter): Boolean; virtual; function TranslateFunctionName(const FunctionName: string; Writer: TInstantIQLWriter): Boolean; virtual; + function TranslateSubqueryFunctionName(const ASubqueryFunctionName: string; + Writer: TInstantIQLWriter): Boolean; virtual; function TranslateKeyword(const Keyword: string; Writer: TInstantIQLWriter): Boolean; override; - function TranslateObject(AObject: TInstantIQLObject; - Writer: TInstantIQLWriter): Boolean; override; function TranslatePath(Path: TInstantIQLPath; Writer: TInstantIQLWriter): Boolean; virtual; function TranslateSpecifier(Specifier: TInstantIQLSpecifier; Writer: TInstantIQLWriter): Boolean; virtual; - property ClassTablePath: string read GetClassTablePath; property Connector: TInstantRelationalConnector read GetConnector; - property CriteriaCount: Integer read GetCriteriaCount; - property Criterias[Index: Integer]: string read GetCriterias; property Delimiters: string read GetDelimiters; - property ObjectClassMetadata: TInstantClassMetadata - read GetObjectClassMetadata; property Quote: Char read GetQuote; - property TablePathAliases[Index: Integer]: string read GetTablePathAliases; - property TablePathCount: Integer read GetTablePathCount; - property TablePaths[Index: Integer]: string read GetTablePaths; property Wildcard: string read GetWildcard; public + property Context: TInstantTranslationContext read FContext; destructor Destroy; override; - function QuoteString(const Str: string): string; + function QuoteString(const Str: string): string; // funzione non membro property Query: TInstantCustomRelationalQuery read GetQuery; end; @@ -967,9 +1028,18 @@ default True; end; + function ConcatPath(const APathText, AttribName: string): string; + function ExtractTarget(const PathStr: string): string; + function RootAttribToFieldName(const AttribName: string): string; + function IsRootAttribute(const AttributeName: string): Boolean; + procedure CollectObjects( + AObject: TInstantIQLObject; AClassType: TInstantIQLObjectClass; AList: TList; + const AStopClassTypes: array of TInstantIQLObjectClass); + procedure WriteAnd(Writer: TInstantIQLWriter); + var InstantLogProc: procedure (const AString: string) of object; - + implementation uses @@ -1033,6 +1103,71 @@ end; end; + +function ConcatPath(const APathText, AttribName: string): string; +begin + Result := Format('%s%s%s', [APathText, InstantDot, AttribName]); +end; + +function ExtractTarget(const PathStr: string): string; +var + I: Integer; +begin + I := InstantRightPos(InstantDot, PathStr); + Result := Copy(PathStr, I + 1, Length(PathStr) - I) +end; + +function RootAttribToFieldName(const AttribName: string): string; +begin + if SameText(AttribName, InstantClassFieldName) then + Result := InstantClassFieldName + else if SameText(AttribName, InstantIdFieldName) then + Result := InstantIdFieldName; +end; + +function IsRootAttribute(const AttributeName: string): Boolean; +begin + Result := SameText(AttributeName, InstantClassFieldName) or + SameText(AttributeName, InstantIdFieldName); +end; + +procedure CollectObjects( + AObject: TInstantIQLObject; AClassType: TInstantIQLObjectClass; AList: TList; + const AStopClassTypes: array of TInstantIQLObjectClass); +var + I: Integer; + LObject: TInstantIQLObject; + + function IsStopClassType(const AClassType: TClass): Boolean; + var + LClassTypeIndex: Integer; + begin + Result := True; + for LClassTypeIndex := Low(AStopClassTypes) to High(AStopClassTypes) do + if AClassType = AStopClassTypes[LClassTypeIndex] then + Exit; + Result := False; + end; + +begin + if not (Assigned(AObject) and Assigned(AList)) then + Exit; + for I := 0 to Pred(AObject.ObjectCount) do + begin + LObject := AObject[I]; + if IsStopClassType(LObject.ClassType) then + Continue; + if LObject is AClassType then + AList.Add(LObject); + CollectObjects(LObject, AClassType, AList, AStopClassTypes) + end; +end; + +procedure WriteAnd(Writer: TInstantIQLWriter); +begin + Writer.WriteString(' AND '); +end; + { TInstantCustomRelationalBroker } constructor TInstantCustomRelationalBroker.Create(AConnector: TInstantConnector); @@ -1295,7 +1430,7 @@ CachedStatement: TInstantStatement; begin {$IFDEF IO_STATEMENT_LOGGING} - InstantLogStatement('Before: ', AStatement, AParams); + InstantLogStatement(InstantLogStatementBefore, AStatement, AParams); {$ENDIF} Result := nil; if FStatementCacheCapacity <> 0 then @@ -4925,164 +5060,59 @@ destructor TInstantRelationalTranslator.Destroy; begin - DestroyTablePathList; - DestroyCriteriaList; + FreeAndNil(FContext); inherited; end; { TInstantRelationalTranslator } -function TInstantRelationalTranslator.AddCriteria( - const Criteria: string): Integer; -begin - if IndexOfCriteria(Criteria) = -1 then - Result := CriteriaList.Add(Criteria) - else - Result := -1; -end; - -procedure TInstantRelationalTranslator.AddJoin(const FromPath, FromField, - ToPath, ToField: string); -begin - AddCriteria(Format('%s = %s', [Qualify(FromPath, FromField), - Qualify(ToPath, ToField)])); -end; - -function TInstantRelationalTranslator.AddTablePath( - const TablePath: string): Integer; -begin - if IndexOfTablePath(TablePath) = -1 then - Result := TablePathList.Add(TablePath) - else - Result := -1; -end; - procedure TInstantRelationalTranslator.BeforeTranslate; - - procedure InitClassTablePath(List: TList); - - function FindAttributePath: TInstantIQLPath; - var - I: Integer; - begin - for I := 0 to Pred(List.Count) do - begin - Result := List[I]; - if not IsRootAttribute(Result.Text) then - Exit; - end; - Result := nil; - end; - - var - TablePath: string; - Path: TInstantIQLPath; - begin - if Command.ClassRef.Any then - TablePath := ObjectClassMetadata.TableName - else begin - Path := FindAttributePath; - if Assigned(Path) then - TablePath := PathToTablePath(Path.Attributes[0]) - else - TablePath := ObjectClassMetadata.TableName; - end; - AddTablePath(TablePath); - end; - - procedure InitCommandCriterias; - begin - if not Command.ClassRef.Any then - AddCriteria(Format('%s = %s', - [Qualify(ClassTablePath, InstantClassFieldName), - QuoteString(Command.ClassRef.ObjectClassName)])); - if Command.Specifier.IsPath then - AddCriteria(Format('%s <> %s%s', - [QualifyPath(ConcatPath(Command.Specifier.Text, InstantIdFieldName)), - Quote, Quote])); - end; - -var - I: Integer; - PathList: TList; begin if not Assigned(Command.ClassRef) then Exit; - PathList := TList.Create; - try - CollectPaths(Command, PathList); - InitClassTablePath(PathList); - for I := 0 to Pred(PathList.Count) do - begin - MakeTablePaths(PathList[I]); - MakeJoins(PathList[I]); - end; - InitCommandCriterias; - finally - PathList.Free; - end; + + FContext := TInstantTranslationContext.Create(Command, Quote, Delimiters); end; procedure TInstantRelationalTranslator.Clear; begin inherited; - DestroyTablePathList; - DestroyCriteriaList; + if Assigned(Context) then + Context.Clear; end; procedure TInstantRelationalTranslator.CollectObjects( - AObject: TInstantIQLObject; AClassType: TInstantIQLObjectClass; AList: TList); + AObject: TInstantIQLObject; AClassType: TInstantIQLObjectClass; AList: TList; + const AStopClassTypes: array of TInstantIQLObjectClass); var I: Integer; - Obj: TInstantIQLObject; + LObject: TInstantIQLObject; + + function IsStopClassType(const AClassType: TClass): Boolean; + var + LClassTypeIndex: Integer; + begin + Result := True; + for LClassTypeIndex := Low(AStopClassTypes) to High(AStopClassTypes) do + if AClassType = AStopClassTypes[LClassTypeIndex] then + Exit; + Result := False; + end; + begin if not (Assigned(AObject) and Assigned(AList)) then Exit; for I := 0 to Pred(AObject.ObjectCount) do begin - Obj := AObject[I]; - if Obj is AClassType then - AList.Add(Obj); - CollectObjects(Obj, AClassType, AList) + LObject := AObject[I]; + if IsStopClassType(LObject.ClassType) then + Continue; + if LObject is AClassType then + AList.Add(LObject); + CollectObjects(LObject, AClassType, AList, AStopClassTypes) end; end; -procedure TInstantRelationalTranslator.CollectPaths( - AObject: TInstantIQLObject; APathList: TList); -begin - CollectObjects(AObject, TInstantIQLPath, APathList); -end; - -function TInstantRelationalTranslator.ConcatPath(const APathText, - AttribName: string): string; -begin - Result := Format('%s%s%s', [APathText, InstantDot, AttribName]); -end; - -procedure TInstantRelationalTranslator.DestroyCriteriaList; -begin - FreeAndNil(FCriteriaList); -end; - -procedure TInstantRelationalTranslator.DestroyTablePathList; -begin - FreeAndNil(FTablePathList) -end; - -function TInstantRelationalTranslator.ExtractTarget( - const PathStr: string): string; -var - I: Integer; -begin - I := InstantRightPos(InstantDot, PathStr); - Result := Copy(PathStr, I + 1, Length(PathStr) - I) -end; - -function TInstantRelationalTranslator.GetClassTablePath: string; -begin - Result := TablePaths[0]; -end; - function TInstantRelationalTranslator.GetConnector: TInstantRelationalConnector; begin if HasConnector then @@ -5091,23 +5121,6 @@ Result := nil; end; -function TInstantRelationalTranslator.GetCriteriaCount: Integer; -begin - Result := CriteriaList.Count; -end; - -function TInstantRelationalTranslator.GetCriteriaList: TStringList; -begin - if not Assigned(FCriteriaList) then - FCriteriaList := TStringList.Create; - Result := FCriteriaList; -end; - -function TInstantRelationalTranslator.GetCriterias(Index: Integer): string; -begin - Result := CriteriaList.Strings[Index]; -end; - function TInstantRelationalTranslator.GetDelimiters: string; begin if HasConnector then @@ -5116,14 +5129,6 @@ Result := ''; end; -function TInstantRelationalTranslator.GetObjectClassMetadata: TInstantClassMetadata; -begin - Result := InternalGetObjectClassMetadata; - if not Assigned(Result) then - raise EInstantError.CreateFmt(SUnassignedClassMetadata, - [Command.ObjectClassName]); -end; - function TInstantRelationalTranslator.GetQuery: TInstantCustomRelationalQuery; begin Result := inherited Query as TInstantCustomRelationalQuery; @@ -5137,33 +5142,6 @@ Result := '"'; end; -function TInstantRelationalTranslator.GetTablePathAliases( - Index: Integer): string; -begin - if Index < TablePathList.Count then - Result := Format('t%d', [Succ(Index)]) - else - Result := ''; -end; - -function TInstantRelationalTranslator.GetTablePathCount: Integer; -begin - Result := TablePathList.Count; -end; - -function TInstantRelationalTranslator.GetTablePathList: TStringList; -begin - if not Assigned(FTablePathList) then - FTablePathList := TStringList.Create; - Result := FTablePathList; -end; - -function TInstantRelationalTranslator.GetTablePaths( - Index: Integer): string; -begin - Result := TablePathList[Index]; -end; - function TInstantRelationalTranslator.GetWildcard: string; begin if HasConnector then @@ -5182,16 +5160,19 @@ Result := False; end; -function TInstantRelationalTranslator.IndexOfCriteria( - const Criteria: string): Integer; +function TInstantRelationalTranslator.InSubquery( + const AObject: TInstantIQLObject; + out ASubQuery: TInstantIQLSubquery): Boolean; begin - Result := CriteriaList.IndexOf(Criteria); -end; + if AObject is TInstantIQLSubquery then begin + Result := True; + ASubQuery := TInstantIQLSubquery(AObject); + end + else + Result := False; -function TInstantRelationalTranslator.IndexOfTablePath( - const TablePath: string): Integer; -begin - Result := TablePathList.IndexOf(TablePath); + if not Result and Assigned(AObject.Owner) then + Result := InSubquery(AObject.Owner, ASubQuery); end; function TInstantRelationalTranslator.InternalGetObjectClassMetadata: TInstantClassMetadata; @@ -5216,160 +5197,6 @@ SameText(AttributeName, InstantIdFieldName); end; -procedure TInstantRelationalTranslator.MakeJoins(Path: TInstantIQLPath); - - procedure MakePathJoins(Path: TInstantIQLPath); - var - I: Integer; - PathText, FromPath, ToPath, FromField, ToField: string; - begin - if Path.AttributeCount > 1 then - begin - PathToTarget(Path.SubPath[0], FromPath, FromField); - for I := 1 to Pred(Path.AttributeCount) do - begin - PathText := Path.SubPath[I]; - if not IsRootAttribute(ExtractTarget(PathText)) then - begin - PathToTarget(PathText, ToPath, ToField); - AddJoin(FromPath, FromField + InstantClassFieldName, ToPath, - InstantClassFieldName); - AddJoin(FromPath, FromField + InstantIdFieldName, ToPath, - InstantIdFieldName); - FromPath := ToPath; - FromField := ToField; - end; - end; - end; - end; - - procedure MakeClassJoin(Path: TInstantIQLPath); - var - TablePath: string; - begin - if Path.HasAttributes then - begin - TablePath := PathToTablePath(Path.SubPath[0]); - if TablePath <> ClassTablePath then - begin - AddJoin(ClassTablePath, InstantClassFieldName, - TablePath, InstantClassFieldName); - AddJoin(ClassTablePath, InstantIdFieldName, - TablePath, InstantIdFieldName); - end; - end; - end; - -begin - if not Assigned(Path) then - Exit; - MakeClassJoin(Path); - MakePathJoins(Path); -end; - -procedure TInstantRelationalTranslator.MakeTablePaths(Path: TInstantIQLPath); -var - I: Integer; - TablePath: string; -begin - if not Assigned(Path) or IsRootAttribute(Path.Text) then - Exit; - for I := 0 to Pred(Path.AttributeCount) do - begin - TablePath := PathToTablePath(Path.SubPath[I]); - if IndexOfTablePath(TablePath) = -1 then - AddTablePath(TablePath); - end; -end; - -function TInstantRelationalTranslator.PathToTablePath( - const PathText: string): string; -var - FieldName: string; -begin - PathToTarget(Pathtext, Result, FieldName); -end; - -function TInstantRelationalTranslator.PathToTarget(const PathText: string; - out TablePath, FieldName: string): TInstantAttributeMetadata; -var - I: Integer; - AttribList: TStringList; - ClassMeta: TInstantClassMetadata; - AttribName: string; - Map: TInstantAttributeMap; -begin - Result := nil; - if IsRootAttribute(PathText) then - begin - TablePath := ClassTablePath; - FieldName := RootAttribToFieldName(PathText); - end else - begin - ClassMeta := ObjectClassMetadata; - AttribList := TStringList.Create; - try - InstantStrToList(PathText, AttribList, [InstantDot]); - for I := 0 to Pred(AttribList.Count) do - begin - AttribName := AttribList[I]; - if IsRootAttribute(AttribName) then - begin - if Assigned(Result) and - not Result.IsAttributeClass(TInstantReference) then - raise EInstantError.CreateFmt(SUnableToQueryAttribute, - [Result.ClassMetadataName, Result.Name]); - FieldName := FieldName + RootAttribToFieldName(AttribName); - end else - begin - Result := ClassMeta.MemberMap.Find(AttribName); - if Assigned(Result) then - begin - while Assigned(ClassMeta) and not ClassMeta.IsStored do - ClassMeta := ClassMeta.Parent; - if Assigned(ClassMeta) then - begin - Map := ClassMeta.StorageMaps.FindMap(AttribName); - if Assigned(Map) then - begin - if I > 0 then - TablePath := TablePath + InstantDot; - TablePath := TablePath + Map.Name; - FieldName := Result.FieldName; - ClassMeta := Result.ObjectClassMetadata; - end else - raise EInstantError.CreateFmt(SAttributeNotQueryable, - [Result.ClassName, Result.Name, Result.ClassMetadataName]); - end else - raise EInstantError.CreateFmt(SClassNotQueryable, - [Result.ClassMetadataName]); - end else - raise EInstantError.CreateFmt(SAttributeNotFound, - [AttribName, ClassMeta.Name]); - end; - end; - finally - AttribList.Free; - end; - end; -end; - -function TInstantRelationalTranslator.Qualify(const TablePath, - FieldName: string): string; -begin - Result := Format('%s.%s', [TablePathToAlias(TablePath), - InstantEmbrace(FieldName, Delimiters)]); -end; - -function TInstantRelationalTranslator.QualifyPath(const - PathText: string): string; -var - TablePath, FieldName: string; -begin - PathToTarget(PathText, TablePath, FieldName); - Result := Qualify(TablePath, FieldName); -end; - function TInstantRelationalTranslator.QuoteString(const Str: string): string; begin Result := InstantQuote(Str, Quote); @@ -5389,51 +5216,70 @@ Result := Str; end; -function TInstantRelationalTranslator.RootAttribToFieldName( - const AttribName: string): string; -begin - if SameText(AttribName, InstantClassFieldName) then - Result := InstantClassFieldName - else if SameText(AttribName, InstantIdFieldName) then - Result := InstantIdFieldName; -end; - -function TInstantRelationalTranslator.TablePathToAlias( - const TablePath: string): string; -begin - Result := TablePathAliases[IndexOfTablePath(TablePath)]; -end; - function TInstantRelationalTranslator.TranslateClassRef( ClassRef: TInstantIQLClassRef; Writer: TInstantIQLWriter): Boolean; +var + LSubContext: TInstantTranslationContext; + LSubQuery: TInstantIQLSubquery; begin - Result := Assigned(ClassRef) and IsPrimary(ClassRef) and Assigned(Writer); + Result := Assigned(ClassRef) and Assigned(Writer); if Result then - begin - WriteTables(Writer); - if not Assigned(Command.Clause) then - WriteCriterias(Writer, True); - end; + if IsPrimary(ClassRef) then + begin + Context.WriteTables(Writer); + if not Assigned(Command.Clause) then + Context.WriteCriterias(Writer, True); + end + else if Assigned(ClassRef.Owner) and (ClassRef.Owner is TInstantIQLSubquery) then + begin + LSubQuery := TInstantIQLSubQuery(ClassRef.Owner); + LSubContext := Context.GetSubqueryContext(LSubQuery); + + LSubContext.WriteTables(Writer); + if not Assigned(LSubQuery.Clause) then + LSubContext.WriteCriterias(Writer, True); + end + else + Result := False; end; function TInstantRelationalTranslator.TranslateClause( Clause: TInstantIQLClause; Writer: TInstantIQLWriter): Boolean; +var + LSubQuery: TInstantIQLSubquery; + LSubContext: TInstantTranslationContext; begin - Result := Assigned(Clause) and IsPrimary(Clause) and Assigned(Writer); + Result := Assigned(Clause) and Assigned(Writer); if Result then begin - if WriteCriterias(Writer, False) then - WriteAnd(Writer); - Writer.WriteString('('); - WriteObject(Clause, Writer); - Writer.WriteString(')'); - end + if IsPrimary(Clause) then begin + if Context.WriteCriterias(Writer, False) then + WriteAnd(Writer); + Writer.WriteString('('); + WriteObject(Clause, Writer); + Writer.WriteString(')'); + end + else if Assigned(Clause.Owner) and (Clause.Owner is TInstantIQLSubquery) then begin + LSubQuery := TInstantIQLSubQuery(Clause.Owner); + LSubContext := Context.GetSubqueryContext(LSubQuery); + + if LSubContext.WriteCriterias(Writer, False) then + WriteAnd(Writer); + Writer.WriteString('('); + WriteObject(Clause, Writer); + Writer.WriteString(')'); + end + else + Result := False; + end; end; function TInstantRelationalTranslator.TranslateConstant( Constant: TInstantIQLConstant; Writer: TInstantIQLWriter): Boolean; var S: string; + LSubContext: TInstantTranslationContext; + LSubQuery: TInstantIQLSubquery; begin if Assigned(Constant) and Assigned(Writer) then begin @@ -5444,8 +5290,18 @@ Result := True; end else if SameText(S, 'SELF') then begin - Writer.WriteString(Qualify(ClassTablePath, InstantIdFieldName)); - Result := True; + if InSubquery(Constant, LSubQuery) then + begin + LSubContext := Context.GetSubqueryContext(LSubQuery); + Writer.WriteString(LSubContext.Qualify(LSubContext.ClassTablePath, InstantIdFieldName)); + Result := True; + end + else + begin + Writer.WriteString(Context.Qualify(Context.ClassTablePath, InstantIdFieldName)); + Result := True; + end + end else if (Length(S) > 0) and (S[1] = '"') then begin S := InstantUnquote(S, S[1]); @@ -5498,6 +5354,10 @@ Result := TranslatePath(TInstantIQLPath(AObject), Writer) else if AObject is TInstantIQLConstant then Result := TranslateConstant(TInstantIQLConstant(AObject), Writer) +{ else if AObject is TInstantIQLSubquery then + Result := TranslateSubquery(TInstantIQLSubquery(AObject), Writer)} + else if AObject is TInstantIQLSubqueryFunction then + Result := TranslateSubqueryFunction(TInstantIQLSubqueryFunction(AObject), Writer) else if AObject is TInstantIQLFunction then Result := TranslateFunction(TInstantIQLFunction(AObject), Writer) else @@ -5509,16 +5369,24 @@ var PathText, TablePath, FieldName: string; AttribMeta: TInstantAttributeMetadata; + LSubQuery: TInstantIQLSubquery; + LContext: TInstantTranslationContext; begin Result := Assigned(Path) and Assigned(Writer); if Result then begin PathText := Path.Text; - AttribMeta := PathToTarget(PathText, TablePath, FieldName); + if InSubquery(Path, LSubQuery) then + LContext := Context.GetSubqueryContext(LSubQuery) + else + LContext := Context; + + AttribMeta := LContext.PathToTarget(PathText, TablePath, FieldName); + if Assigned(AttribMeta) and (AttribMeta.Category = acElement) and not IsRootAttribute(ExtractTarget(PathText)) then FieldName := FieldName + InstantIdFieldName; - Writer.WriteString(Qualify(TablePath, FieldName)); + Writer.WriteString(LContext.Qualify(TablePath, FieldName)); end; end; @@ -5547,7 +5415,7 @@ begin PathList := TList.Create; try - CollectObjects(Command.Order, TInstantIQLOperand, PathList); + CollectObjects(Command.Order, TInstantIQLOperand, PathList, [TInstantIQLSubquery]); for I := 0 to Pred(PathList.Count) do begin Operand := PathList[I]; @@ -5567,19 +5435,28 @@ var ClassQual, IdQual, PathText: string; + LContext: TInstantTranslationContext; + LSubQuery: TInstantIQLSubquery; begin - Result := Assigned(Specifier) and IsPrimary(Specifier) and Assigned(Writer); + Result := Assigned(Specifier) and Assigned(Writer); if Result then begin + LContext := Context; + if (not IsPrimary(Specifier)) and Assigned(Specifier.Owner) and (Specifier.Owner is TInstantIQLSubquery) then + begin + LSubQuery := TInstantIQLSubQuery(Specifier.Owner); + LContext := Context.GetSubqueryContext(LSubQuery); + end; + if Specifier.Operand is TInstantIQLPath then begin PathText := TInstantIQLPath(Specifier.Operand).Text; - ClassQual := QualifyPath(ConcatPath(PathText, InstantClassFieldName)); - IdQual := QualifyPath(ConcatPath(PathText, InstantIdFieldName)); + ClassQual := LContext.QualifyPath(ConcatPath(PathText, InstantClassFieldName)); + IdQual := LContext.QualifyPath(ConcatPath(PathText, InstantIdFieldName)); end else begin - ClassQual := QualifyPath(InstantClassFieldName); - IdQual := QualifyPath(InstantIdFieldName); + ClassQual := LContext.Qual... [truncated message content] |
From: <na...@us...> - 2009-07-07 11:00:05
|
Revision: 802 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=802&view=rev Author: nandod Date: 2009-07-07 10:59:47 +0000 (Tue, 07 Jul 2009) Log Message: ----------- * A first set of changes for D2009 compatibility: Core, Design, BDE, XML. Still WIP. Modified Paths: -------------- trunk/Source/Core/InstantBrokers.pas trunk/Source/Core/InstantClasses.pas trunk/Source/Core/InstantCode.pas trunk/Source/Core/InstantCommand.pas trunk/Source/Core/InstantExplorer.pas trunk/Source/Core/InstantMetadata.pas trunk/Source/Core/InstantPersistence.pas trunk/Source/Core/InstantPresentation.pas trunk/Source/Core/InstantRtti.pas trunk/Source/Core/InstantTextFiler.pas trunk/Source/Core/InstantUtils.pas trunk/Source/Design/InstantAttributeEditor.dfm trunk/Source/Design/InstantAttributeEditor.pas trunk/Source/Design/InstantModelExpert.pas trunk/Source/Design/InstantOTA.pas trunk/Source/InstantDefines.inc trunk/Tests/InstantMock.pas trunk/Tests/TestIO.dpr trunk/Tests/TestIO.mdr trunk/Tests/TestIO.mdrt trunk/Tests/TestIO.mdx trunk/Tests/TestIO.mdxt trunk/Tests/TestInstantClasses.pas trunk/Tests/TestInstantRtti.pas trunk/Tests/TestModel.pas trunk/Tests/ubmock/src/testutils.pas Added Paths: ----------- trunk/Demos/Intro/Intro_D2007.dproj trunk/Demos/Intro/Intro_D2007.mdr trunk/Demos/Intro/Intro_D2009.dproj trunk/Source/Brokers/XML/D2009/ trunk/Source/Brokers/XML/D2009/DclIOXML.dpk trunk/Source/Brokers/XML/D2009/DclIOXML.dproj trunk/Source/Brokers/XML/D2009/DclIOXML.res trunk/Source/Brokers/XML/D2009/IOXML.dpk trunk/Source/Brokers/XML/D2009/IOXML.dproj trunk/Source/Brokers/XML/D2009/IOXML.res trunk/Source/PackageGroups/D2009/ trunk/Source/PackageGroups/D2009/CorePackages.groupproj trunk/Tests/DUnit/ trunk/Tests/DUnit/src/ trunk/Tests/DUnit/src/TestFramework.pas trunk/Tests/TestIO_D2007.dproj trunk/Tests/TestIO_D2007.mdr trunk/Tests/TestIO_D2009.dproj trunk/Tests/TestIO_D2009.mdr Added: trunk/Demos/Intro/Intro_D2007.dproj =================================================================== --- trunk/Demos/Intro/Intro_D2007.dproj (rev 0) +++ trunk/Demos/Intro/Intro_D2007.dproj 2009-07-07 10:59:47 UTC (rev 802) @@ -0,0 +1,103 @@ +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{5e7fed32-48a7-4d66-a1ed-fbf2fb9c43c1}</ProjectGuid> + <MainSource>Intro.dpr</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>Intro.exe</DCC_DependencyCheckOutputName> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <Version>7.0</Version> + <DCC_WriteableConstants>True</DCC_WriteableConstants> + <DCC_Optimize>False</DCC_Optimize> + <DCC_GenerateStackFrames>True</DCC_GenerateStackFrames> + <DCC_DebugInfoInExe>True</DCC_DebugInfoInExe> + <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\BDE</DCC_UnitSearchPath> + <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\BDE</DCC_ResourcePath> + <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\BDE</DCC_ObjPath> + <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\BDE</DCC_IncludePath> + <DCC_UNSAFE_TYPE>True</DCC_UNSAFE_TYPE> + <DCC_UNSAFE_CODE>True</DCC_UNSAFE_CODE> + <DCC_UNSAFE_CAST>True</DCC_UNSAFE_CAST> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <Version>7.0</Version> + <DCC_WriteableConstants>True</DCC_WriteableConstants> + <DCC_Optimize>False</DCC_Optimize> + <DCC_GenerateStackFrames>True</DCC_GenerateStackFrames> + <DCC_DebugInfoInExe>True</DCC_DebugInfoInExe> + <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\BDE</DCC_UnitSearchPath> + <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\BDE</DCC_ResourcePath> + <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\BDE</DCC_ObjPath> + <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\BDE</DCC_IncludePath> + <DCC_Define>DEBUG</DCC_Define> + <DCC_UNSAFE_TYPE>True</DCC_UNSAFE_TYPE> + <DCC_UNSAFE_CODE>True</DCC_UNSAFE_CODE> + <DCC_UNSAFE_CAST>True</DCC_UNSAFE_CAST> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality</Borland.Personality> + <Borland.ProjectType>VCLApplication</Borland.ProjectType> + <BorlandProject> +<BorlandProject xmlns=""> <Delphi.Personality> <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <Language> + <Language Name="ProjectLang">$00000406</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">1030</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> + <Source> + <Source Name="MainSource">Intro.dpr</Source> + </Source> + </Delphi.Personality> </BorlandProject></BorlandProject> + </ProjectExtensions> + <ItemGroup /> + <ItemGroup> + <DelphiCompile Include="Intro.dpr"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="CompanyEdit.pas"> + <Form>CompanyEditForm</Form> + </DCCReference> + <DCCReference Include="ContactEdit.pas"> + <Form>ContactEditForm</Form> + </DCCReference> + <DCCReference Include="Main.pas"> + <Form>MainForm</Form> + </DCCReference> + <DCCReference Include="Model.pas" /> + <DCCReference Include="PersonEdit.pas"> + <Form>PersonEditForm</Form> + </DCCReference> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" /> +</Project> \ No newline at end of file Property changes on: trunk/Demos/Intro/Intro_D2007.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Demos/Intro/Intro_D2007.mdr =================================================================== (Binary files differ) Property changes on: trunk/Demos/Intro/Intro_D2007.mdr ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Demos/Intro/Intro_D2009.dproj =================================================================== --- trunk/Demos/Intro/Intro_D2009.dproj (rev 0) +++ trunk/Demos/Intro/Intro_D2009.dproj 2009-07-07 10:59:47 UTC (rev 802) @@ -0,0 +1,141 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{5e7fed32-48a7-4d66-a1ed-fbf2fb9c43c1}</ProjectGuid> + <MainSource>Intro.dpr</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>Intro.exe</DCC_DependencyCheckOutputName> + <ProjectVersion>12.0</ProjectVersion> + <Config Condition="'$(Config)'==''">Release</Config> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_UsePackage>vclx;vcl;dbrtl;Rave76VCL;bdertl;rtl;vclactnband;vcldb;vcldbx;dsnap;dsnapcon;TeeUI;TeeDB;Tee;adortl;vclib;ibxpress;IndyCore;IndySystem;IndyProtocols;xmlrtl;inet;intrawebdb_100_120;Intraweb_100_120;VclSmp;vclie;websnap;webdsnap;inetdbbde;inetdbxpress;soaprtl;vclribbon;dbexpress;DbxCommonDriver;DataSnapIndy10ServerTransport;DataSnapProviderClient;DataSnapServer;DbxClientDriver;DBXInterBaseDriver;DBXMySQLDriver;dbxcds;DBXSybaseASEDriver;DBXSybaseASADriver;DBXOracleDriver;DBXMSSQLDriver;DBXInformixDriver;DBXDb2Driver;IWEliteSuite_100_Delphi2009;InstantBDExpress;IOCore;IOBDE</DCC_UsePackage> + <DCC_DependencyCheckOutputName>Intro.exe</DCC_DependencyCheckOutputName> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <Version>7.0</Version> + <DCC_WriteableConstants>True</DCC_WriteableConstants> + <DCC_Optimize>False</DCC_Optimize> + <DCC_GenerateStackFrames>True</DCC_GenerateStackFrames> + <DCC_DebugInfoInExe>True</DCC_DebugInfoInExe> + <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\BDE;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> + <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\BDE;$(DCC_ResourcePath)</DCC_ResourcePath> + <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\BDE;$(DCC_ObjPath)</DCC_ObjPath> + <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\BDE;$(DCC_IncludePath)</DCC_IncludePath> + <DCC_UNSAFE_TYPE>True</DCC_UNSAFE_TYPE> + <DCC_UNSAFE_CODE>True</DCC_UNSAFE_CODE> + <DCC_UNSAFE_CAST>True</DCC_UNSAFE_CAST> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <DCC_DebugDCUs>true</DCC_DebugDCUs> + <Version>7.0</Version> + <DCC_WriteableConstants>True</DCC_WriteableConstants> + <DCC_Optimize>False</DCC_Optimize> + <DCC_GenerateStackFrames>True</DCC_GenerateStackFrames> + <DCC_DebugInfoInExe>True</DCC_DebugInfoInExe> + <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\BDE;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> + <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\BDE;$(DCC_ResourcePath)</DCC_ResourcePath> + <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\BDE;$(DCC_ObjPath)</DCC_ObjPath> + <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\BDE;$(DCC_IncludePath)</DCC_IncludePath> + <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> + <DCC_UNSAFE_TYPE>True</DCC_UNSAFE_TYPE> + <DCC_UNSAFE_CODE>True</DCC_UNSAFE_CODE> + <DCC_UNSAFE_CAST>True</DCC_UNSAFE_CAST> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>VCLApplication</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <Language> + <Language Name="ProjectLang">$00000406</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">1030</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName"/> + <VersionInfoKeys Name="FileDescription"/> + <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName"/> + <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Source> + <Source Name="MainSource">Intro.dpr</Source> + </Source> + <Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\dcloffice2k120.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\dclofficexp120.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> + </Excluded_Packages> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + <ItemGroup> + <DelphiCompile Include="Intro.dpr"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="Model.pas"/> + <DCCReference Include="Main.pas"> + <Form>MainForm</Form> + </DCCReference> + <DCCReference Include="ContactEdit.pas"> + <Form>ContactEditForm</Form> + </DCCReference> + <DCCReference Include="PersonEdit.pas"> + <Form>PersonEditForm</Form> + </DCCReference> + <DCCReference Include="CompanyEdit.pas"> + <Form>CompanyEditForm</Form> + </DCCReference> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <ItemGroup/> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + </Project> Property changes on: trunk/Demos/Intro/Intro_D2009.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Property changes on: trunk/Source/Brokers/XML/D2009 ___________________________________________________________________ Added: svn:ignore + *.dcu __history *.local Added: trunk/Source/Brokers/XML/D2009/DclIOXML.dpk =================================================================== --- trunk/Source/Brokers/XML/D2009/DclIOXML.dpk (rev 0) +++ trunk/Source/Brokers/XML/D2009/DclIOXML.dpk 2009-07-07 10:59:47 UTC (rev 802) @@ -0,0 +1,40 @@ +package DclIOXML; + +{$R *.res} +{$R '..\InstantXML.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS ON} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects XML Design-Time Support (Delphi 2009)'} +{$LIBSUFFIX '_D12'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + vcl, + rtl, + vclx, + IOXML; + +contains + InstantXMLReg in '..\InstantXMLReg.pas'; + +end. Property changes on: trunk/Source/Brokers/XML/D2009/DclIOXML.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/XML/D2009/DclIOXML.dproj =================================================================== --- trunk/Source/Brokers/XML/D2009/DclIOXML.dproj (rev 0) +++ trunk/Source/Brokers/XML/D2009/DclIOXML.dproj 2009-07-07 10:59:47 UTC (rev 802) @@ -0,0 +1,121 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{82c41017-7d52-4f3f-92f1-c69cd9f9b523}</ProjectGuid> + <MainSource>DclIOXML.dpk</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>C:\Users\nandod\Documents\RAD Studio\5.0\Bpl\DclIOXML_D11.bpl</DCC_DependencyCheckOutputName> + <ProjectVersion>12.0</ProjectVersion> + <Config Condition="'$(Config)'==''">Debug</Config> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DesignOnlyPackage>true</DesignOnlyPackage> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\6.0\Bpl\DclIOXML_D12.bpl</DCC_DependencyCheckOutputName> + <DCC_TypedAtParameter>true</DCC_TypedAtParameter> + <DCC_Description>InstantObjects XML Design-Time Support (Delphi 2009)</DCC_Description> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <GenPackage>true</GenPackage> + <DllSuffix>_D12</DllSuffix> + <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <Version>7.0</Version> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_TypedAtParameter>True</DCC_TypedAtParameter> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <Version>7.0</Version> + <DCC_TypedAtParameter>True</DCC_TypedAtParameter> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Compiler> + <Compiler Name="UsePackages">False</Compiler> + <Compiler Name="Packages"/> + </Compiler> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">2</VersionInfo> + <VersionInfo Name="MinorVer">1</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">1040</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName">www.instantobjects.org</VersionInfoKeys> + <VersionInfoKeys Name="FileDescription">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="ProductVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Source> + <Source Name="MainSource">DclIOXML.dpk</Source> + </Source> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + <ItemGroup> + <DelphiCompile Include="DclIOXML.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="..\InstantXML.dcr"/> + <DCCReference Include="vcl.dcp"/> + <DCCReference Include="rtl.dcp"/> + <DCCReference Include="vclx.dcp"/> + <DCCReference Include="IOXML.dcp"/> + <DCCReference Include="..\InstantXMLReg.pas"/> + <DCCReference Include="..\InstantXML.dcr"/> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + </Project> Property changes on: trunk/Source/Brokers/XML/D2009/DclIOXML.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/XML/D2009/DclIOXML.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/XML/D2009/DclIOXML.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/XML/D2009/IOXML.dpk =================================================================== --- trunk/Source/Brokers/XML/D2009/IOXML.dpk (rev 0) +++ trunk/Source/Brokers/XML/D2009/IOXML.dpk 2009-07-07 10:59:47 UTC (rev 802) @@ -0,0 +1,41 @@ +package IOXML; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS ON} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects XML Run-Time Support (Delphi 2009)'} +{$LIBSUFFIX '_D12'} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + vcl, + rtl, + vclx, + IOCore; + +contains + InstantXMLCatalog in '..\InstantXMLCatalog.pas', + InstantXMLConnectionDefEdit in '..\InstantXMLConnectionDefEdit.pas' {InstantXMLConnectionDefEditForm}, + InstantXML in '..\InstantXML.pas'; + +end. Property changes on: trunk/Source/Brokers/XML/D2009/IOXML.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/XML/D2009/IOXML.dproj =================================================================== --- trunk/Source/Brokers/XML/D2009/IOXML.dproj (rev 0) +++ trunk/Source/Brokers/XML/D2009/IOXML.dproj 2009-07-07 10:59:47 UTC (rev 802) @@ -0,0 +1,125 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{d2f12d26-2127-4834-8d0e-e4c9bfabb985}</ProjectGuid> + <MainSource>IOXML.dpk</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>C:\Documents and Settings\nandod\Documenti\RAD Studio\Projects\Bpl\IOXML_D11.bpl</DCC_DependencyCheckOutputName> + <ProjectVersion>12.0</ProjectVersion> + <Config Condition="'$(Config)'==''">Debug</Config> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\6.0\Bpl\IOXML_D12.bpl</DCC_DependencyCheckOutputName> + <DCC_ImageBase>00400000</DCC_ImageBase> + <RuntimeOnlyPackage>true</RuntimeOnlyPackage> + <DCC_TypedAtParameter>true</DCC_TypedAtParameter> + <DCC_Description>InstantObjects XML Run-Time Support (Delphi 2009)</DCC_Description> + <DesignOnlyPackage>false</DesignOnlyPackage> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <GenPackage>true</GenPackage> + <DllSuffix>_D12</DllSuffix> + <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <Version>7.0</Version> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_TypedAtParameter>True</DCC_TypedAtParameter> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> + <Version>7.0</Version> + <DCC_TypedAtParameter>True</DCC_TypedAtParameter> + </PropertyGroup> + <ItemGroup> + <DelphiCompile Include="IOXML.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="vcl.dcp"/> + <DCCReference Include="rtl.dcp"/> + <DCCReference Include="vclx.dcp"/> + <DCCReference Include="IOCore.dcp"/> + <DCCReference Include="..\InstantXMLCatalog.pas"/> + <DCCReference Include="..\InstantXMLConnectionDefEdit.pas"> + <Form>InstantXMLConnectionDefEditForm</Form> + </DCCReference> + <DCCReference Include="..\InstantXML.pas"/> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Compiler> + <Compiler Name="UsePackages">False</Compiler> + <Compiler Name="Packages"/> + </Compiler> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">2</VersionInfo> + <VersionInfo Name="MinorVer">1</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">1040</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName">www.instantobjects.org</VersionInfoKeys> + <VersionInfoKeys Name="FileDescription">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="ProductVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Source> + <Source Name="MainSource">IOXML.dpk</Source> + </Source> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + </Project> Property changes on: trunk/Source/Brokers/XML/D2009/IOXML.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/XML/D2009/IOXML.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/XML/D2009/IOXML.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/Source/Core/InstantBrokers.pas =================================================================== --- trunk/Source/Core/InstantBrokers.pas 2009-04-07 10:07:35 UTC (rev 801) +++ trunk/Source/Core/InstantBrokers.pas 2009-07-07 10:59:47 UTC (rev 802) @@ -2329,7 +2329,7 @@ procedure TInstantNavigationalResolver.ReadPart(Attribute: TInstantPart); var Field: TField; - Stream: TInstantStringStream; + Stream: TStringStream; PartClassName: string; ObjID: string; begin @@ -2356,7 +2356,7 @@ Field := FieldByName(Metadata.FieldName); if not FieldHasObjects(Field) then Exit; - Stream := TInstantStringStream.Create(Field.AsString); + Stream := TStringStream.Create(Field.AsString); try LoadObjectFromStream(Stream); finally @@ -2369,7 +2369,7 @@ procedure TInstantNavigationalResolver.ReadParts(Attribute: TInstantParts); var Field: TField; - Stream: TInstantStringStream; + Stream: TStringStream; LinkDatasetResolver: TInstantNavigationalLinkResolver; begin with Attribute do @@ -2386,7 +2386,7 @@ Field := FieldByName(Metadata.FieldName); if not FieldHasObjects(Field) then Exit; - Stream := TInstantStringStream.Create(Field.AsString); + Stream := TStringStream.Create(Field.AsString); try LoadObjectsFromStream(Stream); finally @@ -2413,7 +2413,7 @@ Attribute: TInstantReferences); var Field: TField; - Stream: TInstantStringStream; + Stream: TStringStream; LinkDatasetResolver: TInstantNavigationalLinkResolver; begin with Attribute do @@ -2430,7 +2430,7 @@ Field := FieldByName(Metadata.FieldName); if not FieldHasObjects(Field) then Exit; - Stream := TInstantStringStream.Create(Field.AsString); + Stream := TStringStream.Create(Field.AsString); try LoadReferencesFromStream(Stream); finally @@ -2611,7 +2611,7 @@ procedure TInstantNavigationalResolver.WritePart(Attribute: TInstantPart); var Field: TField; - Stream: TInstantStringStream; + Stream: TStringStream; begin with Attribute do begin @@ -2628,7 +2628,7 @@ else begin Field := FieldByName(Metadata.FieldName); - Stream := TInstantStringStream.Create(''); + Stream := TStringStream.Create(''); try SaveObjectToStream(Stream); Field.AsString := Stream.DataString; @@ -2642,7 +2642,7 @@ procedure TInstantNavigationalResolver.WriteParts(Attribute: TInstantParts); var Field: TField; - Stream: TInstantStringStream; + Stream: TStringStream; LinkDatasetResolver: TInstantNavigationalLinkResolver; begin with Attribute do @@ -2663,7 +2663,7 @@ else begin Field := FieldByName(Metadata.FieldName); - Stream := TInstantStringStream.Create(''); + Stream := TStringStream.Create(''); try SaveObjectsToStream(Stream); Field.AsString := Stream.DataString; @@ -2689,7 +2689,7 @@ Attribute: TInstantReferences); var Field: TField; - Stream: TInstantStringStream; + Stream: TStringStream; LinkDatasetResolver: TInstantNavigationalLinkResolver; begin with Attribute do @@ -2709,7 +2709,7 @@ else begin Field := FieldByName(Metadata.FieldName); - Stream := TInstantStringStream.Create(''); + Stream := TStringStream.Create(''); try SaveReferencesToStream(Stream); Field.AsString := Stream.DataString; @@ -2751,7 +2751,7 @@ begin Param := AddParam(Params, AFieldName, ftBlob); if Value <> '' then - Param.AsBlob := Value + Param.AsMemo := Value end; procedure AddMemoParam(const AFieldName, Value: string); @@ -2771,7 +2771,7 @@ if Attribute.IsNull then LParam.Clear else - LParam.AsBlob := (Attribute as TInstantBlob).Value; + LParam.AsMemo := (Attribute as TInstantBlob).Value; end; procedure AddBooleanAttributeParam; @@ -2864,7 +2864,7 @@ procedure AddPartAttributeParam; var - Stream: TInstantStringStream; + Stream: TStringStream; Part: TInstantPart; begin if Attribute.Metadata.StorageKind = skExternal then @@ -2876,7 +2876,7 @@ end else begin - Stream := TInstantStringStream.Create(''); + Stream := TStringStream.Create(''); try (Attribute as TInstantPart).SaveObjectToStream(Stream); if Broker.Connector.BlobStreamFormat = sfBinary then @@ -2891,9 +2891,9 @@ procedure AddPartsAttributeParam; var - Stream: TInstantStringStream; + Stream: TStringStream; begin - Stream := TInstantStringStream.Create(''); + Stream := TStringStream.Create(''); try (Attribute as TInstantParts).SaveObjectsToStream(Stream); if Broker.Connector.BlobStreamFormat = sfBinary then @@ -2917,9 +2917,9 @@ procedure AddReferencesAttributeParam; var - Stream: TInstantStringStream; + Stream: TStringStream; begin - Stream := TInstantStringStream.Create(''); + Stream := TStringStream.Create(''); try (Attribute as TInstantReferences).SaveReferencesToStream(Stream); if Broker.Connector.BlobStreamFormat = sfBinary then @@ -3557,7 +3557,7 @@ procedure ReadPartAttribute; var - Stream: TInstantStringStream; + Stream: TStringStream; LPartClassName: string; LPartId: string; begin @@ -3583,7 +3583,7 @@ end else begin - Stream := TInstantStringStream.Create(ReadBlobField(DataSet, + Stream := TStringStream.Create(ReadBlobField(DataSet, AFieldName)); try if Stream.Size = 0 then @@ -3598,7 +3598,7 @@ procedure ReadPartsAttribute; var - Stream: TInstantStringStream; + Stream: TStringStream; LinkResolver: TInstantSQLLinkResolver; begin if AttributeMetadata.StorageKind = skExternal then @@ -3618,7 +3618,7 @@ end else begin - Stream := TInstantStringStream.Create(ReadBlobField(DataSet, AFieldName)); + Stream := TStringStream.Create(ReadBlobField(DataSet, AFieldName)); try if Stream.Size = 0 then (Attribute as TInstantParts).Reset @@ -3639,7 +3639,7 @@ procedure ReadReferencesAttribute; var - Stream: TInstantStringStream; + Stream: TStringStream; LinkResolver: TInstantSQLLinkResolver; begin if AttributeMetadata.StorageKind = skExternal then @@ -3659,7 +3659,7 @@ end else begin - Stream := TInstantStringStream.Create(ReadBlobField(DataSet, AFieldName)); + Stream := TStringStream.Create(ReadBlobField(DataSet, AFieldName)); try if Stream.Size = 0 then (Attribute as TInstantReferences).Reset Modified: trunk/Source/Core/InstantClasses.pas =================================================================== --- trunk/Source/Core/InstantClasses.pas 2009-04-07 10:07:35 UTC (rev 801) +++ trunk/Source/Core/InstantClasses.pas 2009-07-07 10:59:47 UTC (rev 802) @@ -193,7 +193,8 @@ procedure WriteCharSet(CharSet: TChars); procedure WriteObject(AObject: TPersistent); virtual; procedure WriteProperties(AObject: TPersistent); - procedure WriteString(const Value: string); + // Might be needed for versions of Delphi <7? + //procedure WriteString(const Value: string); procedure WriteValue(Value: TValueType); property Stream: TStream read FStream; end; @@ -240,13 +241,20 @@ constructor Create(const FileName: string; Mode: Word); end; + {$IFDEF UNICODE} + TInstantStringStream = class(TStringStream) + public + constructor Create(AString: string); + end; + {$ELSE} TInstantStringStream = class(TInstantStream) private - function GetDataString: string; + function GetDataString: AnsiString; public constructor Create(AString: string); - property DataString: string read GetDataString; + property DataString: AnsiString read GetDataString; end; + {$ENDIF} TInstantXMLProducer = class(TObject) private @@ -260,6 +268,7 @@ function GetWriter: TAbstractWriter; procedure SetPosition(Value: Integer); procedure WriteString(const S: string); + procedure WriteWideString(const S: WideString); protected property TagStack: TStringList read GetTagStack; property Writer: TAbstractWriter read GetWriter; @@ -286,12 +295,12 @@ function GetPosition: Integer; function GetReader: TAbstractReader; function GetToken: TInstantXMLToken; - function ReadEscapedChar: Char; + function ReadEscapedChar: AnsiChar; procedure SetPosition(const Value: Integer); protected procedure CheckToken(AToken: TInstantXMLToken); - function PeekChar: Char; - function ReadChar: Char; + function PeekChar: AnsiChar; + function ReadChar: AnsiChar; procedure SkipBlanks; property Reader: TAbstractReader read GetReader; public @@ -769,13 +778,10 @@ var ObjectEnd: string; begin - with Converter do - begin - ObjectEnd := InstantBuildEndTag(ObjectClassName); - while not SameText(Processor.PeekTag, ObjectEnd) do - Convert; - Writer.WriteListEnd; - end; + ObjectEnd := InstantBuildEndTag(Converter.ObjectClassName); + while not SameText(Converter.Processor.PeekTag, ObjectEnd) do + Converter.Convert; + Converter.Writer.WriteListEnd; end; class procedure TInstantCollection.ConvertToText(Converter: TInstantBinaryToTextConverter); @@ -1052,6 +1058,7 @@ WriteListEnd; end; +(* Might be needed for versions of Delphi <7? procedure TInstantWriter.WriteString(const Value: string); var L: Integer; @@ -1068,6 +1075,7 @@ end; Write(Pointer(Value)^, L); end; +*) procedure TInstantWriter.WriteValue(Value: TValueType); begin @@ -1272,13 +1280,18 @@ constructor TInstantStringStream.Create(AString: string); begin + {$IFDEF UNICODE} + inherited Create(AString, TEncoding.Unicode); + {$ELSE} inherited Create(TMemoryStream.Create, True); if Length(AString) > 0 then Write(AString[1], Length(AString)); Position := 0; + {$ENDIF} end; -function TInstantStringStream.GetDataString: string; +{$IFNDEF UNICODE} +function TInstantStringStream.GetDataString: AnsiString; var Pos: Integer; begin @@ -1292,9 +1305,11 @@ finally Position := Pos; end; - end else + end + else Result := ''; end; +{$ENDIF} { TInstantXMLProducer } @@ -1405,10 +1420,21 @@ end; procedure TInstantXMLProducer.WriteString(const S: string); +var + U: UTF8String; begin - Writer.Write(S[1], Length(S)); + U := UTF8String(S); + Writer.Write(U[1], Length(U)); end; +procedure TInstantXMLProducer.WriteWideString(const S: WideString); +var + U : UTF8String; +begin + U := UTF8Encode(S); + Writer.Write(U[1], Length(U)); +end; + { TInstantXMLProcessor } procedure TInstantXMLProcessor.CheckToken(AToken: TInstantXMLToken); @@ -1455,7 +1481,7 @@ Result := xtData; end; -function TInstantXMLProcessor.PeekChar: Char; +function TInstantXMLProcessor.PeekChar: AnsiChar; var Pos: Integer; begin @@ -1491,9 +1517,9 @@ end; end; -function TInstantXMLProcessor.ReadChar: Char; +function TInstantXMLProcessor.ReadChar: AnsiChar; begin - Reader.Read(Result, SizeOf(Char)); + Reader.Read(Result, SizeOf(AnsiChar)); end; function TInstantXMLProcessor.ReadData: string; @@ -1507,11 +1533,11 @@ procedure TInstantXMLProcessor.ReadData(Stream: TStream); var - C: Char; + C: AnsiChar; CharSize: Integer; begin CheckToken(xtData); - CharSize := SizeOf(Char); + CharSize := SizeOf(AnsiChar); while not (PeekChar = InstantTagStart) do begin C := ReadEscapedChar; @@ -1519,7 +1545,7 @@ end; end; -function TInstantXMLProcessor.ReadEscapedChar: Char; +function TInstantXMLProcessor.ReadEscapedChar: AnsiChar; procedure UnEscape; var @@ -1533,7 +1559,7 @@ Result := ReadChar; end; if S[1] = '#' then - Result := Char(StrToInt(Copy(S, 2, Length(S) - 1))) + Result := AnsiChar(StrToInt(Copy(S, 2, Length(S) - 1))) else if S = 'quot' then Result := #34 else if S = 'amp' then @@ -1554,7 +1580,7 @@ function TInstantXMLProcessor.ReadTag: string; var - C: Char; + C: AnsiChar; Pos: Integer; begin Pos := Position; @@ -1722,6 +1748,8 @@ Producer.WriteData(InstantDateTimeToStr(Reader.ReadDate)); vaString, vaLString: Producer.WriteEscapedData(Reader.ReadString); + vaUTF8String: + Producer.WriteWideString(Reader.ReadWideString); vaSet: begin Reader.ReadValue; @@ -1817,7 +1845,7 @@ procedure ConvertProperty(PropInfo: PPropInfo); var I: Integer; - PropName, ValueStr: string; + PropName, ValueStr: String; S: TStringList; begin PropName := Processor.ReadTagName; @@ -1841,6 +1869,10 @@ {$ENDIF} tkString, tkLString, tkChar: Writer.WriteString(ValueStr); + {$IFDEF D12+} + tkUString: + Writer.WriteString(ValueStr); + {$ENDIF} tkEnumeration: Writer.WriteIdent(ValueStr); tkSet: Modified: trunk/Source/Core/InstantCode.pas =================================================================== --- trunk/Source/Core/InstantCode.pas 2009-04-07 10:07:35 UTC (rev 801) +++ trunk/Source/Core/InstantCode.pas 2009-07-07 10:59:47 UTC (rev 802) @@ -1341,8 +1341,8 @@ FOrigin: TInstantCodePos; procedure SetOrigin(Value: TInstantCodePos); protected - function GetStreamPos: Integer; override; - procedure SetStreamPos(Value: Integer); override; + function GetStreamPos: Int64; override; + procedure SetStreamPos(Value: Int64); override; public procedure Indent; procedure Unindent; @@ -5620,7 +5620,7 @@ begin if I > 0 then Writer.Write(', '); - Items[0].Write(Writer); + Items[I].Write(Writer); end; Writer.WriteLn(';'); finally @@ -6456,7 +6456,7 @@ { TInstantCodeWriter } -function TInstantCodeWriter.GetStreamPos: Integer; +function TInstantCodeWriter.GetStreamPos: Int64; begin Result := inherited GetStreamPos + Origin.Offset; end; @@ -6472,7 +6472,7 @@ Position := FOrigin; end; -procedure TInstantCodeWriter.SetStreamPos(Value: Integer); +procedure TInstantCodeWriter.SetStreamPos(Value: Int64); begin inherited SetStreamPos(Value - Origin.Offset); end; Modified: trunk/Source/Core/InstantCommand.pas =================================================================== --- trunk/Source/Core/InstantCommand.pas 2009-04-07 10:07:35 UTC (rev 801) +++ trunk/Source/Core/InstantCommand.pas 2009-07-07 10:59:47 UTC (rev 802) @@ -716,10 +716,10 @@ function TInstantIQLObject.GetText: string; var - Stream: TStringStream; + Stream: TInstantStringStream; Writer: TInstantIQLWriter; begin - Stream := TStringStream.Create(''); + Stream := TInstantStringStream.Create(''); try Writer := TInstantIQLWriter.Create(Stream); try @@ -1702,10 +1702,10 @@ procedure TInstantIQLTranslator.Translate; var - Stream: TStringStream; + Stream: TInstantStringStream; Writer: TInstantIQLStatementWriter; begin - Stream := TStringStream.Create(''); + Stream := TInstantStringStream.Create(''); try Writer := TInstantIQLStatementWriter.Create(Self, Stream); try Modified: trunk/Source/Core/InstantExplorer.pas =================================================================== --- trunk/Source/Core/InstantExplorer.pas 2009-04-07 10:07:35 UTC (rev 801) +++ trunk/Source/Core/InstantExplorer.pas 2009-07-07 10:59:47 UTC (rev 802) @@ -627,7 +627,6 @@ Result := TPanel.Create(AOwner); Result.BevelInner := bvNone; Result.BevelOuter := bvNone; - Result.Parent := Self; end; procedure TInstantExplorer.CreateSplitter; Modified: trunk/Source/Core/InstantMetadata.pas =================================================================== --- trunk/Source/Core/InstantMetadata.pas 2009-04-07 10:07:35 UTC (rev 801) +++ trunk/Source/Core/InstantMetadata.pas 2009-07-07 10:59:47 UTC (rev 802) @@ -1800,10 +1800,7 @@ function TInstantAttributeMetadata.GetValidChars: TChars; begin - if FValidChars = [] then - Result := [#0..#255] - else - Result := FValidChars; + Result := FValidChars; end; function TInstantAttributeMetadata.GetValidCharsString: string; Modified: trunk/Source/Core/InstantPersistence.pas =================================================================== --- trunk/Source/Core/InstantPersistence.pas 2009-04-07 10:07:35 UTC (rev 801) +++ trunk/Source/Core/InstantPersistence.pas 2009-07-07 10:59:47 UTC (rev 802) @@ -1621,8 +1621,8 @@ I: Integer; begin Result := True; - for I := 0 to Pred(BufferLength) do - if not (Buffer[I] in ValidChars + [#8, #10, #13]) then + for I := 0 to Pred(BufferLength div SizeOf(Char)) do + if (ValidChars <> []) and not (Buffer[I] in ValidChars + [#8, #10, #13]) then begin Result := False; InvalidChar := Buffer[I]; @@ -1955,7 +1955,7 @@ SizeOfGraphicHeader = 8; MinimumBytesToRead = 10; var - P: array [0..MinimumBytesToRead - 1] of Char; + P: array [0..MinimumBytesToRead - 1] of Byte; StreamLength: Longint; BytesRetrieved: Integer; begin @@ -1964,44 +1964,44 @@ Exit; StreamLength := AStream.Size; AStream.Position := 0; - FillChar(P, SizeOf(P), #0); + FillChar(P, SizeOf(P), 0); BytesRetrieved := AStream.Read(P[0], SizeOf(P)); AStream.Position := 0; if BytesRetrieved < MinimumBytesToRead then Exit; // bitmap format - if (P[0] = #66) and (P[1] = #77) then + if (P[0] = 66) and (P[1] = 77) then Result := gffBmp // tiff format - else if ((P[0] = #73) and (P[1] = #73) and (P[2] = #42) and (P[3] = #0)) - or ((P[0] = #77) and (P[1] = #77) and (P[2] = #42) and (P[3] = #0)) then + else if ((P[0] = 73) and (P[1] = 73) and (P[2] = 42) and (P[3] = 0)) + or ((P[0] = 77) and (P[1] = 77) and (P[2] = 42) and (P[3] = 0)) then Result := gffTiff // jpg format - else if (P[6] = #74) and (P[7] = #70) and (P[8] = #73) and (P[9] = #70) - or (P[6] = #69) and (P[7] = #120) and (P[8] = #105) and (P[9] = #102) then + else if (P[6] = 74) and (P[7] = 70) and (P[8] = 73) and (P[9] = 70) + or (P[6] = 69) and (P[7] = 120) and (P[8] = 105) and (P[9] = 102) then Result := gffJpeg // png format - else if (P[0] = #137 ) and (P[1] = #80) and (P[2] = #78) and (P[3] = #71) - and (P[4] = #13) and (P[5] = #10) and (P[6] = #26) and (P[7] = #10) then + else if (P[0] = 137 ) and (P[1] = 80) and (P[2] = 78) and (P[3] = 71) + and (P[4] = 13) and (P[5] = 10) and (P[6] = 26) and (P[7] = 10) then Result := gffPng // dcx format - else if (P[0] = #177) and (P[1] = #104) and (P[2] = #222) and (P[3] = #58) then + else if (P[0] = 177) and (P[1] = 104) and (P[2] = 222) and (P[3] = 58) then Result := gffDcx // pcx format - else if p[0] = #10 then + else if p[0] = 10 then Result := gffPcx // emf format - else if ((P[0] = #215) and (P[1] = #205) and (P[2] = #198) and (P[3] = #154)) - or ((P[0] = #1) and (P[1] = #0) and (P[2] = #0) and (P[3] = #0)) then + else if ((P[0] = 215) and (P[1] = 205) and (P[2] = 198) and (P[3] = 154)) + or ((P[0] = 1) and (P[1] = 0) and (P[2] = 0) and (P[3] = 0)) then Result := gffEmf // gif format - else if (P[0] = #$47) and (P[1] = #$49) and (P[2] = #$46) then + else if (P[0] = $47) and (P[1] = $49) and (P[2] = $46) then Result := gffGif // Ico format - else if (P[0] = #00) and (P[1] = #00) and (P[2] = #01) and (P[3] = #00) then + else if (P[0] = 00) and (P[1] = 00) and (P[2] = 01) and (P[3] = 00) then Result := gffIco // bitmap format with TGraphicHeader header - else if (P[0] = #01) and (P[1] = #00) and (P[2] = #00) and (P[3] = #01) + else if (P[0] = 01) and (P[1] = 00) and (P[2] = 00) and (P[3] = 01) and (PLongint(@p[4])^ = StreamLength - SizeOfGraphicHeader) then begin Result := gffBmp; @@ -3489,7 +3489,7 @@ begin if Size > 0 then begin - SetLength(Result, Size); + SetLength(Result, Size div SizeOf(Char)); Read(Result[1], 0, Size); end else Result := ''; @@ -3501,7 +3501,7 @@ if (Metadata.Defaultvalue <> '') then begin try - Write(Metadata.DefaultValue[1], 0, Length(Metadata.DefaultValue)); + Write(Metadata.DefaultValue[1], 0, Length(Metadata.DefaultValue) * SizeOf(Char)); except on E: Exception do raise ConversionError(E); @@ -3571,9 +3571,10 @@ var L: Integer; begin - L := Length(AValue); + L := Length(AValue) * SizeOf(Char); if L > 0 then begin + Stream.Clear; WriteBuffer(AValue[1], 0, L); Stream.Size := L; end else Modified: trunk/Source/Core/InstantPresentation.pas =================================================================== --- trunk/Source/Core/InstantPresentation.pas 2009-04-07 10:07:35 UTC (rev 801) +++ trunk/Source/Core/InstantPresentation.pas 2009-07-07 10:59:47 UTC (rev 802) @@ -288,7 +288,11 @@ FContentBuffer: TInstantContentBuffer; FContentChanged: Boolean; FFieldOptions: TInstantFieldOptions; + {$IFDEF D12+} + FFilterBuffer: TRecordBuffer; + {$ELSE} FFilterBuffer: PChar; + {$ENDIF} FInSetFieldData: Boolean; FIsOpen: Boolean; FLimited: Boolean; @@ -319,13 +323,10 @@ FOnAddClassFieldDef: TInstantAddClassFieldDefEvent; procedure AccessorChanged(Sender: TObject; ChangeType: TInstantChangeType); procedure CheckClass(AObject: TObject); - procedure ClearData(Buffer: PChar); - procedure ClearRecord(Buffer: PChar); function DataFieldsSize: Integer; function GetAutoApplyChanges: Boolean; function GetCanDispose: Boolean; function GetContentBuffer: TInstantContentBuffer; - function GetCurrentBuffer: PChar; function GetDesignClass: TInstantCodeClass; function GetHasCurrentBuffer: Boolean; function GetHasSubject: Boolean; @@ -338,7 +339,6 @@ function GetObjectClassName: string; function GetObjectCount: Integer; function GetObjects(Index: Integer): TObject; - function GetRecInfo(Buffer: PChar): PRecInfo; function GetRecordBuffer: TInstantRecordBuffer; function GetSorted: Boolean; function GetTotalCount: Integer; @@ -352,7 +352,19 @@ procedure InitFields; function IsSelfField(Field: TField): Boolean; procedure ObjectChanged(AObject: TInstantObject); + {$IFDEF D12+} + procedure ClearData(Buffer: TRecordBuffer); + procedure ClearRecord(Buffer: TRecordBuffer); + function GetCurrentBuffer: TRecordBuffer; + function GetRecInfo(Buffer: TRecordBuffer): PRecInfo; + procedure PutObject(Buffer: TRecordBuffer; AObject: TObject; Append: Boolean); + {$ELSE} + procedure ClearData(Buffer: PChar); + procedure ClearRecord(Buffer: PChar); + function GetCurrentBuffer: PChar; + function GetRecInfo(Buffer: PChar): PRecInfo; procedure PutObject(Buffer: PChar; AObject: TObject; Append: Boolean); + {$ENDIF} procedure SetContainerName(const Value: string); procedure SetFieldOptions(Value: TInstantFieldOptions); procedure SetLimited(Value: Boolean); @@ -368,10 +380,14 @@ { IProviderSupport } procedure PSGetAttributes(List: TList); override; {$IFDEF D10+} + {$IFNDEF D12+} function PSGetTableNameW: WideString; override; {$ELSE} function PSGetTableName: string; override; {$ENDIF} + {$ELSE} + function PSGetTableName: string; override; + {$ENDIF} procedure PSReset; override; protected procedure AddClassFieldDefs(const FieldName: string; AClass: TClass); overload; @@ -379,13 +395,49 @@ function AddFieldDef(const Prefix: string; PropInfo: PPropInfo): TFieldDef; overload; function AddFieldDef(const FieldName: string; FieldType: TFieldType; FieldSize: Integer; FieldAttribs: TFieldAttributes): TFieldDef; overload; + {$IFDEF D12+} + function AddNewObject(Buffer: TRecordBuffer; Append: Boolean): TObject; + function AllocRecordBuffer: TRecordBuffer; override; + procedure ClearCalcFields(Buffer: TRecordBuffer); override; + procedure FreeRecordBuffer(var Buffer: TRecordBuffer); override; + procedure GetBookmarkData(Buffer: TRecordBuffer; Data: Pointer); override; + function GetBookmarkFlag(Buffer: TRecordBuffer): TBookmarkFlag; override; + function GetRecord(Buffer: TRecordBuffer; GetMode: TGetMode; + DoCheck: Boolean): TGetResult; override; + procedure InitRecord(Buffer: TRecordBuffer); override; + procedure InternalInitRecord(Buffer: TRecordBuffer); override; + procedure InternalSetToRecord(Buffer: TRecordBuffer); override; + procedure SetBookmarkData(Buffer: TRecordBuffer; Data: Pointer); override; + procedure SetBookmarkFlag(Buffer: TRecordBuffer; Value: TBookmarkFlag); override; + procedure CopyObjectToBuffer(AObject: TObject; Buffer: TRecordBuffer); + function FindObjectBuffer(AObject: TObject): TRecordBuffer; + procedure LoadRecord(RecNo: Integer; Buffer: TRecordBuffer); + function InternalGetRecord(Buffer: TRecordBuffer; GetMode: TGetMode; + DoCheck: Boolean): TGetResult; virtual; + procedure CopyBufferToObject(Buffer: TRecordBuffer; AObject: TObject); + {$ELSE} function AddNewObject(Buffer: PChar; Append: Boolean): TObject; function AllocRecordBuffer: PChar; override; + procedure ClearCalcFields(Buffer: PChar); override; + procedure FreeRecordBuffer(var Buffer: PChar); override; + procedure GetBookmarkData(Buffer: PChar; Data: Pointer); override; + function GetBookmarkFlag(Buffer: PChar): TBookmarkFlag; override; + function GetRecord(Buffer: PChar; GetMode: TGetMode; + DoCheck: Boolean): TGetResult; override; + procedure InitRecord(Buffer: PChar); override; + procedure InternalInitRecord(Buffer: PChar); override; + procedure InternalSetToRecord(Buffer: PChar); override; + procedure SetBookmarkData(Buffer: PChar; Data: Pointer); override; + procedure SetBookmarkFlag(Buffer: PChar; Value: TBookmarkFlag); override; + procedure CopyObjectToBuffer(AObject: TObject; Buffer: PChar); + function FindObjectBuffer(AObject: TObject): PChar; + procedure LoadRecord(RecNo: Integer; Buffer: PChar); + function InternalGetRecord(Buffer: PChar; GetMode: TGetMode; + DoCheck: Boolean): TGetResult; virtual; + procedure CopyBufferToObject(Buffer: PChar; AObject: TObject); + {$ENDIF} procedure AutoDispose(AObject: TObject); procedure AutoStore(AObject: TObject); - procedure ClearCalcFields(Buffer: PChar); override; - procedure CopyBufferToObject(Buffer: PChar; AObject: TObject); - procedure CopyObjectToBuffer(AObject: TObject; Buffer: PChar); function CreateAccessor: TInstantAccessor; virtual; procedure CreateFields; override; function CreateNestedDataSet(DataSetField: TDataSetField): TDataSet; override; @@ -399,17 +451,11 @@ procedure DoIncludeField(FieldName: string; var Include: Boolean); virtual; procedure DoTranslate(Field: TField; var Value: Variant; Write: Boolean); function FindAttributeMetadata(const Path: string): TInstantAttributeMetadata; - function FindObjectBuffer(AObject: TObject): PChar; - procedure FreeRecordBuffer(var Buffer: PChar); override; function GetAccessor: TInstantAccessor; virtual; - procedure GetBookmarkData(Buffer: PChar; Data: Pointer); override; - function GetBookmarkFlag(Buffer: PChar): TBookmarkFlag; override; function GetCanModify: Boolean; override; function GetCurrentObject: TObject; virtual; function GetFieldOffset(const Field: TField): Integer; function GetRecNo: Integer; override; - function GetRecord(Buffer: PChar; GetMode: TGetMode; - DoCheck: Boolean): TGetResult; override; function GetRecordCount: Longint; override; function GetRecordSize: Word; override; function GetSubject: TObject; virtual; abstract; @@ -421,19 +467,15 @@ procedure InitAccessor(AAccessor: TInstantAccessor); procedure InitField(Field: TField); virtual; procedure InitFieldDef(FieldDef: TFieldDef); virtual; - procedure InitRecord(Buffer: PChar); override; function InternalAddObject(AObject: TObject): Integer; procedure InternalAddRecord(Buffer: Pointer; Append: Boolean); override; procedure InternalCancel; override; procedure InternalClose; override; procedure InternalDelete; override; procedure InternalFirst; override; - function InternalGetRecord(Buffer: PChar; GetMode: TGetMode; - DoCheck: Boolean): TGetResult; virtual; procedure InternalGotoBookmark(Bookmark: Pointer); override; procedure InternalHandleException; override; procedure InternalInitFieldDefs; override; - procedure InternalInitRecord(Buffer: PChar); override; procedure InternalInsert; override; function InternalInsertObject(ARecNo: Integer; AObject: TObject): Integer; virtual; procedure InternalLast; override; @@ -443,14 +485,12 @@ procedure InternalReleaseObject(AObject: TObject); virtual; function InternalRemoveObject(AObject: TObject): Integer; virtual; procedure InternalReset; virtual; - procedure InternalSetToRecord(Buffer: PChar); override; function IsCalcField(Field: TField): Boolean; function IsCursorOpen: Boolean; override; function IsNested: Boolean; procedure LoadField(Obj: TObject; Field: TField); virtual; procedure LoadFieldParams(AObject: TObject; Field: TField); virtual; procedure LoadFieldValue(Field: TField; Buffer: Pointer; AObject: TObject); - procedure LoadRecord(RecNo: Integer; Buffer: PChar); function LocateObject(const KeyFields: string; const KeyValues: Variant; Options: TInstantCompareOptions): Boolean; overload; function LocateObject(AObject: TObject): Boolean; overload; @@ -460,8 +500,6 @@ procedure SaveField(Field: TField); virtual; procedure SaveFieldValue(Field: TField; Buffer: Pointer; AObject: TObject); procedure SetActive(Value: Boolean); override; - procedure SetBookmarkData(Buffer: PChar; Data: Pointer); override; - procedure SetBookmarkFlag(Buffer: PChar; Value: TBookmarkFlag); override; procedure SetFieldData(Field... [truncated message content] |
From: <car...@us...> - 2009-07-27 12:49:29
|
Revision: 811 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=811&view=rev Author: carlobar Date: 2009-07-27 12:49:16 +0000 (Mon, 27 Jul 2009) Log Message: ----------- Added packages for Delphi 2009 Added Paths: ----------- trunk/Demos/Intro/Intro_D2009.mdr trunk/Demos/Intro/Intro_D2009.res trunk/Source/Brokers/ADO/D2009/ trunk/Source/Brokers/ADO/D2009/DclIOADO.dpk trunk/Source/Brokers/ADO/D2009/DclIOADO.dproj trunk/Source/Brokers/ADO/D2009/DclIOADO.res trunk/Source/Brokers/ADO/D2009/IOADO.dpk trunk/Source/Brokers/ADO/D2009/IOADO.dproj trunk/Source/Brokers/ADO/D2009/IOADO.res trunk/Source/Brokers/BDE/D2009/ trunk/Source/Brokers/BDE/D2009/DclIOBDE.dpk trunk/Source/Brokers/BDE/D2009/DclIOBDE.dproj trunk/Source/Brokers/BDE/D2009/DclIOBDE.res trunk/Source/Brokers/BDE/D2009/IOBDE.dpk trunk/Source/Brokers/BDE/D2009/IOBDE.dproj trunk/Source/Brokers/BDE/D2009/IOBDE.res trunk/Source/Brokers/DBX/D2009/ trunk/Source/Brokers/DBX/D2009/DclIODBX.dpk trunk/Source/Brokers/DBX/D2009/DclIODBX.dproj trunk/Source/Brokers/DBX/D2009/DclIODBX.res trunk/Source/Brokers/DBX/D2009/IODBX.dpk trunk/Source/Brokers/DBX/D2009/IODBX.dproj trunk/Source/Brokers/DBX/D2009/IODBX.res trunk/Source/Brokers/IBX/D2009/ trunk/Source/Brokers/IBX/D2009/DclIOIBX.dpk trunk/Source/Brokers/IBX/D2009/DclIOIBX.dproj trunk/Source/Brokers/IBX/D2009/DclIOIBX.res trunk/Source/Brokers/IBX/D2009/IOIBX.dpk trunk/Source/Brokers/IBX/D2009/IOIBX.dproj trunk/Source/Brokers/IBX/D2009/IOIBX.res trunk/Source/Catalogs/IBFb/D2009/ trunk/Source/Catalogs/IBFb/D2009/IOIBFbCatalog.dpk trunk/Source/Catalogs/IBFb/D2009/IOIBFbCatalog.dproj trunk/Source/Catalogs/IBFb/D2009/IOIBFbCatalog.res trunk/Source/Catalogs/MSSql/D2009/ trunk/Source/Catalogs/MSSql/D2009/IOMSSqlCatalog.dpk trunk/Source/Catalogs/MSSql/D2009/IOMSSqlCatalog.dproj trunk/Source/Catalogs/MSSql/D2009/IOMSSqlCatalog.res trunk/Source/Catalogs/MySQL/D2009/ trunk/Source/Catalogs/MySQL/D2009/IOMySQLCatalog.dpk trunk/Source/Catalogs/MySQL/D2009/IOMySQLCatalog.dproj trunk/Source/Catalogs/MySQL/D2009/IOMySQLCatalog.res trunk/Source/Core/D2009/ trunk/Source/Core/D2009/IOCore.dpk trunk/Source/Core/D2009/IOCore.dproj trunk/Source/Core/D2009/IOCore.res trunk/Source/Design/D2009/ trunk/Source/Design/D2009/DclIOCore.dpk trunk/Source/Design/D2009/DclIOCore.dproj trunk/Source/Design/D2009/DclIOCore.res Property Changed: ---------------- trunk/Tests/ Added: trunk/Demos/Intro/Intro_D2009.mdr =================================================================== (Binary files differ) Property changes on: trunk/Demos/Intro/Intro_D2009.mdr ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Demos/Intro/Intro_D2009.res =================================================================== (Binary files differ) Property changes on: trunk/Demos/Intro/Intro_D2009.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/ADO/D2009/DclIOADO.dpk =================================================================== --- trunk/Source/Brokers/ADO/D2009/DclIOADO.dpk (rev 0) +++ trunk/Source/Brokers/ADO/D2009/DclIOADO.dpk 2009-07-27 12:49:16 UTC (rev 811) @@ -0,0 +1,38 @@ +package DclIOADO; + +{$R *.res} +{$R '..\InstantADO.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS ON} +{$RANGECHECKS ON} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects ADO Design-Time Support (Delphi 2009)'} +{$LIBSUFFIX '_D12'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + rtl, + IOADO; + +contains + InstantADOReg in '..\InstantADOReg.pas'; + +end. Property changes on: trunk/Source/Brokers/ADO/D2009/DclIOADO.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/ADO/D2009/DclIOADO.dproj =================================================================== --- trunk/Source/Brokers/ADO/D2009/DclIOADO.dproj (rev 0) +++ trunk/Source/Brokers/ADO/D2009/DclIOADO.dproj 2009-07-27 12:49:16 UTC (rev 811) @@ -0,0 +1,122 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{83fb334c-a8d7-4ac2-a891-1c5f3085aaf1}</ProjectGuid> + <MainSource>DclIOADO.dpk</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>C:\Users\nandod\Documents\RAD Studio\5.0\Bpl\DclIOADO_D11.bpl</DCC_DependencyCheckOutputName> + <ProjectVersion>12.0</ProjectVersion> + <Config Condition="'$(Config)'==''">Debug</Config> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DesignOnlyPackage>true</DesignOnlyPackage> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\6.0\Bpl\DclIOADO_D12.bpl</DCC_DependencyCheckOutputName> + <DCC_RangeChecking>true</DCC_RangeChecking> + <DCC_Description>InstantObjects ADO Design-Time Support (Delphi 2009)</DCC_Description> + <DllSuffix>_D12</DllSuffix> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <DCC_IntegerOverflowCheck>true</DCC_IntegerOverflowCheck> + <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo> + <GenPackage>true</GenPackage> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <Version>7.0</Version> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_IntegerOverflowCheck>True</DCC_IntegerOverflowCheck> + <DCC_RangeChecking>True</DCC_RangeChecking> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <Version>7.0</Version> + <DCC_IntegerOverflowCheck>True</DCC_IntegerOverflowCheck> + <DCC_RangeChecking>True</DCC_RangeChecking> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Compiler> + <Compiler Name="UsePackages">False</Compiler> + <Compiler Name="Packages"/> + </Compiler> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">2</VersionInfo> + <VersionInfo Name="MinorVer">1</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">1040</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName">www.instantobjects.org</VersionInfoKeys> + <VersionInfoKeys Name="FileDescription">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="ProductVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Source> + <Source Name="MainSource">DclIOADO.dpk</Source> + </Source> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + <ItemGroup> + <DelphiCompile Include="DclIOADO.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="..\InstantADO.dcr"/> + <DCCReference Include="rtl.dcp"/> + <DCCReference Include="IOADO.dcp"/> + <DCCReference Include="..\InstantADOReg.pas"/> + <DCCReference Include="..\InstantADO.dcr"/> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + </Project> Property changes on: trunk/Source/Brokers/ADO/D2009/DclIOADO.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/ADO/D2009/DclIOADO.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/ADO/D2009/DclIOADO.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/ADO/D2009/IOADO.dpk =================================================================== --- trunk/Source/Brokers/ADO/D2009/IOADO.dpk (rev 0) +++ trunk/Source/Brokers/ADO/D2009/IOADO.dpk 2009-07-27 12:49:16 UTC (rev 811) @@ -0,0 +1,44 @@ +package IOADO; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects ADO Run-Time Support (Delphi 2009)'} +{$LIBSUFFIX '_D12'} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + vcl, + vcldb, + adortl, + IOCore, + IOMSSqlCatalog; + +contains + InstantADOX in '..\InstantADOX.pas', + InstantADOJRO in '..\InstantADOJRO.pas', + InstantADOTools in '..\InstantADOTools.pas', + InstantADOConnectionDefEdit in '..\InstantADOConnectionDefEdit.pas' {InstantADOConnectionDefEditForm}, + InstantADO in '..\InstantADO.pas'; + +end. Property changes on: trunk/Source/Brokers/ADO/D2009/IOADO.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/ADO/D2009/IOADO.dproj =================================================================== --- trunk/Source/Brokers/ADO/D2009/IOADO.dproj (rev 0) +++ trunk/Source/Brokers/ADO/D2009/IOADO.dproj 2009-07-27 12:49:16 UTC (rev 811) @@ -0,0 +1,127 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{92084594-c0f7-4f8d-8e98-b5fdc630773c}</ProjectGuid> + <MainSource>IOADO.dpk</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>C:\Documents and Settings\nandod\Documenti\RAD Studio\Projects\Bpl\IOADO_D11.bpl</DCC_DependencyCheckOutputName> + <ProjectVersion>12.0</ProjectVersion> + <Config Condition="'$(Config)'==''">Debug</Config> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DesignOnlyPackage>false</DesignOnlyPackage> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\6.0\Bpl\IOADO_D12.bpl</DCC_DependencyCheckOutputName> + <DCC_Description>InstantObjects ADO Run-Time Support (Delphi 2009)</DCC_Description> + <RuntimeOnlyPackage>true</RuntimeOnlyPackage> + <DCC_WriteableConstants>true</DCC_WriteableConstants> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <GenPackage>true</GenPackage> + <DllSuffix>_D12</DllSuffix> + <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <Version>7.0</Version> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_WriteableConstants>True</DCC_WriteableConstants> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <Version>7.0</Version> + <DCC_WriteableConstants>True</DCC_WriteableConstants> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Compiler> + <Compiler Name="UsePackages">False</Compiler> + <Compiler Name="Packages"/> + </Compiler> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">2</VersionInfo> + <VersionInfo Name="MinorVer">1</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">1040</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName">www.instantobjects.org</VersionInfoKeys> + <VersionInfoKeys Name="FileDescription">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="ProductVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Source> + <Source Name="MainSource">IOADO.dpk</Source> + </Source> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + <ItemGroup> + <DelphiCompile Include="IOADO.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="vcl.dcp"/> + <DCCReference Include="vcldb.dcp"/> + <DCCReference Include="adortl.dcp"/> + <DCCReference Include="IOCore.dcp"/> + <DCCReference Include="IOMSSqlCatalog.dcp"/> + <DCCReference Include="..\InstantADOX.pas"/> + <DCCReference Include="..\InstantADOJRO.pas"/> + <DCCReference Include="..\InstantADOTools.pas"/> + <DCCReference Include="..\InstantADOConnectionDefEdit.pas"> + <Form>InstantADOConnectionDefEditForm</Form> + </DCCReference> + <DCCReference Include="..\InstantADO.pas"/> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + </Project> Property changes on: trunk/Source/Brokers/ADO/D2009/IOADO.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/ADO/D2009/IOADO.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/ADO/D2009/IOADO.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/BDE/D2009/DclIOBDE.dpk =================================================================== --- trunk/Source/Brokers/BDE/D2009/DclIOBDE.dpk (rev 0) +++ trunk/Source/Brokers/BDE/D2009/DclIOBDE.dpk 2009-07-27 12:49:16 UTC (rev 811) @@ -0,0 +1,41 @@ +package DclIOBDE; + +{$R *.res} +{$R '..\InstantBDE.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS ON} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects BDE Design-Time Support (Delphi 2009)'} +{$LIBSUFFIX '_D12'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + vcl, + vcldb, + bdertl, + IOCore, + IOBDE; + +contains + InstantBDEReg in '..\InstantBDEReg.pas'; + +end. Property changes on: trunk/Source/Brokers/BDE/D2009/DclIOBDE.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/BDE/D2009/DclIOBDE.dproj =================================================================== --- trunk/Source/Brokers/BDE/D2009/DclIOBDE.dproj (rev 0) +++ trunk/Source/Brokers/BDE/D2009/DclIOBDE.dproj 2009-07-27 12:49:16 UTC (rev 811) @@ -0,0 +1,122 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{54d8280d-11e9-4256-ba0a-30fc942591e7}</ProjectGuid> + <MainSource>DclIOBDE.dpk</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>C:\Users\nandod\Documents\RAD Studio\5.0\Bpl\DclIOBDE_D11.bpl</DCC_DependencyCheckOutputName> + <ProjectVersion>12.0</ProjectVersion> + <Config Condition="'$(Config)'==''">Debug</Config> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DesignOnlyPackage>true</DesignOnlyPackage> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\6.0\Bpl\DclIOBDE_D12.bpl</DCC_DependencyCheckOutputName> + <DCC_TypedAtParameter>true</DCC_TypedAtParameter> + <DCC_Description>InstantObjects BDE Design-Time Support (Delphi 2009)</DCC_Description> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <GenPackage>true</GenPackage> + <DllSuffix>_D12</DllSuffix> + <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <Version>7.0</Version> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_TypedAtParameter>True</DCC_TypedAtParameter> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <Version>7.0</Version> + <DCC_TypedAtParameter>True</DCC_TypedAtParameter> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Compiler> + <Compiler Name="UsePackages">False</Compiler> + <Compiler Name="Packages"/> + </Compiler> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">2</VersionInfo> + <VersionInfo Name="MinorVer">1</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">1040</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName">www.instantobjects.org</VersionInfoKeys> + <VersionInfoKeys Name="FileDescription">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="ProductVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Source> + <Source Name="MainSource">DclIOBDE.dpk</Source> + </Source> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + <ItemGroup> + <DelphiCompile Include="DclIOBDE.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="..\InstantBDE.dcr"/> + <DCCReference Include="vcl.dcp"/> + <DCCReference Include="vcldb.dcp"/> + <DCCReference Include="bdertl.dcp"/> + <DCCReference Include="IOCore.dcp"/> + <DCCReference Include="IOBDE.dcp"/> + <DCCReference Include="..\InstantBDEReg.pas"/> + <DCCReference Include="..\InstantBDE.dcr"/> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + </Project> Property changes on: trunk/Source/Brokers/BDE/D2009/DclIOBDE.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/BDE/D2009/DclIOBDE.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/BDE/D2009/DclIOBDE.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/BDE/D2009/IOBDE.dpk =================================================================== --- trunk/Source/Brokers/BDE/D2009/IOBDE.dpk (rev 0) +++ trunk/Source/Brokers/BDE/D2009/IOBDE.dpk 2009-07-27 12:49:16 UTC (rev 811) @@ -0,0 +1,41 @@ +package IOBDE; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS ON} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects BDE Run-Time Support (Delphi 2009)'} +{$LIBSUFFIX '_D12'} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + vcl, + vcldb, + bdertl, + IOCore; + +contains + InstantBDECatalog in '..\InstantBDECatalog.pas', + InstantBDEConnectionDefEdit in '..\InstantBDEConnectionDefEdit.pas' {InstantBDEConnectionDefEditForm}, + InstantBDE in '..\InstantBDE.pas'; + +end. Property changes on: trunk/Source/Brokers/BDE/D2009/IOBDE.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/BDE/D2009/IOBDE.dproj =================================================================== --- trunk/Source/Brokers/BDE/D2009/IOBDE.dproj (rev 0) +++ trunk/Source/Brokers/BDE/D2009/IOBDE.dproj 2009-07-27 12:49:16 UTC (rev 811) @@ -0,0 +1,124 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{340a6323-81f2-431c-adca-555d83affb71}</ProjectGuid> + <MainSource>IOBDE.dpk</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>C:\Documents and Settings\nandod\Documenti\RAD Studio\Projects\Bpl\IOBDE_D11.bpl</DCC_DependencyCheckOutputName> + <ProjectVersion>12.0</ProjectVersion> + <Config Condition="'$(Config)'==''">Debug</Config> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\6.0\Bpl\IOBDE_D12.bpl</DCC_DependencyCheckOutputName> + <DCC_ImageBase>00400000</DCC_ImageBase> + <RuntimeOnlyPackage>true</RuntimeOnlyPackage> + <DCC_TypedAtParameter>true</DCC_TypedAtParameter> + <DCC_Description>InstantObjects BDE Run-Time Support (Delphi 2009)</DCC_Description> + <DesignOnlyPackage>false</DesignOnlyPackage> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <GenPackage>true</GenPackage> + <DllSuffix>_D12</DllSuffix> + <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <Version>7.0</Version> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_TypedAtParameter>True</DCC_TypedAtParameter> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <Version>7.0</Version> + <DCC_TypedAtParameter>True</DCC_TypedAtParameter> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Compiler> + <Compiler Name="UsePackages">False</Compiler> + <Compiler Name="Packages"/> + </Compiler> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">2</VersionInfo> + <VersionInfo Name="MinorVer">1</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">1040</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName">www.instantobjects.org</VersionInfoKeys> + <VersionInfoKeys Name="FileDescription">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="ProductVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Source> + <Source Name="MainSource">IOBDE.dpk</Source> + </Source> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + <ItemGroup> + <DelphiCompile Include="IOBDE.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="vcl.dcp"/> + <DCCReference Include="vcldb.dcp"/> + <DCCReference Include="bdertl.dcp"/> + <DCCReference Include="IOCore.dcp"/> + <DCCReference Include="..\InstantBDECatalog.pas"/> + <DCCReference Include="..\InstantBDEConnectionDefEdit.pas"> + <Form>InstantBDEConnectionDefEditForm</Form> + </DCCReference> + <DCCReference Include="..\InstantBDE.pas"/> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + </Project> Property changes on: trunk/Source/Brokers/BDE/D2009/IOBDE.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/BDE/D2009/IOBDE.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/BDE/D2009/IOBDE.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/DBX/D2009/DclIODBX.dpk =================================================================== --- trunk/Source/Brokers/DBX/D2009/DclIODBX.dpk (rev 0) +++ trunk/Source/Brokers/DBX/D2009/DclIODBX.dpk 2009-07-27 12:49:16 UTC (rev 811) @@ -0,0 +1,42 @@ +package DclIODBX; + +{$R *.res} +{$R '..\InstantDBX.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS ON} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects dbExpress Design-Time Support (Delphi 2009)'} +{$LIBSUFFIX '_D12'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + rtl, + vcl, + dbrtl, + dbexpress, + IOCore, + IODBX; + +contains + InstantDBXReg in '..\InstantDBXReg.pas'; + +end. Property changes on: trunk/Source/Brokers/DBX/D2009/DclIODBX.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/DBX/D2009/DclIODBX.dproj =================================================================== --- trunk/Source/Brokers/DBX/D2009/DclIODBX.dproj (rev 0) +++ trunk/Source/Brokers/DBX/D2009/DclIODBX.dproj 2009-07-27 12:49:16 UTC (rev 811) @@ -0,0 +1,123 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{bc9f1633-bb3a-4ca0-a1a2-54d81b4dac06}</ProjectGuid> + <MainSource>DclIODBX.dpk</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>C:\Users\nandod\Documents\RAD Studio\5.0\Bpl\DclIODBX_D11.bpl</DCC_DependencyCheckOutputName> + <ProjectVersion>12.0</ProjectVersion> + <Config Condition="'$(Config)'==''">Debug</Config> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DesignOnlyPackage>true</DesignOnlyPackage> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\6.0\Bpl\DclIODBX_D12.bpl</DCC_DependencyCheckOutputName> + <DCC_TypedAtParameter>true</DCC_TypedAtParameter> + <DCC_Description>InstantObjects dbExpress Design-Time Support (Delphi 2009)</DCC_Description> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <GenPackage>true</GenPackage> + <DllSuffix>_D12</DllSuffix> + <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <Version>7.0</Version> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_TypedAtParameter>True</DCC_TypedAtParameter> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <Version>7.0</Version> + <DCC_TypedAtParameter>True</DCC_TypedAtParameter> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Compiler> + <Compiler Name="UsePackages">False</Compiler> + <Compiler Name="Packages"/> + </Compiler> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">2</VersionInfo> + <VersionInfo Name="MinorVer">1</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">1040</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName">www.instantobjects.org</VersionInfoKeys> + <VersionInfoKeys Name="FileDescription">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="ProductVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Source> + <Source Name="MainSource">DclIODBX.dpk</Source> + </Source> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + <ItemGroup> + <DelphiCompile Include="DclIODBX.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="..\InstantDBX.dcr"/> + <DCCReference Include="rtl.dcp"/> + <DCCReference Include="vcl.dcp"/> + <DCCReference Include="dbrtl.dcp"/> + <DCCReference Include="dbexpress.dcp"/> + <DCCReference Include="IOCore.dcp"/> + <DCCReference Include="IODBX.dcp"/> + <DCCReference Include="..\InstantDBXReg.pas"/> + <DCCReference Include="..\InstantDBX.dcr"/> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + </Project> Property changes on: trunk/Source/Brokers/DBX/D2009/DclIODBX.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/DBX/D2009/DclIODBX.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/DBX/D2009/DclIODBX.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/DBX/D2009/IODBX.dpk =================================================================== --- trunk/Source/Brokers/DBX/D2009/IODBX.dpk (rev 0) +++ trunk/Source/Brokers/DBX/D2009/IODBX.dpk 2009-07-27 12:49:16 UTC (rev 811) @@ -0,0 +1,44 @@ +package IODBX; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects dbExpress Run-Time Support (Delphi 2009)'} +{$LIBSUFFIX '_D12'} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + rtl, + vcl, + dbrtl, + dbexpress, + IOCore, + IOIBFbCatalog, + IOMSSqlCatalog, + IOMySQLCatalog; + +contains + InstantDBXConnectionDefEdit in '..\InstantDBXConnectionDefEdit.pas' {InstantDBXConnectionDefEditForm}, + InstantDBX in '..\InstantDBX.pas'; + +end. Property changes on: trunk/Source/Brokers/DBX/D2009/IODBX.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/DBX/D2009/IODBX.dproj =================================================================== --- trunk/Source/Brokers/DBX/D2009/IODBX.dproj (rev 0) +++ trunk/Source/Brokers/DBX/D2009/IODBX.dproj 2009-07-27 12:49:16 UTC (rev 811) @@ -0,0 +1,124 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{937e931f-66ed-4188-a98b-6065ae9d04e7}</ProjectGuid> + <MainSource>IODBX.dpk</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>C:\Users\nandod\Documents\RAD Studio\5.0\Bpl\IODBX_D11.bpl</DCC_DependencyCheckOutputName> + <ProjectVersion>12.0</ProjectVersion> + <Config Condition="'$(Config)'==''">Debug</Config> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DesignOnlyPackage>false</DesignOnlyPackage> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\6.0\Bpl\IODBX_D12.bpl</DCC_DependencyCheckOutputName> + <DCC_Description>InstantObjects dbExpress Run-Time Support (Delphi 2009)</DCC_Description> + <RuntimeOnlyPackage>true</RuntimeOnlyPackage> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <GenPackage>true</GenPackage> + <DllSuffix>_D12</DllSuffix> + <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <Version>7.0</Version> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <Version>7.0</Version> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Compiler> + <Compiler Name="UsePackages">False</Compiler> + <Compiler Name="Packages"/> + </Compiler> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">2</VersionInfo> + <VersionInfo Name="MinorVer">1</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">1040</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName">www.instantobjects.org</VersionInfoKeys> + <VersionInfoKeys Name="FileDescription">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="ProductVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Source> + <Source Name="MainSource">IODBX.dpk</Source> + </Source> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + <ItemGroup> + <DelphiCompile Include="IODBX.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="rtl.dcp"/> + <DCCReference Include="vcl.dcp"/> + <DCCReference Include="dbrtl.dcp"/> + <DCCReference Include="dbexpress.dcp"/> + <DCCReference Include="IOCore.dcp"/> + <DCCReference Include="IOIBFbCatalog.dcp"/> + <DCCReference Include="IOMSSqlCatalog.dcp"/> + <DCCReference Include="IOMySQLCatalog.dcp"/> + <DCCReference Include="..\InstantDBXConnectionDefEdit.pas"> + <Form>InstantDBXConnectionDefEditForm</Form> + </DCCReference> + <DCCReference Include="..\InstantDBX.pas"/> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + </Project> Property changes on: trunk/Source/Brokers/DBX/D2009/IODBX.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/DBX/D2009/IODBX.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/DBX/D2009/IODBX.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/IBX/D2009/DclIOIBX.dpk =================================================================== --- trunk/Source/Brokers/IBX/D2009/DclIOIBX.dpk (rev 0) +++ trunk/Source/Brokers/IBX/D2009/DclIOIBX.dpk 2009-07-27 12:49:16 UTC (rev 811) @@ -0,0 +1,41 @@ +package DclIOIBX; + +{$R *.res} +{$R '..\InstantIBX.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects IBX Design-Time Support (Delphi 2009)'} +{$LIBSUFFIX '_D12'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + vcl, + vcldb, + ibxpress, + IOCore, + IOIBX; + +contains + InstantIBXReg in '..\InstantIBXReg.pas'; + +end. Property changes on: trunk/Source/Brokers/IBX/D2009/DclIOIBX.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/IBX/D2009/DclIOIBX.dproj =================================================================== --- trunk/Source/Brokers/IBX/D2009/DclIOIBX.dproj (rev 0) +++ trunk/Source/Brokers/IBX/D2009/DclIOIBX.dproj 2009-07-27 12:49:16 UTC (rev 811) @@ -0,0 +1,123 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{738c4394-cfb9-4a4d-b4ed-ba6a287ef455}</ProjectGuid> + <MainSource>DclIOIBX.dpk</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>C:\Users\nandod\Documents\RAD Studio\5.0\Bpl\DclIOIBX_D11.bpl</DCC_DependencyCheckOutputName> + <ProjectVersion>12.0</ProjectVersion> + <Config Condition="'$(Config)'==''">Debug</Config> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DesignOnlyPackage>true</DesignOnlyPackage> + <DCC_Description>InstantObjects IBX Design-Time Support (Delphi 2009)</DCC_Description> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\6.0\Bpl\DclIOIBX_D12.bpl</DCC_DependencyCheckOutputName> + <DllSuffix>_D12</DllSuffix> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo> + <GenPackage>true</GenPackage> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <Version>7.0</Version> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <Version>7.0</Version> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Compiler> + <Compiler Name="UsePackages">False</Compiler> + <Compiler Name="Packages"/> + </Compiler> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">2</VersionInfo> + <VersionInfo Name="MinorVer">1</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">1040</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName">www.instantobjects.org</VersionInfoKeys> + <VersionInfoKeys Name="FileDescription">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="ProductVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Source> + <Source Name="MainSource">DclIOIBX.dpk</Source> + </Source> + <Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\dcloffice2k120.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\dclofficexp120.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> + </Excluded_Packages> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + <ItemGroup> + <DelphiCompile Include="DclIOIBX.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="..\InstantIBX.dcr"/> + <DCCReference Include="vcl.dcp"/> + <DCCReference Include="vcldb.dcp"/> + <DCCReference Include="ibxpress.dcp"/> + <DCCReference Include="IOCore.dcp"/> + <DCCReference Include="IOIBX.dcp"/> + <DCCReference Include="..\InstantIBXReg.pas"/> + <DCCReference Include="..\InstantIBX.dcr"/> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + </Project> Property changes on: trunk/Source/Brokers/IBX/D2009/DclIOIBX.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/IBX/D2009/DclIOIBX.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/IBX/D2009/DclIOIBX.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/IBX/D2009/IOIBX.dpk =================================================================== --- trunk/Source/Brokers/IBX/D2009/IOIBX.dpk (rev 0) +++ trunk/Source/Brokers/IBX/D2009/IOIBX.dpk 2009-07-27 12:49:16 UTC (rev 811) @@ -0,0 +1,41 @@ +package IOIBX; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects IBX Run-Time Support (Delphi 2009)'} +{$LIBSUFFIX '_D12'} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + vcl, + vcldb, + ibxpress, + IOCore, + IOIBFbCatalog; + +contains + InstantIBXConnectionDefEdit in '..\InstantIBXConnectionDefEdit.pas' {InstantIBXConnectionDefEditForm}, + InstantIBX in '..\InstantIBX.pas'; + +end. Property changes on: trunk/Source/Brokers/IBX/D2009/IOIBX.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/IBX/D2009/IOIBX.dproj =================================================================== --- trunk/Source/Brokers/IBX/D2009/IOIBX.dproj (rev 0) +++ trunk/Source/Brokers/IBX/D2009/IOIBX.dproj 2009-07-27 12:49:16 UTC (rev 811) @@ -0,0 +1,121 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{5acbe1c1-475f-42c8-b3cc-807abb508b3d}</ProjectGuid> + <MainSource>IOIBX.dpk</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>C:\Documents and Settings\nandod\Documenti\RAD Studio\Projects\Bpl\IOIBX_D11.bpl</DCC_DependencyCheckOutputName> + <ProjectVersion>12.0</ProjectVersion> + <Config Condition="'$(Config)'==''">Debug</Config> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DesignOnlyPackage>false</DesignOnlyPackage> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\6.0\Bpl\IOIBX_D12.bpl</DCC_DependencyCheckOutputName> + <DCC_Description>InstantObjects IBX Run-Time Support (Delphi 2009)</DCC_Description> + <RuntimeOnlyPackage>true</RuntimeOnlyPackage> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <GenPackage>true</GenPackage> + <DllSuffix>_D12</DllSuffix> + <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <Version>7.0</Version> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <Version>7.0</Version> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Compiler> + <Compiler Name="UsePackages">False</Compiler> + <Compiler Name="Packages"/> + </Compiler> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">2</VersionInfo> + <VersionInfo Name="MinorVer">1</VersionInfo> + <Versi... [truncated message content] |
From: <na...@us...> - 2009-08-05 10:57:20
|
Revision: 813 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=813&view=rev Author: nandod Date: 2009-08-05 10:57:00 +0000 (Wed, 05 Aug 2009) Log Message: ----------- * Unicode support in XML broker and other XML-related areas rewritten. Demos and Tests updated accordingly. + As a bonus, XML broker now supports ORDER BY in IQL queries. * Removed useless code from InstantADO that was causing problems in D2009. Modified Paths: -------------- trunk/Demos/Intro/Intro.mdr trunk/Demos/Intro/Intro_D2009.dproj trunk/Demos/PrimerCross/Main.dfm trunk/Demos/PrimerCross/Main.pas trunk/Demos/PrimerCross/Primer.dproj trunk/Demos/PrimerCross/PrimerExternal.xml trunk/Source/Brokers/ADO/InstantADO.pas trunk/Source/Brokers/XML/InstantXML.pas trunk/Source/Core/InstantClasses.pas trunk/Source/Core/InstantConsts.pas trunk/Source/Core/InstantPersistence.pas trunk/Source/Core/InstantUtils.pas trunk/Source/Design/D2007/DclIOCore.dpk trunk/Source/Design/D2007/DclIOCore.dproj trunk/Source/Design/D7/DclIOCore.dpk trunk/Source/Design/InstantAbout.pas trunk/Source/PackageGroups/D2007/DesignTimePackages.groupproj trunk/Tests/TestIO.dpr trunk/Tests/TestIO.dproj trunk/Tests/TestIO.mdr trunk/Tests/TestIO.mdrt trunk/Tests/TestIO.mdx trunk/Tests/TestIO.mdxt trunk/Tests/TestIO_D2009.dproj Added Paths: ----------- trunk/Demos/Intro/Intro_D2009.dpr trunk/Demos/PrimerCross/Primer_D2009.dpr trunk/Demos/PrimerCross/Primer_D2009.dproj trunk/Demos/PrimerCross/Primer_D2009.mdr trunk/Demos/PrimerCross/Primer_D2009.res trunk/Demos/PrimerCross/Primer_D2009.xml trunk/Source/PackageGroups/D2009/DesignTimePackages.groupproj trunk/Source/PackageGroups/D2009/RunTimePackages.groupproj trunk/Tests/TestIO_D2009.dpr trunk/Tests/TestIO_D2009.mdrt trunk/Tests/TestIO_D2009.mdx trunk/Tests/TestIO_D2009.mdxt trunk/Tests/TestIO_D2009.res trunk/Tests/TestXMLBroker.pas Removed Paths: ------------- trunk/Tests/TestIO_D2007.dproj trunk/Tests/TestIO_D2007.mdr Property Changed: ---------------- trunk/Demos/PrimerCross/ trunk/Tests/ Modified: trunk/Demos/Intro/Intro.mdr =================================================================== (Binary files differ) Added: trunk/Demos/Intro/Intro_D2009.dpr =================================================================== --- trunk/Demos/Intro/Intro_D2009.dpr (rev 0) +++ trunk/Demos/Intro/Intro_D2009.dpr 2009-08-05 10:57:00 UTC (rev 813) @@ -0,0 +1,21 @@ +program Intro_D2009; + +uses + Forms, + Model in 'Model.pas', + Main in 'Main.pas' {MainForm}, + ContactEdit in 'ContactEdit.pas' {ContactEditForm}, + PersonEdit in 'PersonEdit.pas' {PersonEditForm}, + CompanyEdit in 'CompanyEdit.pas' {CompanyEditForm}; + +{$R *.RES} +{$R *.MDR} {Model} + +begin + Application.Initialize; + Application.CreateForm(TMainForm, MainForm); + Application.CreateForm(TContactEditForm, ContactEditForm); + Application.CreateForm(TPersonEditForm, PersonEditForm); + Application.CreateForm(TCompanyEditForm, CompanyEditForm); + Application.Run; +end. Property changes on: trunk/Demos/Intro/Intro_D2009.dpr ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Modified: trunk/Demos/Intro/Intro_D2009.dproj =================================================================== --- trunk/Demos/Intro/Intro_D2009.dproj 2009-07-27 13:24:38 UTC (rev 812) +++ trunk/Demos/Intro/Intro_D2009.dproj 2009-08-05 10:57:00 UTC (rev 813) @@ -1,7 +1,7 @@ <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <ProjectGuid>{5e7fed32-48a7-4d66-a1ed-fbf2fb9c43c1}</ProjectGuid> - <MainSource>Intro.dpr</MainSource> + <MainSource>Intro_D2009.dpr</MainSource> <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> @@ -24,7 +24,7 @@ </PropertyGroup> <PropertyGroup Condition="'$(Base)'!=''"> <DCC_UsePackage>vclx;vcl;dbrtl;Rave76VCL;bdertl;rtl;vclactnband;vcldb;vcldbx;dsnap;dsnapcon;TeeUI;TeeDB;Tee;adortl;vclib;ibxpress;IndyCore;IndySystem;IndyProtocols;xmlrtl;inet;intrawebdb_100_120;Intraweb_100_120;VclSmp;vclie;websnap;webdsnap;inetdbbde;inetdbxpress;soaprtl;vclribbon;dbexpress;DbxCommonDriver;DataSnapIndy10ServerTransport;DataSnapProviderClient;DataSnapServer;DbxClientDriver;DBXInterBaseDriver;DBXMySQLDriver;dbxcds;DBXSybaseASEDriver;DBXSybaseASADriver;DBXOracleDriver;DBXMSSQLDriver;DBXInformixDriver;DBXDb2Driver;IWEliteSuite_100_Delphi2009;InstantBDExpress;IOCore;IOBDE</DCC_UsePackage> - <DCC_DependencyCheckOutputName>Intro.exe</DCC_DependencyCheckOutputName> + <DCC_DependencyCheckOutputName>Intro_D2009.exe</DCC_DependencyCheckOutputName> </PropertyGroup> <PropertyGroup Condition="'$(Cfg_1)'!=''"> <Version>7.0</Version> @@ -97,7 +97,7 @@ <VersionInfoKeys Name="Comments"/> </VersionInfoKeys> <Source> - <Source Name="MainSource">Intro.dpr</Source> + <Source Name="MainSource">Intro_D2009.dpr</Source> </Source> <Excluded_Packages> <Excluded_Packages Name="$(BDS)\bin\dcloffice2k120.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> @@ -108,7 +108,7 @@ <ProjectFileVersion>12</ProjectFileVersion> </ProjectExtensions> <ItemGroup> - <DelphiCompile Include="Intro.dpr"> + <DelphiCompile Include="Intro_D2009.dpr"> <MainSource>MainSource</MainSource> </DelphiCompile> <DCCReference Include="Model.pas"/> Property changes on: trunk/Demos/PrimerCross ___________________________________________________________________ Modified: svn:ignore - *.dcu *.~* *.ddp *.exe __history *.identcache *.local *.dsk *.MB + *.dcu *.~* *.ddp *.exe __history *.identcache *.local *.dsk *.MB XMLDB Modified: trunk/Demos/PrimerCross/Main.dfm =================================================================== --- trunk/Demos/PrimerCross/Main.dfm 2009-07-27 13:24:38 UTC (rev 812) +++ trunk/Demos/PrimerCross/Main.dfm 2009-08-05 10:57:00 UTC (rev 813) @@ -1,8 +1,6 @@ object MainForm: TMainForm Left = 254 Top = 225 - Width = 521 - Height = 372 Caption = 'InstantObjects Primer' Color = clBtnFace Font.Charset = DEFAULT_CHARSET @@ -12,25 +10,24 @@ Font.Style = [] Menu = MainMenu OldCreateOrder = False - WindowState = wsMaximized OnClose = FormClose OnCreate = FormCreate + OnShow = FormShow PixelsPerInch = 96 TextHeight = 13 object SideBarSplitter: TSplitter Left = 88 - Top = 28 - Height = 271 + Top = 26 + Height = 458 ResizeStyle = rsLine end object ToolBar: TToolBar Left = 0 Top = 0 - Width = 513 - Height = 28 + Width = 624 + Height = 26 AutoSize = True BorderWidth = 1 - Flat = True Images = ActionImages ParentShowHint = False ShowHint = True @@ -48,8 +45,8 @@ end object StatusBar: TStatusBar Left = 0 - Top = 299 - Width = 513 + Top = 484 + Width = 624 Height = 19 Panels = < item @@ -62,9 +59,9 @@ end object SideBarPanel: TPanel Left = 0 - Top = 28 + Top = 26 Width = 88 - Height = 271 + Height = 458 Align = alLeft BevelOuter = bvNone BorderStyle = bsSingle @@ -82,7 +79,7 @@ Left = 0 Top = 8 Width = 84 - Height = 259 + Height = 446 Align = alClient BorderStyle = bsNone Color = clAppWorkSpace @@ -100,16 +97,16 @@ end object WorkPanel: TPanel Left = 91 - Top = 28 - Width = 422 - Height = 271 + Top = 26 + Width = 533 + Height = 458 Align = alClient BevelOuter = bvNone TabOrder = 3 object WorkTitleSpacer: TBevel Left = 0 Top = 27 - Width = 422 + Width = 533 Height = 4 Align = alTop Shape = bsSpacer @@ -117,7 +114,7 @@ object WorkTitlePanel: TPanel Left = 0 Top = 0 - Width = 422 + Width = 533 Height = 27 Align = alTop BevelInner = bvLowered @@ -140,8 +137,8 @@ object WorkClientPanel: TPanel Left = 0 Top = 31 - Width = 422 - Height = 240 + Width = 533 + Height = 427 Align = alClient BevelOuter = bvNone TabOrder = 1 Modified: trunk/Demos/PrimerCross/Main.pas =================================================================== --- trunk/Demos/PrimerCross/Main.pas 2009-07-27 13:24:38 UTC (rev 812) +++ trunk/Demos/PrimerCross/Main.pas 2009-08-05 10:57:00 UTC (rev 813) @@ -75,6 +75,7 @@ procedure ExportItemClick(Sender: TObject); procedure ImportItemClick(Sender: TObject); procedure ExportModelItemClick(Sender: TObject); + procedure FormShow(Sender: TObject); private FActiveSubView: TBasicViewForm; FConnectionDef: TInstantConnectionDef; @@ -541,6 +542,11 @@ UpdateStatus; end; +procedure TMainForm.FormShow(Sender: TObject); +begin + WindowState := wsMaximized; +end; + function TMainForm.GetConnectionName: string; begin if Assigned(FConnectionDef) then Modified: trunk/Demos/PrimerCross/Primer.dproj =================================================================== --- trunk/Demos/PrimerCross/Primer.dproj 2009-07-27 13:24:38 UTC (rev 812) +++ trunk/Demos/PrimerCross/Primer.dproj 2009-08-05 10:57:00 UTC (rev 813) @@ -1,117 +1,183 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <ProjectGuid>{d197a2d4-31b9-43b1-8070-3f804d86e53f}</ProjectGuid> - <MainSource>Primer.dpr</MainSource> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> - <DCC_DependencyCheckOutputName>Primer.exe</DCC_DependencyCheckOutputName> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <Version>7.0</Version> - <DCC_DebugInformation>False</DCC_DebugInformation> - <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> - <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> - <DCC_Define>RELEASE</DCC_Define> - <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_UnitSearchPath> - <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_ResourcePath> - <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_ObjPath> - <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_IncludePath> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <Version>7.0</Version> - <DCC_Define>DEBUG;IO_STATEMENT_LOGGING</DCC_Define> - <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_UnitSearchPath> - <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_ResourcePath> - <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_ObjPath> - <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_IncludePath> - </PropertyGroup> - <ProjectExtensions> - <Borland.Personality>Delphi.Personality</Borland.Personality> - <Borland.ProjectType>VCLApplication</Borland.ProjectType> - <BorlandProject> -<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">2</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">1030</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName">InstantObjects.org</VersionInfoKeys><VersionInfoKeys Name="FileDescription">Primer Demo</VersionInfoKeys><VersionInfoKeys Name="FileVersion">2.0.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright">MPL public license</VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">2.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">Primer.dpr</Source></Source></Delphi.Personality> <ModelSupport>False</ModelSupport> -</BorlandProject></BorlandProject> - </ProjectExtensions> - <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" /> - <ItemGroup> - <DelphiCompile Include="Primer.dpr"> - <MainSource>MainSource</MainSource> - </DelphiCompile> - <DCCReference Include="BasicBrowse.pas"> - <Form>BasicBrowseForm</Form> - </DCCReference> - <DCCReference Include="BasicEdit.pas"> - <Form>BasicEditForm</Form> - </DCCReference> - <DCCReference Include="BasicView.pas"> - <Form>BasicViewForm</Form> - <DesignClass>TFrame</DesignClass> - </DCCReference> - <DCCReference Include="CategoryBrowse.pas"> - <Form>CategoryBrowseForm</Form> - </DCCReference> - <DCCReference Include="CompanyBrowse.pas"> - <Form>CompanyBrowseForm</Form> - </DCCReference> - <DCCReference Include="CompanyEdit.pas"> - <Form>CompanyEditForm</Form> - </DCCReference> - <DCCReference Include="ContactBrowse.pas"> - <Form>ContactBrowseForm</Form> - </DCCReference> - <DCCReference Include="ContactEdit.pas"> - <Form>ContactEditForm</Form> - </DCCReference> - <DCCReference Include="ContactFilterEdit.pas"> - <Form>ContactFilterEditForm</Form> - </DCCReference> - <DCCReference Include="ContactSort.pas"> - <Form>ContactSortForm</Form> - </DCCReference> - <DCCReference Include="ContactView.pas"> - <Form>ContactViewForm</Form> - <DesignClass>TFrame</DesignClass> - </DCCReference> - <DCCReference Include="CountryBrowse.pas"> - <Form>CountryBrowseForm</Form> - </DCCReference> - <DCCReference Include="DemoData.pas" /> - <DCCReference Include="DemoDataRequest.pas"> - <Form>DemoDataRequestForm</Form> - </DCCReference> - <DCCReference Include="HelpView.pas"> - <Form>HelpViewForm</Form> - <DesignClass>TFrame</DesignClass> - </DCCReference> - <DCCReference Include="Main.pas"> - <Form>MainForm</Form> - </DCCReference> - <DCCReference Include="MainData.pas"> - <Form>MainDataModule</Form> - <DesignClass>TDataModule</DesignClass> - </DCCReference> - <DCCReference Include="Model\Model.pas" /> - <DCCReference Include="PerformanceView.pas"> - <Form>PerformanceViewForm</Form> - <DesignClass>TFrame</DesignClass> - </DCCReference> - <DCCReference Include="PersonBrowse.pas"> - <Form>PersonBrowseForm</Form> - </DCCReference> - <DCCReference Include="PersonEdit.pas"> - <Form>PersonEditForm</Form> - </DCCReference> - <DCCReference Include="QueryView.pas"> - <Form>QueryViewForm</Form> - <DesignClass>TFrame</DesignClass> - </DCCReference> - <DCCReference Include="RandomData.pas" /> - <DCCReference Include="Stopwatch.pas" /> - <DCCReference Include="Utility.pas" /> - <DCCReference Include="Welcome.pas"> - <Form>WelcomeForm</Form> - </DCCReference> - </ItemGroup> -</Project> \ No newline at end of file + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{d197a2d4-31b9-43b1-8070-3f804d86e53f}</ProjectGuid> + <MainSource>Primer.dpr</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>Primer.exe</DCC_DependencyCheckOutputName> + <ProjectVersion>12.0</ProjectVersion> + <Config Condition="'$(Config)'==''">Debug</Config> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_DependencyCheckOutputName>Primer.exe</DCC_DependencyCheckOutputName> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <Version>7.0</Version> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> + <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ResourcePath)</DCC_ResourcePath> + <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ObjPath)</DCC_ObjPath> + <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_IncludePath)</DCC_IncludePath> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <Version>7.0</Version> + <DCC_Define>DEBUG;IO_STATEMENT_LOGGING;$(DCC_Define)</DCC_Define> + <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> + <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ResourcePath)</DCC_ResourcePath> + <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ObjPath)</DCC_ObjPath> + <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_IncludePath)</DCC_IncludePath> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>VCLApplication</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">2</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">1030</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName">InstantObjects.org</VersionInfoKeys> + <VersionInfoKeys Name="FileDescription">Primer Demo</VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">2.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright">MPL public license</VersionInfoKeys> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName"/> + <VersionInfoKeys Name="ProductVersion">2.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Source> + <Source Name="MainSource">Primer.dpr</Source> + </Source> + </Delphi.Personality> + <ModelSupport>False</ModelSupport> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + <ItemGroup> + <DelphiCompile Include="Primer.dpr"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="Main.pas"> + <Form>MainForm</Form> + </DCCReference> + <DCCReference Include="Model\Model.pas"/> + <DCCReference Include="ContactView.pas"> + <Form>ContactViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="BasicView.pas"> + <Form>BasicViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="BasicEdit.pas"> + <Form>BasicEditForm</Form> + </DCCReference> + <DCCReference Include="ContactEdit.pas"> + <Form>ContactEditForm</Form> + </DCCReference> + <DCCReference Include="PersonEdit.pas"> + <Form>PersonEditForm</Form> + </DCCReference> + <DCCReference Include="CompanyEdit.pas"> + <Form>CompanyEditForm</Form> + </DCCReference> + <DCCReference Include="DemoData.pas"/> + <DCCReference Include="ContactFilterEdit.pas"> + <Form>ContactFilterEditForm</Form> + </DCCReference> + <DCCReference Include="MainData.pas"> + <Form>MainDataModule</Form> + <DesignClass>TDataModule</DesignClass> + </DCCReference> + <DCCReference Include="ContactBrowse.pas"> + <Form>ContactBrowseForm</Form> + </DCCReference> + <DCCReference Include="CompanyBrowse.pas"> + <Form>CompanyBrowseForm</Form> + </DCCReference> + <DCCReference Include="PerformanceView.pas"> + <Form>PerformanceViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="Welcome.pas"> + <Form>WelcomeForm</Form> + </DCCReference> + <DCCReference Include="PersonBrowse.pas"> + <Form>PersonBrowseForm</Form> + </DCCReference> + <DCCReference Include="BasicBrowse.pas"> + <Form>BasicBrowseForm</Form> + </DCCReference> + <DCCReference Include="CountryBrowse.pas"> + <Form>CountryBrowseForm</Form> + </DCCReference> + <DCCReference Include="DemoDataRequest.pas"> + <Form>DemoDataRequestForm</Form> + </DCCReference> + <DCCReference Include="ContactSort.pas"> + <Form>ContactSortForm</Form> + </DCCReference> + <DCCReference Include="CategoryBrowse.pas"> + <Form>CategoryBrowseForm</Form> + </DCCReference> + <DCCReference Include="HelpView.pas"> + <Form>HelpViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="QueryView.pas"> + <Form>QueryViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="RandomData.pas"/> + <DCCReference Include="Stopwatch.pas"/> + <DCCReference Include="Utility.pas"/> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + </Project> Modified: trunk/Demos/PrimerCross/PrimerExternal.xml =================================================================== --- trunk/Demos/PrimerCross/PrimerExternal.xml 2009-07-27 13:24:38 UTC (rev 812) +++ trunk/Demos/PrimerCross/PrimerExternal.xml 2009-08-05 10:57:00 UTC (rev 813) @@ -1,11 +1,2 @@ -<TInstantConnectionDefs> - <TInstantIBXConnectionDef> - <Name>FirebirdDBExternal</Name> - <IsBuilt>TRUE</IsBuilt> - <LoginPrompt>FALSE</LoginPrompt> - <ConnectionString>.\FirebirdDB\PRIMERDB.FDB</ConnectionString> - <Options>ibxUseDelimitedIdents</Options> - <Params>User_Name=SYSDBA -Password=masterkey</Params> - </TInstantIBXConnectionDef> -</TInstantConnectionDefs> \ No newline at end of file +<TInstantConnectionDefs><TInstantIBXConnectionDef><Name>FirebirdDBExternal</Name><IsBuilt>TRUE</IsBuilt><LoginPrompt>FALSE</LoginPrompt><ConnectionString>.\FirebirdDB\PRIMERDB.FDB</ConnectionString><Options>ibxUseDelimitedIdents</Options><Params>User_Name=SYSDBA +Password=masterkey</Params></TInstantIBXConnectionDef><TInstantXMLConnectionDef><Name>XMLDB</Name><IsBuilt>TRUE</IsBuilt><RootFolder>W:\Projects\instantobjects\Demos\PrimerCross\XMLDB</RootFolder></TInstantXMLConnectionDef></TInstantConnectionDefs> \ No newline at end of file Added: trunk/Demos/PrimerCross/Primer_D2009.dpr =================================================================== --- trunk/Demos/PrimerCross/Primer_D2009.dpr (rev 0) +++ trunk/Demos/PrimerCross/Primer_D2009.dpr 2009-08-05 10:57:00 UTC (rev 813) @@ -0,0 +1,80 @@ +(* + * InstantObjects + * Primer Demo - with "internal storage" of Part and Parts + * Model.pas unit is located in Model folder + * + *) + +(* ***** 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, Nando Dessena + * + * ***** END LICENSE BLOCK ***** *) + +program Primer_D2009; + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + + +uses + Forms, + Main in 'Main.pas' {MainForm}, + Model in 'Model\Model.pas', + ContactView in 'ContactView.pas' {ContactViewForm: TFrame}, + BasicView in 'BasicView.pas' {BasicViewForm: TFrame}, + BasicEdit in 'BasicEdit.pas' {BasicEditForm}, + ContactEdit in 'ContactEdit.pas' {ContactEditForm}, + PersonEdit in 'PersonEdit.pas' {PersonEditForm}, + CompanyEdit in 'CompanyEdit.pas' {CompanyEditForm}, + DemoData in 'DemoData.pas', + ContactFilterEdit in 'ContactFilterEdit.pas' {ContactFilterEditForm}, + MainData in 'MainData.pas' {MainDataModule: TDataModule}, + ContactBrowse in 'ContactBrowse.pas' {ContactBrowseForm}, + CompanyBrowse in 'CompanyBrowse.pas' {CompanyBrowseForm}, + PerformanceView in 'PerformanceView.pas' {PerformanceViewForm: TFrame}, + Welcome in 'Welcome.pas' {WelcomeForm}, + PersonBrowse in 'PersonBrowse.pas' {PersonBrowseForm}, + BasicBrowse in 'BasicBrowse.pas' {BasicBrowseForm}, + CountryBrowse in 'CountryBrowse.pas' {CountryBrowseForm}, + DemoDataRequest in 'DemoDataRequest.pas' {DemoDataRequestForm}, + ContactSort in 'ContactSort.pas' {ContactSortForm}, + CategoryBrowse in 'CategoryBrowse.pas' {CategoryBrowseForm}, + HelpView in 'HelpView.pas' {HelpViewForm: TFrame}, + QueryView in 'QueryView.pas' {QueryViewForm: TFrame}, + RandomData in 'RandomData.pas', + Stopwatch in 'Stopwatch.pas', + Utility in 'Utility.pas'; + +{$R *.res} +{$R *.mdr} {Model} + +begin + Application.Initialize; + Application.Title := 'InstantObjects Primer Demo (Delphi 2009 version)'; + Application.CreateForm(TMainForm, MainForm); + Application.CreateForm(TMainDataModule, MainDataModule); + Application.Run; +end. Property changes on: trunk/Demos/PrimerCross/Primer_D2009.dpr ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Demos/PrimerCross/Primer_D2009.dproj =================================================================== --- trunk/Demos/PrimerCross/Primer_D2009.dproj (rev 0) +++ trunk/Demos/PrimerCross/Primer_D2009.dproj 2009-08-05 10:57:00 UTC (rev 813) @@ -0,0 +1,184 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{d197a2d4-31b9-43b1-8070-3f804d86e53f}</ProjectGuid> + <MainSource>Primer_D2009.dpr</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>Primer.exe</DCC_DependencyCheckOutputName> + <ProjectVersion>12.0</ProjectVersion> + <Config Condition="'$(Config)'==''">Debug</Config> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_DependencyCheckOutputName>Primer_D2009.exe</DCC_DependencyCheckOutputName> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <Version>7.0</Version> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> + <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ResourcePath)</DCC_ResourcePath> + <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ObjPath)</DCC_ObjPath> + <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_IncludePath)</DCC_IncludePath> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <DCC_DebugDCUs>true</DCC_DebugDCUs> + <Version>7.0</Version> + <DCC_Define>DEBUG;IO_STATEMENT_LOGGING;$(DCC_Define)</DCC_Define> + <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> + <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ResourcePath)</DCC_ResourcePath> + <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ObjPath)</DCC_ObjPath> + <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_IncludePath)</DCC_IncludePath> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>VCLApplication</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">2</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">1030</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName">InstantObjects.org</VersionInfoKeys> + <VersionInfoKeys Name="FileDescription">Primer Demo</VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">2.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright">MPL public license</VersionInfoKeys> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName"/> + <VersionInfoKeys Name="ProductVersion">2.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Source> + <Source Name="MainSource">Primer_D2009.dpr</Source> + </Source> + </Delphi.Personality> + <ModelSupport>False</ModelSupport> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + <ItemGroup> + <DelphiCompile Include="Primer_D2009.dpr"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="Main.pas"> + <Form>MainForm</Form> + </DCCReference> + <DCCReference Include="Model\Model.pas"/> + <DCCReference Include="ContactView.pas"> + <Form>ContactViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="BasicView.pas"> + <Form>BasicViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="BasicEdit.pas"> + <Form>BasicEditForm</Form> + </DCCReference> + <DCCReference Include="ContactEdit.pas"> + <Form>ContactEditForm</Form> + </DCCReference> + <DCCReference Include="PersonEdit.pas"> + <Form>PersonEditForm</Form> + </DCCReference> + <DCCReference Include="CompanyEdit.pas"> + <Form>CompanyEditForm</Form> + </DCCReference> + <DCCReference Include="DemoData.pas"/> + <DCCReference Include="ContactFilterEdit.pas"> + <Form>ContactFilterEditForm</Form> + </DCCReference> + <DCCReference Include="MainData.pas"> + <Form>MainDataModule</Form> + <DesignClass>TDataModule</DesignClass> + </DCCReference> + <DCCReference Include="ContactBrowse.pas"> + <Form>ContactBrowseForm</Form> + </DCCReference> + <DCCReference Include="CompanyBrowse.pas"> + <Form>CompanyBrowseForm</Form> + </DCCReference> + <DCCReference Include="PerformanceView.pas"> + <Form>PerformanceViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="Welcome.pas"> + <Form>WelcomeForm</Form> + </DCCReference> + <DCCReference Include="PersonBrowse.pas"> + <Form>PersonBrowseForm</Form> + </DCCReference> + <DCCReference Include="BasicBrowse.pas"> + <Form>BasicBrowseForm</Form> + </DCCReference> + <DCCReference Include="CountryBrowse.pas"> + <Form>CountryBrowseForm</Form> + </DCCReference> + <DCCReference Include="DemoDataRequest.pas"> + <Form>DemoDataRequestForm</Form> + </DCCReference> + <DCCReference Include="ContactSort.pas"> + <Form>ContactSortForm</Form> + </DCCReference> + <DCCReference Include="CategoryBrowse.pas"> + <Form>CategoryBrowseForm</Form> + </DCCReference> + <DCCReference Include="HelpView.pas"> + <Form>HelpViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="QueryView.pas"> + <Form>QueryViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="RandomData.pas"/> + <DCCReference Include="Stopwatch.pas"/> + <DCCReference Include="Utility.pas"/> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + </Project> Property changes on: trunk/Demos/PrimerCross/Primer_D2009.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Demos/PrimerCross/Primer_D2009.mdr =================================================================== (Binary files differ) Property changes on: trunk/Demos/PrimerCross/Primer_D2009.mdr ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Demos/PrimerCross/Primer_D2009.res =================================================================== (Binary files differ) Property changes on: trunk/Demos/PrimerCross/Primer_D2009.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Demos/PrimerCross/Primer_D2009.xml =================================================================== --- trunk/Demos/PrimerCross/Primer_D2009.xml (rev 0) +++ trunk/Demos/PrimerCross/Primer_D2009.xml 2009-08-05 10:57:00 UTC (rev 813) @@ -0,0 +1 @@ +<TInstantConnectionDefs><TInstantXMLConnectionDef><Name>XMLDB</Name><IsBuilt>TRUE</IsBuilt><RootFolder>C:\Users\nandod\Work\Projects\instantobjects\Demos\PrimerCross\XMLDB</RootFolder></TInstantXMLConnectionDef></TInstantConnectionDefs> \ No newline at end of file Property changes on: trunk/Demos/PrimerCross/Primer_D2009.xml ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Modified: trunk/Source/Brokers/ADO/InstantADO.pas =================================================================== --- trunk/Source/Brokers/ADO/InstantADO.pas 2009-07-27 13:24:38 UTC (rev 812) +++ trunk/Source/Brokers/ADO/InstantADO.pas 2009-08-05 10:57:00 UTC (rev 813) @@ -109,7 +109,6 @@ function CreateDataSet: TDataSet; override; function CreateNavigationalLinkResolver(const ATableName: string): TInstantNavigationalLinkResolver; override; - function Find(const AClassName, AObjectId: string): Boolean; function Locate(const AClassName, AObjectId: string): Boolean; override; public function FormatTableName(const ATableName: string): string; virtual; @@ -827,48 +826,6 @@ Result := TInstantADOLinkResolver.Create(Self, ATableName); end; -function TInstantADOResolver.Find(const AClassName, - AObjectId: string): Boolean; -var - LocateSet: _RecordSet; - Criteria: string; - Bm: OleVariant; - SkipCount: Integer; -begin - with DataSet do - begin - LocateSet := RecordSet.Clone(adLockReadOnly); - Criteria := Format('%s=%s', [InstantIdFieldName, InstantQuote(AObjectId,'''')]); - SkipCount := 0; - Result := False; - if not LocateSet.EOF then - begin - Bm := LocateSet.Bookmark; - while not LocateSet.EOF do - begin - LocateSet.Find(Criteria, SkipCount, adSearchForward, Bm); - Result := not LocateSet.EOF; - if Result then - begin - Bm := LocateSet.Bookmark; - Result := LocateSet.Fields[InstantClassFieldName].Value = AClassName; - if Result then - begin - GotoBookmark(@Bm); - if Recordset.BOF then - begin - Result := False; - CursorPosChanged; - end; - Break; - end; - end; - SkipCount := 1; - end; - end; - end; -end; - function TInstantADOResolver.FormatTableName( const ATableName: string): string; begin @@ -894,8 +851,6 @@ with DataSet do if Supports([coSeek]) then Result := Seek(KeyVals) - else if Supports([coFind]) then - Result := Find(AClassName, AObjectId) else Result := Locate(InstantIndexFieldNames, KeyVals, []); end; Modified: trunk/Source/Brokers/XML/InstantXML.pas =================================================================== --- trunk/Source/Brokers/XML/InstantXML.pas 2009-07-27 13:24:38 UTC (rev 812) +++ trunk/Source/Brokers/XML/InstantXML.pas 2009-08-05 10:57:00 UTC (rev 813) @@ -229,6 +229,7 @@ FParamsObject: TParams; FStorageNames: TStringList; FObjectClassNames: TStringList; + FIQLCommand: TInstantIQLCommand; procedure DestroyObjectReferenceList; function GetObjectReferenceCount: Integer; function GetObjectReferenceList: TObjectList; @@ -236,10 +237,16 @@ // Creates an object reference for each item in AFileList that represents // an object of a class included in FObjectClassNames. procedure InitObjectReferences(const AFileList: TStrings); + + procedure SortObjectReferences; function GetParamsObject: TParams; function GetConnector: TInstantXMLConnector; procedure SetStorageNames(const Value: TStringList); procedure SetObjectClassNames(const Value: TStringList); + function SortCompareMethod(Holder, Obj1, Obj2: TInstantObject): Integer; + procedure CreateIQLCommand; + procedure QuickSortObjectReferenceList(List: TList; L, R: Integer; + Compare: TInstantSortCompare); protected class function TranslatorClass: TInstantRelationalTranslatorClass; override; function GetActive: Boolean; override; @@ -319,7 +326,7 @@ uses SysUtils, InstantConsts, InstantClasses, TypInfo, InstantXMLCatalog, - InstantXMLConnectionDefEdit, + InstantXMLConnectionDefEdit, InstantUtils, {$IFDEF MSWINDOWS} {$IFNDEF D6+} FileCtrl, @@ -799,6 +806,7 @@ FObjectClassNames := TStringList.Create; FObjectClassNames.Sorted := True; FObjectClassNames.Duplicates := dupIgnore; + FIQLCommand := TInstantIQLCommand.Create(nil); end; destructor TInstantXMLQuery.Destroy; @@ -807,6 +815,7 @@ FParamsObject.Free; FreeAndNil(FStorageNames); FreeAndNil(FObjectClassNames); + FreeAndNil(FIQLCommand); inherited; end; @@ -965,16 +974,33 @@ vFileList: TStringList; begin inherited; + CreateIQLCommand; + vFileList := TStringList.Create; try Connector.Connection.Open; Connector.Connection.LoadFileList(vFileList, FStorageNames); InitObjectReferences(vFileList); + + if Assigned(FIQLCommand.Order) then + SortObjectReferences; finally vFileList.Free; end; end; +procedure TInstantXMLQuery.CreateIQLCommand; +var + LReader: TInstantIQLReader; +begin + LReader := TInstantIQLReader.Create(TStringStream.Create(Command{$IFDEF D12+}, TEncoding.Unicode{$ENDIF}), True); + try + LReader.ReadObject(FIQLCommand); + finally + FreeAndNil(LReader); + end; +end; + procedure TInstantXMLQuery.InternalReleaseObject(AObject: TObject); var Index: Integer; @@ -1018,6 +1044,70 @@ FStorageNames.Assign(Value); end; +procedure TInstantXMLQuery.QuickSortObjectReferenceList(List: TList; + L, R: Integer; Compare: TInstantSortCompare); +var + I, J, P: Integer; +begin + repeat + I := L; + J := R; + P := (L + R) shr 1; + repeat + while Compare(nil, + TInstantObjectReference(List[I]).Dereference, + TInstantObjectReference(List[P]).Dereference) < 0 do + Inc(I); + while Compare(nil, + TInstantObjectReference(List[J]).Dereference, + TInstantObjectReference(List[P]).Dereference) > 0 do + Dec(J); + if I <= J then + begin + List.Exchange(I, J); + if P = I then + P := J + else if P = J then + P := I; + Inc(I); + Dec(J); + end; + until I > J; + if L < J then + QuickSortObjectReferenceList(List, L, J, Compare); + L := I; + until I >= R; +end; + +procedure TInstantXMLQuery.SortObjectReferences; +begin + if ObjectReferenceList.Count > 0 then + QuickSortObjectReferenceList(ObjectReferenceList, 0, + Pred(ObjectReferenceList.Count), SortCompareMethod); +end; + +function TInstantXMLQuery.SortCompareMethod(Holder, Obj1, + Obj2: TInstantObject): Integer; +var + LOrder: TInstantIQLOrder; +begin + Assert(Assigned(FIQLCommand.Order)); + + Result := 0; + LOrder := FIQLCommand.Order; + Assert(Assigned(LOrder.OrderSpec)); + while Assigned(LOrder) do + begin + Result := InstantCompareObjects(Obj1, Obj2, + LOrder.OrderSpec.Expression.Text, []); + if LOrder.OrderSpec.OrderDirection = odDesc then + Result := -Result; + if Result <> 0 then + Break; + LOrder := LOrder.NextOrder; + end; +end; + class function TInstantXMLQuery.TranslatorClass: TInstantRelationalTranslatorClass; begin @@ -1039,11 +1129,34 @@ end; end; +{$IFDEF UNICODE} function TXMLFilesAccessor.SaveInstantObjectToXmlFile( const AObject: TInstantObject; const AFileName: string): Boolean; var strstream: TStringStream; fileStream: TFileStream; + DataStr: UTF8String; +begin + strstream := TStringStream.Create('', TEncoding.UTF8); + try + InstantWriteObject(strStream, sfXML, AObject); + DataStr := XML_UTF8_HEADER + UTF8String(strStream.DataString); + finally + strStream.Free; + end; + fileStream := TFileStream.Create(AFileName, fmCreate); + try + Result := fileStream.Write(DataStr[1], Length(DataStr)) <> 0; + finally + fileStream.Free; + end; +end; +{$ELSE} +function TXMLFilesAccessor.SaveInstantObjectToXmlFile( + const AObject: TInstantObject; const AFileName: string): Boolean; +var + strstream: TStringStream; + fileStream: TFileStream; DataStr: string; begin strstream := TStringStream.Create(''); @@ -1067,6 +1180,7 @@ fileStream.Free; end; end; +{$ENDIF} function RemoveXmlDeclaration(const xmlString: string): string; var @@ -1079,10 +1193,30 @@ Result := xmlString; end; +{$IFDEF UNICODE} function TXMLFilesAccessor.LoadInstantObjectFromXmlFile( const AObject: TInstantObject; const AObjectId, AFileName: string): Boolean; var fileStream: TFileStream; +begin + if FileExists(AFileName) then + begin + fileStream := TFileStream.Create(AFileName, fmOpenRead); + try + InstantReadObject(fileStream, sfXML, AObject); + Result := True; + finally + fileStream.Free; + end; + end + else + Result := False; +end; +{$ELSE} +function TXMLFilesAccessor.LoadInstantObjectFromXmlFile( + const AObject: TInstantObject; const AObjectId, AFileName: string): Boolean; +var + fileStream: TFileStream; strUtf8: string; strstream: TStringStream; begin @@ -1090,8 +1224,6 @@ try SetLength(strUtf8, fileStream.Size); Result := fileStream.Read(strUtf8[1], fileStream.Size) <> 0; - // skip XML HEADER (until the parser is "dumb") - strUtf8 := RemoveXmlDeclaration(strUtf8); finally fileStream.Free; end; @@ -1108,6 +1240,7 @@ strstream.Free; end; end; +{$ENDIF} function TXMLFilesAccessor.LocateInstantObjectXmlFile(const AObjectClassName, AObjectId, AFileName: string): Boolean; Modified: trunk/Source/Core/InstantClasses.pas =================================================================== --- trunk/Source/Core/InstantClasses.pas 2009-07-27 13:24:38 UTC (rev 812) +++ trunk/Source/Core/InstantClasses.pas 2009-08-05 10:57:00 UTC (rev 813) @@ -193,8 +193,9 @@ procedure WriteCharSet(CharSet: TChars); procedure WriteObject(AObject: TPersistent); virtual; procedure WriteProperties(AObject: TPersistent); - // Might be needed for versions of Delphi <7? - //procedure WriteString(const Value: string); + {$IFNDEF UNICODE} + procedure WriteString(const Value: string); + {$ENDIF} procedure WriteValue(Value: TValueType); property Stream: TStream read FStream; end; @@ -249,10 +250,10 @@ {$ELSE} TInstantStringStream = class(TInstantStream) private - function GetDataString: AnsiString; + function GetDataString: string; public constructor Create(AString: string); - property DataString: AnsiString read GetDataString; + property DataString: string read GetDataString; end; {$ENDIF} @@ -268,7 +269,6 @@ function GetWriter: TAbstractWriter; procedure SetPosition(Value: Integer); procedure WriteString(const S: string); - procedure WriteWideString(const S: WideString); protected property TagStack: TStringList read GetTagStack; property Writer: TAbstractWriter read GetWriter; @@ -295,14 +295,15 @@ function GetPosition: Integer; function GetReader: TAbstractReader; function GetToken: TInstantXMLToken; - function ReadEscapedChar: AnsiChar; + function ReadEscapedChar: Char; procedure SetPosition(const Value: Integer); protected procedure CheckToken(AToken: TInstantXMLToken); - function PeekChar: AnsiChar; - function ReadChar: AnsiChar; + function PeekChar: Char; + function ReadChar: Char; procedure SkipBlanks; property Reader: TAbstractReader read GetReader; + function IsProcessingInstruction(const ATagName: string): Boolean; public constructor Create(Stream: TStream); destructor Destroy; override; @@ -313,6 +314,7 @@ function ReadTag: string; function ReadTagName: string; procedure Skip; + procedure SkipProcessingInstruction; property Eof: Boolean read GetEof; property Position: Integer read GetPosition write SetPosition; property Stream: TStream read FStream; @@ -503,6 +505,7 @@ begin with TInstantTextToBinaryConverter.Create(Input, Output) do try + Processor.SkipProcessingInstruction; Convert; finally Free; @@ -513,15 +516,37 @@ AObject: TPersistent = nil): TPersistent; var MemoryStream: TMemoryStream; + {$IFDEF UNICODE} + StringStream: TStringStream; + UStringStream: TStringStream; + {$ENDIF} begin if Format = sfBinary then Result := InstantReadObjectFromStream(Stream, AObject) else begin MemoryStream := TMemoryStream.Create; try + {$IFDEF UNICODE} + StringStream := TStringStream.Create('', TEncoding.UTF8); + try + StringStream.CopyFrom(Stream, Stream.Size); + UStringStream := TStringStream.Create(StringStream.DataString, TEncoding.Unicode); + try + UStringStream.Position := 0; + InstantObjectTextToBinary(UStringStream, MemoryStream); + MemoryStream.Position := 0; + Result := InstantReadObjectFromStream(MemoryStream, AObject); + finally + UStringStream.Free; + end; + finally + StringStream.Free; + end; + {$ELSE} InstantObjectTextToBinary(Stream, MemoryStream); MemoryStream.Position := 0; Result := InstantReadObjectFromStream(MemoryStream, AObject); + {$ENDIF} finally MemoryStream.Free; end; @@ -1058,7 +1083,7 @@ WriteListEnd; end; -(* Might be needed for versions of Delphi <7? +{$IFNDEF UNICODE} procedure TInstantWriter.WriteString(const Value: string); var L: Integer; @@ -1075,7 +1100,7 @@ end; Write(Pointer(Value)^, L); end; -*) +{$ENDIF} procedure TInstantWriter.WriteValue(Value: TValueType); begin @@ -1291,7 +1316,7 @@ end; {$IFNDEF UNICODE} -function TInstantStringStream.GetDataString: AnsiString; +function TInstantStringStream.GetDataString: string; var Pos: Integer; begin @@ -1424,17 +1449,9 @@ U: UTF8String; begin U := UTF8String(S); - Writer.Write(U[1], Length(U)); + Writer.Write(Pointer(U)^, Length(U)); end; -procedure TInstantXMLProducer.WriteWideString(const S: WideString); -var - U : UTF8String; -begin - U := UTF8Encode(S); - Writer.Write(U[1], Length(U)); -end; - { TInstantXMLProcessor } procedure TInstantXMLProcessor.CheckToken(AToken: TInstantXMLToken); @@ -1481,7 +1498,7 @@ Result := xtData; end; -function TInstantXMLProcessor.PeekChar: AnsiChar; +function TInstantXMLProcessor.PeekChar: Char; var Pos: Integer; begin @@ -1517,9 +1534,9 @@ end; end; -function TInstantXMLProcessor.ReadChar: AnsiChar; +function TInstantXMLProcessor.ReadChar: Char; begin - Reader.Read(Result, SizeOf(AnsiChar)); + Reader.Read(Result, SizeOf(Char)); end; function TInstantXMLProcessor.ReadData: string; @@ -1533,11 +1550,11 @@ procedure TInstantXMLProcessor.ReadData(Stream: TStream); var - C: AnsiChar; + C: Char; CharSize: Integer; begin CheckToken(xtData); - CharSize := SizeOf(AnsiChar); + CharSize := SizeOf(Char); while not (PeekChar = InstantTagStart) do begin C := ReadEscapedChar; @@ -1545,7 +1562,7 @@ end; end; -function TInstantXMLProcessor.ReadEscapedChar: AnsiChar; +function TInstantXMLProcessor.ReadEscapedChar: Char; procedure UnEscape; var @@ -1559,7 +1576,7 @@ Result := ReadChar; end; if S[1] = '#' then - Result := AnsiChar(StrToInt(Copy(S, 2, Length(S) - 1))) + Result := Char(StrToInt(Copy(S, 2, Length(S) - 1))) else if S = 'quot' then Result := #34 else if S = 'amp' then @@ -1580,7 +1597,7 @@ function TInstantXMLProcessor.ReadTag: string; var - C: AnsiChar; + C: Char; Pos: Integer; begin Pos := Position; @@ -1595,7 +1612,16 @@ repeat C := ReadChar; Result := Result + C; - until C = InstantTagEnd; + until (C = InstantTagEnd) or (C = ' '); + // Skip attributes. + if C = ' ' then + begin + Delete(Result, Length(Result), 1); + Result := Result + InstantTagEnd; + repeat + C := ReadChar; + until C = InstantTagEnd; + end; end; function TInstantXMLProcessor.ReadTagName: string; @@ -1637,6 +1663,20 @@ ReadChar; end; +procedure TInstantXMLProcessor.SkipProcessingInstruction; +var + LNextTagName: string; +begin + LNextTagName := PeekTagName; + if IsProcessingInstruction(LNextTagName) then + ReadTag; +end; + +function TInstantXMLProcessor.IsProcessingInstruction(const ATagName: string): Boolean; +begin + Result := (ATagName <> '') and (ATagName[1] = InstantProcessingInstructionStart); +end; + { TInstantConverter } procedure TInstantConverter.Convert; @@ -1749,7 +1789,7 @@ vaString, vaLString: Producer.WriteEscapedData(Reader.ReadString); vaUTF8String: - Producer.WriteWideString(Reader.ReadWideString); + Producer.WriteEscapedData(Reader.ReadString); vaSet: begin Reader.ReadValue; @@ -1845,7 +1885,7 @@ procedure ConvertProperty(PropInfo: PPropInfo); var I: Integer; - PropName, ValueStr: String; + PropName, ValueStr: string; S: TStringList; begin PropName := Processor.ReadTagName; @@ -1906,7 +1946,7 @@ begin TagName := Processor.PeekTagName; PropInfo := InstantGetPropInfo(ObjectClass, TagName); - if Assigned(Propinfo) then + if Assigned(PropInfo) then ConvertProperty(PropInfo) else Processor.Skip; @@ -1919,7 +1959,6 @@ Result := Processor.Stream; end; - function TInstantTextToBinaryConverter.GetOutput: TStream; begin Result := Writer.Stream; Modified: trunk/Source/Core/InstantConsts.pas =================================================================== --- trunk/Source/Core/InstantConsts.pas 2009-07-27 13:24:38 UTC (rev 812) +++ trunk/Source/Core/InstantConsts.pas 2009-08-05 10:57:00 UTC (rev 813) @@ -52,6 +52,7 @@ InstantNowString = 'NOW'; InstantTagEnd = '>'; InstantTagStart = '<'; + InstantProcessingInstructionStart = '?'; InstantTimeString = 'TIME'; InstantTrueString = 'TRUE'; InstantEndTagFormat= InstantTagStart + '/%s' + InstantTagEnd; @@ -182,6 +183,7 @@ SUnexpectedAttributeClass = 'Unexpected attribute class for %s(''%s'') in class %s. Expected attribute class %s'; SUnexpectedClass = 'Unexpected class %s. Expected class %s'; SUnexpectedToken = 'Unexpected token ''%s''. Expected token ''%s'''; + SUnexpectedTagName = 'Unexpected tag name ''%s'''; SUnknownAttributeClass = 'Unknown attribute class for attribute %s(''%s'')'; SUnspecifiedCommand = 'Command is not specified'; SUnsupportedColumnSkipped = 'Skipped column %s.%s. Unsupported type %s.'; Modified: trunk/Source/Core/InstantPersistence.pas =====... [truncated message content] |
From: <na...@us...> - 2009-08-05 17:15:48
|
Revision: 815 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=815&view=rev Author: nandod Date: 2009-08-05 17:15:33 +0000 (Wed, 05 Aug 2009) Log Message: ----------- * Fixed error "implementation expected" when editing a class in the model expert at design time in D2009. * svn:ignore set. Modified Paths: -------------- trunk/Demos/PrimerCross/ModelExternal/Model.pas trunk/Source/Core/InstantCode.pas trunk/Source/Core/InstantTextFiler.pas trunk/Source/Design/D2009/DclIOCore.dproj trunk/Source/PackageGroups/D2009/CorePackages.groupproj trunk/Tests/TestModel.pas Property Changed: ---------------- trunk/Demos/PrimerCross/ModelExternal/ trunk/Source/Brokers/ADO/D2009/ trunk/Source/Brokers/BDE/D2009/ trunk/Source/Brokers/DBX/D2009/ trunk/Source/Brokers/IBX/D2009/ trunk/Source/Catalogs/IBFb/D2009/ trunk/Source/Catalogs/MSSql/D2009/ trunk/Source/Catalogs/MySQL/D2009/ trunk/Source/Core/D2009/ trunk/Source/Design/D2009/ Property changes on: trunk/Demos/PrimerCross/ModelExternal ___________________________________________________________________ Modified: svn:ignore - *.dcu *.~pas + *.dcu *.~pas __history Modified: trunk/Demos/PrimerCross/ModelExternal/Model.pas =================================================================== --- trunk/Demos/PrimerCross/ModelExternal/Model.pas 2009-08-05 11:44:58 UTC (rev 814) +++ trunk/Demos/PrimerCross/ModelExternal/Model.pas 2009-08-05 17:15:33 UTC (rev 815) @@ -22,7 +22,7 @@ TPhone = class; TAddress = class(TInstantObject) - {IOMETADATA stored; + {IOMETADATA stored; City: String(30) index; Country: Reference(TCountry); State: String(4); @@ -95,7 +95,7 @@ end; TCategory = class(TInstantObject) - {IOMETADATA stored; + {IOMETADATA stored; Name: String(30); } _Name: TInstantString; private @@ -236,7 +236,7 @@ implementation uses - SysUtils, InstantUtils; + SysUtils, InstantUtils, InstantMetadata; { TAddress } Property changes on: trunk/Source/Brokers/ADO/D2009 ___________________________________________________________________ Added: svn:ignore + *.dcu *.local Property changes on: trunk/Source/Brokers/BDE/D2009 ___________________________________________________________________ Added: svn:ignore + *.dcu *.local Property changes on: trunk/Source/Brokers/DBX/D2009 ___________________________________________________________________ Added: svn:ignore + *.dcu *.local Property changes on: trunk/Source/Brokers/IBX/D2009 ___________________________________________________________________ Added: svn:ignore + *.dcu *.local Property changes on: trunk/Source/Catalogs/IBFb/D2009 ___________________________________________________________________ Added: svn:ignore + *.dcu *.local Property changes on: trunk/Source/Catalogs/MSSql/D2009 ___________________________________________________________________ Added: svn:ignore + *.dcu *.local Property changes on: trunk/Source/Catalogs/MySQL/D2009 ___________________________________________________________________ Added: svn:ignore + *.dcu *.local Property changes on: trunk/Source/Core/D2009 ___________________________________________________________________ Added: svn:ignore + *.dcu *.local *.identcache Modified: trunk/Source/Core/InstantCode.pas =================================================================== --- trunk/Source/Core/InstantCode.pas 2009-08-05 11:44:58 UTC (rev 814) +++ trunk/Source/Core/InstantCode.pas 2009-08-05 17:15:33 UTC (rev 815) @@ -8628,23 +8628,25 @@ if not Assigned(AObject) then Exit; Stream := TInstantStringStream.Create(''); - Writer := TInstantCodeWriter.Create(Stream); try - Writer.Origin := CursorPos; - while IndentLevel > 0 do - begin - Writer.Indent; - Dec(IndentLevel); - end; - AObject.Write(Writer); - AObject.Lock; + Writer := TInstantCodeWriter.Create(Stream); try - InsertText(Stream.DataString); + while IndentLevel > 0 do + begin + Writer.Indent; + Dec(IndentLevel); + end; + AObject.Write(Writer); + AObject.Lock; + try + InsertText(Stream.DataString); + finally + AObject.Unlock; + end; finally - AObject.Unlock; + Writer.Free; end; finally - Writer.Free; Stream.Free; end; end; Modified: trunk/Source/Core/InstantTextFiler.pas =================================================================== --- trunk/Source/Core/InstantTextFiler.pas 2009-08-05 11:44:58 UTC (rev 814) +++ trunk/Source/Core/InstantTextFiler.pas 2009-08-05 17:15:33 UTC (rev 815) @@ -45,7 +45,7 @@ PInstantTextPos = ^TInstantTextPos; TInstantTextPos = record Column, Line: Integer; - Offset: Int64; + Offset: Int64; // In characters, not bytes. end; EInstantTextPosError = class(EInstantError) @@ -143,7 +143,7 @@ else Inc(Pos.Column); end; - Inc(Pos.Offset, SizeOf(Char)); + Inc(Pos.Offset); end; procedure DescendTextPos(var Pos: TInstantTextPos; Ch: Char); @@ -163,7 +163,7 @@ else Dec(Pos.Column); end; - Dec(Pos.Offset, SizeOf(Char)); + Dec(Pos.Offset); end; { EInstantTextPosError } @@ -194,7 +194,7 @@ constructor TInstantTextFiler.Create(AText: string); begin - Create(TInstantStringStream.Create(AText), True); + Create(TStringStream.Create(AText), True); end; procedure TInstantTextFiler.DescendPosition(Ch: Char); @@ -221,7 +221,7 @@ function TInstantTextFiler.GetPosition: TInstantTextPos; begin - FPosition.Offset := StreamPos; + FPosition.Offset := StreamPos div SizeOf(Char); Result := FPosition; end; @@ -261,7 +261,7 @@ procedure TInstantTextFiler.SetPosition(const Value: TInstantTextPos); begin FPosition := Value; - StreamPos := FPosition.Offset; + StreamPos := FPosition.Offset * SizeOf(Char); end; procedure TInstantTextFiler.SetStreamPos(Value: Int64); Property changes on: trunk/Source/Design/D2009 ___________________________________________________________________ Added: svn:ignore + __history *.dcu *.local *.identcache Modified: trunk/Source/Design/D2009/DclIOCore.dproj =================================================================== --- trunk/Source/Design/D2009/DclIOCore.dproj 2009-08-05 11:44:58 UTC (rev 814) +++ trunk/Source/Design/D2009/DclIOCore.dproj 2009-08-05 17:15:33 UTC (rev 815) @@ -136,8 +136,8 @@ <Parameters Name="LoadAllSymbols">True</Parameters> <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> <Parameters Name="HostApplication">C:\Program Files\CodeGear\RAD Studio\6.0\bin\bds.exe</Parameters> - <Parameters Name="DebugSourceDirs">S:\InstantObjectsUnicode\Source\Core\</Parameters> - <Parameters Name="RunParams">S:\InstantObjectsUnicode\Tests\TestIO.dproj</Parameters> + <Parameters Name="DebugSourceDirs">W:\projects\instantobjects\Source\Core\</Parameters> + <Parameters Name="RunParams">"C:\Users\nandod\Documents\RAD Studio\Projects\TestInstantCode\TestInstantCode.dproj"</Parameters> </Parameters> <VersionInfo> <VersionInfo Name="IncludeVerInfo">True</VersionInfo> Modified: trunk/Source/PackageGroups/D2009/CorePackages.groupproj =================================================================== --- trunk/Source/PackageGroups/D2009/CorePackages.groupproj 2009-08-05 11:44:58 UTC (rev 814) +++ trunk/Source/PackageGroups/D2009/CorePackages.groupproj 2009-08-05 17:15:33 UTC (rev 815) @@ -24,15 +24,6 @@ <Projects Include="..\..\..\Tests\TestIO_D2009.dproj"> <Dependencies/> </Projects> - <Projects Include="S:\InstantObjectsUnicode\Source\Catalogs\MSSql\D2009\IOMSSqlCatalog.dproj"> - <Dependencies/> - </Projects> - <Projects Include="S:\InstantObjectsUnicode\Source\Brokers\ADO\D2009\IOADO.dproj"> - <Dependencies/> - </Projects> - <Projects Include="S:\InstantObjectsUnicode\Source\Brokers\ADO\D2009\DclIOADO.dproj"> - <Dependencies/> - </Projects> </ItemGroup> <ProjectExtensions> <Borland.Personality>Default.Personality.12</Borland.Personality> @@ -104,41 +95,14 @@ <Target Name="TestIO_D2009:Make"> <MSBuild Targets="Make" Projects="..\..\..\Tests\TestIO_D2009.dproj"/> </Target> - <Target Name="IOMSSqlCatalog"> - <MSBuild Projects="S:\InstantObjectsUnicode\Source\Catalogs\MSSql\D2009\IOMSSqlCatalog.dproj"/> - </Target> - <Target Name="IOMSSqlCatalog:Clean"> - <MSBuild Targets="Clean" Projects="S:\InstantObjectsUnicode\Source\Catalogs\MSSql\D2009\IOMSSqlCatalog.dproj"/> - </Target> - <Target Name="IOMSSqlCatalog:Make"> - <MSBuild Targets="Make" Projects="S:\InstantObjectsUnicode\Source\Catalogs\MSSql\D2009\IOMSSqlCatalog.dproj"/> - </Target> - <Target Name="IOADO"> - <MSBuild Projects="S:\InstantObjectsUnicode\Source\Brokers\ADO\D2009\IOADO.dproj"/> - </Target> - <Target Name="IOADO:Clean"> - <MSBuild Targets="Clean" Projects="S:\InstantObjectsUnicode\Source\Brokers\ADO\D2009\IOADO.dproj"/> - </Target> - <Target Name="IOADO:Make"> - <MSBuild Targets="Make" Projects="S:\InstantObjectsUnicode\Source\Brokers\ADO\D2009\IOADO.dproj"/> - </Target> - <Target Name="DclIOADO"> - <MSBuild Projects="S:\InstantObjectsUnicode\Source\Brokers\ADO\D2009\DclIOADO.dproj"/> - </Target> - <Target Name="DclIOADO:Clean"> - <MSBuild Targets="Clean" Projects="S:\InstantObjectsUnicode\Source\Brokers\ADO\D2009\DclIOADO.dproj"/> - </Target> - <Target Name="DclIOADO:Make"> - <MSBuild Targets="Make" Projects="S:\InstantObjectsUnicode\Source\Brokers\ADO\D2009\DclIOADO.dproj"/> - </Target> <Target Name="Build"> - <CallTarget Targets="IOCore;DclIOCore;IOBDE;DclIOBDE;IOXML;DclIOXML;TestIO_D2009;IOMSSqlCatalog;IOADO;DclIOADO"/> + <CallTarget Targets="IOCore;DclIOCore;IOBDE;DclIOBDE;IOXML;DclIOXML;TestIO_D2009"/> </Target> <Target Name="Clean"> - <CallTarget Targets="IOCore:Clean;DclIOCore:Clean;IOBDE:Clean;DclIOBDE:Clean;IOXML:Clean;DclIOXML:Clean;TestIO_D2009:Clean;IOMSSqlCatalog:Clean;IOADO:Clean;DclIOADO:Clean"/> + <CallTarget Targets="IOCore:Clean;DclIOCore:Clean;IOBDE:Clean;DclIOBDE:Clean;IOXML:Clean;DclIOXML:Clean;TestIO_D2009:Clean"/> </Target> <Target Name="Make"> - <CallTarget Targets="IOCore:Make;DclIOCore:Make;IOBDE:Make;DclIOBDE:Make;IOXML:Make;DclIOXML:Make;TestIO_D2009:Make;IOMSSqlCatalog:Make;IOADO:Make;DclIOADO:Make"/> + <CallTarget Targets="IOCore:Make;DclIOCore:Make;IOBDE:Make;DclIOBDE:Make;IOXML:Make;DclIOXML:Make;TestIO_D2009:Make"/> </Target> <Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/> </Project> Modified: trunk/Tests/TestModel.pas =================================================================== --- trunk/Tests/TestModel.pas 2009-08-05 11:44:58 UTC (rev 814) +++ trunk/Tests/TestModel.pas 2009-08-05 17:15:33 UTC (rev 815) @@ -124,7 +124,7 @@ end; TCategory = class(TInstantObject) - {IOMETADATA stored 'Categories'; + {IOMETADATA stored 'Categories'; Name: String(30); } _Name: TInstantString; private @@ -137,7 +137,7 @@ end; TContact = class(TInstantObject) - {IOMETADATA stored; + {IOMETADATA stored; Address: Part(TAddress); Category: Reference(TCategory); City: String(30) index; |
From: <na...@us...> - 2009-08-06 15:27:27
|
Revision: 816 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=816&view=rev Author: nandod Date: 2009-08-06 15:27:10 +0000 (Thu, 06 Aug 2009) Log Message: ----------- * Fixed two regressions. Modified Paths: -------------- trunk/Demos/PrimerCross/Main.dfm trunk/Demos/PrimerCross/Main.pas trunk/Demos/PrimerCross/Model/Model.pas trunk/Source/Core/InstantTextFiler.pas Modified: trunk/Demos/PrimerCross/Main.dfm =================================================================== --- trunk/Demos/PrimerCross/Main.dfm 2009-08-05 17:15:33 UTC (rev 815) +++ trunk/Demos/PrimerCross/Main.dfm 2009-08-06 15:27:10 UTC (rev 816) @@ -10,21 +10,21 @@ Font.Style = [] Menu = MainMenu OldCreateOrder = False + OnActivate = FormActivate OnClose = FormClose OnCreate = FormCreate - OnShow = FormShow PixelsPerInch = 96 TextHeight = 13 object SideBarSplitter: TSplitter Left = 88 Top = 26 - Height = 458 + Height = 139 ResizeStyle = rsLine end object ToolBar: TToolBar Left = 0 Top = 0 - Width = 624 + Width = 304 Height = 26 AutoSize = True BorderWidth = 1 @@ -45,8 +45,8 @@ end object StatusBar: TStatusBar Left = 0 - Top = 484 - Width = 624 + Top = 165 + Width = 304 Height = 19 Panels = < item @@ -61,7 +61,7 @@ Left = 0 Top = 26 Width = 88 - Height = 458 + Height = 139 Align = alLeft BevelOuter = bvNone BorderStyle = bsSingle @@ -79,7 +79,7 @@ Left = 0 Top = 8 Width = 84 - Height = 446 + Height = 127 Align = alClient BorderStyle = bsNone Color = clAppWorkSpace @@ -89,6 +89,7 @@ Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] + IconOptions.AutoArrange = True ReadOnly = True ParentFont = False TabOrder = 0 @@ -98,15 +99,15 @@ object WorkPanel: TPanel Left = 91 Top = 26 - Width = 533 - Height = 458 + Width = 213 + Height = 139 Align = alClient BevelOuter = bvNone TabOrder = 3 object WorkTitleSpacer: TBevel Left = 0 Top = 27 - Width = 533 + Width = 213 Height = 4 Align = alTop Shape = bsSpacer @@ -114,7 +115,7 @@ object WorkTitlePanel: TPanel Left = 0 Top = 0 - Width = 533 + Width = 213 Height = 27 Align = alTop BevelInner = bvLowered @@ -137,8 +138,8 @@ object WorkClientPanel: TPanel Left = 0 Top = 31 - Width = 533 - Height = 427 + Width = 213 + Height = 108 Align = alClient BevelOuter = bvNone TabOrder = 1 Modified: trunk/Demos/PrimerCross/Main.pas =================================================================== --- trunk/Demos/PrimerCross/Main.pas 2009-08-05 17:15:33 UTC (rev 815) +++ trunk/Demos/PrimerCross/Main.pas 2009-08-06 15:27:10 UTC (rev 816) @@ -75,7 +75,7 @@ procedure ExportItemClick(Sender: TObject); procedure ImportItemClick(Sender: TObject); procedure ExportModelItemClick(Sender: TObject); - procedure FormShow(Sender: TObject); + procedure FormActivate(Sender: TObject); private FActiveSubView: TBasicViewForm; FConnectionDef: TInstantConnectionDef; @@ -501,6 +501,11 @@ end; end; +procedure TMainForm.FormActivate(Sender: TObject); +begin + WindowState := wsMaximized; +end; + procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction); begin Disconnect; @@ -519,7 +524,6 @@ BorderWidth := 4; HoverTime := 0; HotTrackStyles := [htHandPoint]; - IconOptions.Arrangement := iaLeft; LargeImages := SideBarImages; end; {$ENDIF} @@ -537,16 +541,10 @@ // ConnectionManager.FileFormat := sfBinary; // ConnectionManager.FileName := ChangeFileExt(Application.ExeName, '.con'); - CreateSubViews; UpdateStatus; end; -procedure TMainForm.FormShow(Sender: TObject); -begin - WindowState := wsMaximized; -end; - function TMainForm.GetConnectionName: string; begin if Assigned(FConnectionDef) then Modified: trunk/Demos/PrimerCross/Model/Model.pas =================================================================== --- trunk/Demos/PrimerCross/Model/Model.pas 2009-08-05 17:15:33 UTC (rev 815) +++ trunk/Demos/PrimerCross/Model/Model.pas 2009-08-06 15:27:10 UTC (rev 816) @@ -23,7 +23,7 @@ TAddress = class(TInstantObject) - {IOMETADATA City: String(30) index; + {IOMETADATA City: String(30) index; Country: Reference(TCountry); State: String(4); Street: Memo; @@ -53,7 +53,7 @@ end; TCountry = class(TInstantObject) - {IOMETADATA stored; + {IOMETADATA stored; Name: String(30); } _Name: TInstantString; private @@ -68,7 +68,7 @@ end; TPhone = class(TInstantObject) - {IOMETADATA Name: String(20); + {IOMETADATA Name: String(20); Number: String(20) mask '(000) 000-0000;0;_'; } _Name: TInstantString; _Number: TInstantString; @@ -83,7 +83,7 @@ end; TEmail = class(TInstantObject) - {IOMETADATA Address: String(100); } + {IOMETADATA Address: String(100); } _Address: TInstantString; private function GetAddress: string; @@ -93,7 +93,7 @@ end; TCategory = class(TInstantObject) - {IOMETADATA stored; + {IOMETADATA stored; Name: String(30); } _Name: TInstantString; private @@ -106,7 +106,7 @@ end; TContact = class(TInstantObject) - {IOMETADATA stored; + {IOMETADATA stored; Address: Part(TAddress); Category: Reference(TCategory); City: String(30) index; @@ -153,6 +153,7 @@ end; TContactFilter = class(TContact) + {IOMETADATA embedded; } private FIsDynamic: Boolean; function GetIsEmpty: Boolean; @@ -164,7 +165,7 @@ end; TPerson = class(TContact) - {IOMETADATA stored; + {IOMETADATA stored; Emails: Parts(TEmail); Employer: Reference(TCompany); Picture: Graphic; @@ -214,7 +215,7 @@ end; TCompany = class(TContact) - {IOMETADATA stored; + {IOMETADATA stored; Employees: References(TPerson); } _Employees: TInstantReferences; private Modified: trunk/Source/Core/InstantTextFiler.pas =================================================================== --- trunk/Source/Core/InstantTextFiler.pas 2009-08-05 17:15:33 UTC (rev 815) +++ trunk/Source/Core/InstantTextFiler.pas 2009-08-06 15:27:10 UTC (rev 816) @@ -194,7 +194,7 @@ constructor TInstantTextFiler.Create(AText: string); begin - Create(TStringStream.Create(AText), True); + Create(TInstantStringStream.Create(AText), True); end; procedure TInstantTextFiler.DescendPosition(Ch: Char); |
From: <na...@us...> - 2009-08-06 17:14:48
|
Revision: 817 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=817&view=rev Author: nandod Date: 2009-08-06 17:14:40 +0000 (Thu, 06 Aug 2009) Log Message: ----------- * Allow navigational brokers in D2009 to read embedded attributes written by previous versions (ansi-only). * Damaged Primer.dproj for D2007 restored. Modified Paths: -------------- trunk/Demos/PrimerCross/Primer.dproj trunk/Demos/PrimerCross/Primer.mdr trunk/Source/Core/InstantBrokers.pas trunk/Source/Core/InstantClasses.pas trunk/Source/Core/InstantConsts.pas trunk/Source/Core/InstantPersistence.pas Modified: trunk/Demos/PrimerCross/Primer.dproj =================================================================== --- trunk/Demos/PrimerCross/Primer.dproj 2009-08-06 15:27:10 UTC (rev 816) +++ trunk/Demos/PrimerCross/Primer.dproj 2009-08-06 17:14:40 UTC (rev 817) @@ -1,183 +1,151 @@ - <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <ProjectGuid>{d197a2d4-31b9-43b1-8070-3f804d86e53f}</ProjectGuid> - <MainSource>Primer.dpr</MainSource> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> - <DCC_DependencyCheckOutputName>Primer.exe</DCC_DependencyCheckOutputName> - <ProjectVersion>12.0</ProjectVersion> - <Config Condition="'$(Config)'==''">Debug</Config> - </PropertyGroup> - <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> - <Base>true</Base> - </PropertyGroup> - <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> - <Cfg_1>true</Cfg_1> - <CfgParent>Base</CfgParent> - <Base>true</Base> - </PropertyGroup> - <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> - <Cfg_2>true</Cfg_2> - <CfgParent>Base</CfgParent> - <Base>true</Base> - </PropertyGroup> - <PropertyGroup Condition="'$(Base)'!=''"> - <DCC_DependencyCheckOutputName>Primer.exe</DCC_DependencyCheckOutputName> - </PropertyGroup> - <PropertyGroup Condition="'$(Cfg_1)'!=''"> - <Version>7.0</Version> - <DCC_DebugInformation>False</DCC_DebugInformation> - <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> - <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> - <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> - <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> - <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ResourcePath)</DCC_ResourcePath> - <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ObjPath)</DCC_ObjPath> - <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_IncludePath)</DCC_IncludePath> - </PropertyGroup> - <PropertyGroup Condition="'$(Cfg_2)'!=''"> - <Version>7.0</Version> - <DCC_Define>DEBUG;IO_STATEMENT_LOGGING;$(DCC_Define)</DCC_Define> - <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> - <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ResourcePath)</DCC_ResourcePath> - <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ObjPath)</DCC_ObjPath> - <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_IncludePath)</DCC_IncludePath> - </PropertyGroup> - <ProjectExtensions> - <Borland.Personality>Delphi.Personality.12</Borland.Personality> - <Borland.ProjectType>VCLApplication</Borland.ProjectType> - <BorlandProject> - <Delphi.Personality> - <Parameters> - <Parameters Name="UseLauncher">False</Parameters> - <Parameters Name="LoadAllSymbols">True</Parameters> - <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> - </Parameters> - <VersionInfo> - <VersionInfo Name="IncludeVerInfo">True</VersionInfo> - <VersionInfo Name="AutoIncBuild">False</VersionInfo> - <VersionInfo Name="MajorVer">2</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">1030</VersionInfo> - <VersionInfo Name="CodePage">1252</VersionInfo> - </VersionInfo> - <VersionInfoKeys> - <VersionInfoKeys Name="CompanyName">InstantObjects.org</VersionInfoKeys> - <VersionInfoKeys Name="FileDescription">Primer Demo</VersionInfoKeys> - <VersionInfoKeys Name="FileVersion">2.0.0.0</VersionInfoKeys> - <VersionInfoKeys Name="InternalName"/> - <VersionInfoKeys Name="LegalCopyright">MPL public license</VersionInfoKeys> - <VersionInfoKeys Name="LegalTrademarks"/> - <VersionInfoKeys Name="OriginalFilename"/> - <VersionInfoKeys Name="ProductName"/> - <VersionInfoKeys Name="ProductVersion">2.0</VersionInfoKeys> - <VersionInfoKeys Name="Comments"/> - </VersionInfoKeys> - <Source> - <Source Name="MainSource">Primer.dpr</Source> - </Source> - </Delphi.Personality> - <ModelSupport>False</ModelSupport> - </BorlandProject> - <ProjectFileVersion>12</ProjectFileVersion> - </ProjectExtensions> - <ItemGroup> - <DelphiCompile Include="Primer.dpr"> - <MainSource>MainSource</MainSource> - </DelphiCompile> - <DCCReference Include="Main.pas"> - <Form>MainForm</Form> - </DCCReference> - <DCCReference Include="Model\Model.pas"/> - <DCCReference Include="ContactView.pas"> - <Form>ContactViewForm</Form> - <DesignClass>TFrame</DesignClass> - </DCCReference> - <DCCReference Include="BasicView.pas"> - <Form>BasicViewForm</Form> - <DesignClass>TFrame</DesignClass> - </DCCReference> - <DCCReference Include="BasicEdit.pas"> - <Form>BasicEditForm</Form> - </DCCReference> - <DCCReference Include="ContactEdit.pas"> - <Form>ContactEditForm</Form> - </DCCReference> - <DCCReference Include="PersonEdit.pas"> - <Form>PersonEditForm</Form> - </DCCReference> - <DCCReference Include="CompanyEdit.pas"> - <Form>CompanyEditForm</Form> - </DCCReference> - <DCCReference Include="DemoData.pas"/> - <DCCReference Include="ContactFilterEdit.pas"> - <Form>ContactFilterEditForm</Form> - </DCCReference> - <DCCReference Include="MainData.pas"> - <Form>MainDataModule</Form> - <DesignClass>TDataModule</DesignClass> - </DCCReference> - <DCCReference Include="ContactBrowse.pas"> - <Form>ContactBrowseForm</Form> - </DCCReference> - <DCCReference Include="CompanyBrowse.pas"> - <Form>CompanyBrowseForm</Form> - </DCCReference> - <DCCReference Include="PerformanceView.pas"> - <Form>PerformanceViewForm</Form> - <DesignClass>TFrame</DesignClass> - </DCCReference> - <DCCReference Include="Welcome.pas"> - <Form>WelcomeForm</Form> - </DCCReference> - <DCCReference Include="PersonBrowse.pas"> - <Form>PersonBrowseForm</Form> - </DCCReference> - <DCCReference Include="BasicBrowse.pas"> - <Form>BasicBrowseForm</Form> - </DCCReference> - <DCCReference Include="CountryBrowse.pas"> - <Form>CountryBrowseForm</Form> - </DCCReference> - <DCCReference Include="DemoDataRequest.pas"> - <Form>DemoDataRequestForm</Form> - </DCCReference> - <DCCReference Include="ContactSort.pas"> - <Form>ContactSortForm</Form> - </DCCReference> - <DCCReference Include="CategoryBrowse.pas"> - <Form>CategoryBrowseForm</Form> - </DCCReference> - <DCCReference Include="HelpView.pas"> - <Form>HelpViewForm</Form> - <DesignClass>TFrame</DesignClass> - </DCCReference> - <DCCReference Include="QueryView.pas"> - <Form>QueryViewForm</Form> - <DesignClass>TFrame</DesignClass> - </DCCReference> - <DCCReference Include="RandomData.pas"/> - <DCCReference Include="Stopwatch.pas"/> - <DCCReference Include="Utility.pas"/> - <BuildConfiguration Include="Base"> - <Key>Base</Key> - </BuildConfiguration> - <BuildConfiguration Include="Debug"> - <Key>Cfg_2</Key> - <CfgParent>Base</CfgParent> - </BuildConfiguration> - <BuildConfiguration Include="Release"> - <Key>Cfg_1</Key> - <CfgParent>Base</CfgParent> - </BuildConfiguration> - </ItemGroup> - <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> - </Project> +<?xml version="1.0" encoding="utf-8"?> +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{6ddf3705-1ec1-4b67-8127-f887a4deb03e}</ProjectGuid> + <MainSource>Primer.dpr</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>Primer.exe</DCC_DependencyCheckOutputName> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <Version>7.0</Version> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE;IO_STATEMENT_LOGGING</DCC_Define> + <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_UnitSearchPath> + <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_ResourcePath> + <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_ObjPath> + <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_IncludePath> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <Version>7.0</Version> + <DCC_Define>DEBUG;IO_STATEMENT_LOGGING</DCC_Define> + <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_UnitSearchPath> + <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_ResourcePath> + <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_ObjPath> + <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql</DCC_IncludePath> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality</Borland.Personality> + <Borland.ProjectType>VCLApplication</Borland.ProjectType> + <BorlandProject> +<BorlandProject> <Delphi.Personality> <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">2</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">1030</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName">InstantObjects.org</VersionInfoKeys> + <VersionInfoKeys Name="FileDescription">Primer Demo</VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">2.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"></VersionInfoKeys> + <VersionInfoKeys Name="LegalCopyright">MPL public license</VersionInfoKeys> + <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> + <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys> + <VersionInfoKeys Name="ProductName"></VersionInfoKeys> + <VersionInfoKeys Name="ProductVersion">2.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"></VersionInfoKeys> + </VersionInfoKeys> + <Source> + <Source Name="MainSource">Primer.dpr</Source> + </Source> + </Delphi.Personality> </BorlandProject></BorlandProject> + </ProjectExtensions> + <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" /> + <ItemGroup> + <DelphiCompile Include="Primer.dpr"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="BasicBrowse.pas"> + <Form>BasicBrowseForm</Form> + </DCCReference> + <DCCReference Include="BasicEdit.pas"> + <Form>BasicEditForm</Form> + </DCCReference> + <DCCReference Include="BasicView.pas"> + <Form>BasicViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="CategoryBrowse.pas"> + <Form>CategoryBrowseForm</Form> + </DCCReference> + <DCCReference Include="CompanyBrowse.pas"> + <Form>CompanyBrowseForm</Form> + </DCCReference> + <DCCReference Include="CompanyEdit.pas"> + <Form>CompanyEditForm</Form> + </DCCReference> + <DCCReference Include="ContactBrowse.pas"> + <Form>ContactBrowseForm</Form> + </DCCReference> + <DCCReference Include="ContactEdit.pas"> + <Form>ContactEditForm</Form> + </DCCReference> + <DCCReference Include="ContactFilterEdit.pas"> + <Form>ContactFilterEditForm</Form> + </DCCReference> + <DCCReference Include="ContactSort.pas"> + <Form>ContactSortForm</Form> + </DCCReference> + <DCCReference Include="ContactView.pas"> + <Form>ContactViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="CountryBrowse.pas"> + <Form>CountryBrowseForm</Form> + </DCCReference> + <DCCReference Include="DemoData.pas" /> + <DCCReference Include="DemoDataRequest.pas"> + <Form>DemoDataRequestForm</Form> + </DCCReference> + <DCCReference Include="HelpView.pas"> + <Form>HelpViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="Main.pas"> + <Form>MainForm</Form> + </DCCReference> + <DCCReference Include="MainData.pas"> + <Form>MainDataModule</Form> + <DesignClass>TDataModule</DesignClass> + </DCCReference> + <DCCReference Include="Model\Model.pas" /> + <DCCReference Include="PerformanceView.pas"> + <Form>PerformanceViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="PersonBrowse.pas"> + <Form>PersonBrowseForm</Form> + </DCCReference> + <DCCReference Include="PersonEdit.pas"> + <Form>PersonEditForm</Form> + </DCCReference> + <DCCReference Include="QueryView.pas"> + <Form>QueryViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="RandomData.pas" /> + <DCCReference Include="Stopwatch.pas" /> + <DCCReference Include="Utility.pas" /> + <DCCReference Include="Welcome.pas"> + <Form>WelcomeForm</Form> + </DCCReference> + </ItemGroup> +</Project> \ No newline at end of file Modified: trunk/Demos/PrimerCross/Primer.mdr =================================================================== (Binary files differ) Modified: trunk/Source/Core/InstantBrokers.pas =================================================================== --- trunk/Source/Core/InstantBrokers.pas 2009-08-06 15:27:10 UTC (rev 816) +++ trunk/Source/Core/InstantBrokers.pas 2009-08-06 17:14:40 UTC (rev 817) @@ -2329,7 +2329,7 @@ procedure TInstantNavigationalResolver.ReadPart(Attribute: TInstantPart); var Field: TField; - Stream: TStringStream; + Stream: TInstantStringStream; PartClassName: string; ObjID: string; begin @@ -2356,7 +2356,7 @@ Field := FieldByName(Metadata.FieldName); if not FieldHasObjects(Field) then Exit; - Stream := TStringStream.Create(Field.AsString); + Stream := TInstantStringStream.Create(Field.AsString); try LoadObjectFromStream(Stream); finally @@ -2369,7 +2369,7 @@ procedure TInstantNavigationalResolver.ReadParts(Attribute: TInstantParts); var Field: TField; - Stream: TStringStream; + Stream: TInstantStringStream; LinkDatasetResolver: TInstantNavigationalLinkResolver; begin with Attribute do @@ -2386,7 +2386,7 @@ Field := FieldByName(Metadata.FieldName); if not FieldHasObjects(Field) then Exit; - Stream := TStringStream.Create(Field.AsString); + Stream := TInstantStringStream.Create(Field.AsString); try LoadObjectsFromStream(Stream); finally @@ -2413,7 +2413,7 @@ Attribute: TInstantReferences); var Field: TField; - Stream: TStringStream; + Stream: TInstantStringStream; LinkDatasetResolver: TInstantNavigationalLinkResolver; begin with Attribute do @@ -2430,7 +2430,7 @@ Field := FieldByName(Metadata.FieldName); if not FieldHasObjects(Field) then Exit; - Stream := TStringStream.Create(Field.AsString); + Stream := TInstantStringStream.Create(Field.AsString); try LoadReferencesFromStream(Stream); finally @@ -3557,7 +3557,7 @@ procedure ReadPartAttribute; var - Stream: TStringStream; + Stream: TInstantStringStream; LPartClassName: string; LPartId: string; begin @@ -3583,7 +3583,7 @@ end else begin - Stream := TStringStream.Create(ReadBlobField(DataSet, + Stream := TInstantStringStream.Create(ReadBlobField(DataSet, AFieldName)); try if Stream.Size = 0 then @@ -3598,7 +3598,7 @@ procedure ReadPartsAttribute; var - Stream: TStringStream; + Stream: TInstantStringStream; LinkResolver: TInstantSQLLinkResolver; begin if AttributeMetadata.StorageKind = skExternal then @@ -3618,7 +3618,7 @@ end else begin - Stream := TStringStream.Create(ReadBlobField(DataSet, AFieldName)); + Stream := TInstantStringStream.Create(ReadBlobField(DataSet, AFieldName)); try if Stream.Size = 0 then (Attribute as TInstantParts).Reset @@ -3639,7 +3639,7 @@ procedure ReadReferencesAttribute; var - Stream: TStringStream; + Stream: TInstantStringStream; LinkResolver: TInstantSQLLinkResolver; begin if AttributeMetadata.StorageKind = skExternal then @@ -3659,7 +3659,7 @@ end else begin - Stream := TStringStream.Create(ReadBlobField(DataSet, AFieldName)); + Stream := TInstantStringStream.Create(ReadBlobField(DataSet, AFieldName)); try if Stream.Size = 0 then (Attribute as TInstantReferences).Reset Modified: trunk/Source/Core/InstantClasses.pas =================================================================== --- trunk/Source/Core/InstantClasses.pas 2009-08-06 15:27:10 UTC (rev 816) +++ trunk/Source/Core/InstantClasses.pas 2009-08-06 17:14:40 UTC (rev 817) @@ -1786,10 +1786,8 @@ Producer.WriteData(CurrToStr(Reader.ReadCurrency)); vaDate: Producer.WriteData(InstantDateTimeToStr(Reader.ReadDate)); - vaString, vaLString: + vaString, vaLString, vaUTF8String, vaWString: Producer.WriteEscapedData(Reader.ReadString); - vaUTF8String: - Producer.WriteEscapedData(Reader.ReadString); vaSet: begin Reader.ReadValue; Modified: trunk/Source/Core/InstantConsts.pas =================================================================== --- trunk/Source/Core/InstantConsts.pas 2009-08-06 15:27:10 UTC (rev 816) +++ trunk/Source/Core/InstantConsts.pas 2009-08-06 17:14:40 UTC (rev 817) @@ -139,7 +139,7 @@ SInvalidOperator = 'Invalid operator: %s'; SInvalidPropertyValue = 'Invalid property value'; SInvalidToken = 'Invalid token ''%s'''; - SInvalidValueType = 'Invalid value type'; + SInvalidValueType = 'Invalid value type ''%s'''; SKeyViolation = 'Key violation for object %s(''%s'')'; SLoginPromptFailure = 'Couldn''t find login dialog. Please use unit DBLogDlg or set LoginPrompt to False'; SMetadataMismatch = 'Metadata mismatch for attribute %s(''%s'')'; Modified: trunk/Source/Core/InstantPersistence.pas =================================================================== --- trunk/Source/Core/InstantPersistence.pas 2009-08-06 15:27:10 UTC (rev 816) +++ trunk/Source/Core/InstantPersistence.pas 2009-08-06 17:14:40 UTC (rev 817) @@ -5620,20 +5620,20 @@ var Count: Integer; Bin, Hex: string; + LNextValueType: TValueType; begin with Converter do begin - case Reader.NextValue of + LNextValueType := Reader.NextValue; + case LNextValueType of vaInt8, vaInt16, vaInt32: Producer.WriteData(IntToStr(Reader.ReadInteger)); vaExtended: Producer.WriteData(FloatToStr(Reader.ReadFloat)); vaDate: Producer.WriteData(InstantDateTimeToStr(Reader.ReadDate)); - vaString, vaLString: + vaString, vaLString, vaUTF8String, vaWString: Producer.WriteEscapedData(Reader.ReadString); - vaUTF8String: - Producer.WriteEscapedData(Reader.ReadString); vaCurrency: Producer.WriteEscapedData(CurrToStr(Reader.ReadCurrency)); vaIdent: @@ -5669,7 +5669,8 @@ Reader.ReadListEnd; end; else - raise EInstantStreamError.Create(SInvalidValueType); + raise EInstantStreamError.CreateFmt(SInvalidValueType, + [GetEnumName(TypeInfo(TValueType), Ord(LNextValueType))]); end; end; end; |
From: <na...@us...> - 2009-08-06 20:58:34
|
Revision: 818 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=818&view=rev Author: nandod Date: 2009-08-06 20:58:27 +0000 (Thu, 06 Aug 2009) Log Message: ----------- * D2009: Fixed problem with I/O of memo fields in InstantPresentation. TInstantBlob and TInstantMemo are now explicitly Ansi. TInstantWideMemo (and TInstantWideString) should be added for handling of unicode text. + PrimerExternal_D2009.dproj. + A test for TInstantCodeModel. Modified Paths: -------------- trunk/Source/Core/InstantPersistence.pas trunk/Tests/TestIO.dpr trunk/Tests/TestIO.dproj trunk/Tests/TestIO_D2009.dpr trunk/Tests/TestIO_D2009.dproj Added Paths: ----------- trunk/Demos/PrimerCross/PrimerExternal_D2009.dpr trunk/Demos/PrimerCross/PrimerExternal_D2009.dproj trunk/Demos/PrimerCross/PrimerExternal_D2009.mdr trunk/Demos/PrimerCross/PrimerExternal_D2009.res trunk/Tests/TestInstantCode.pas Added: trunk/Demos/PrimerCross/PrimerExternal_D2009.dpr =================================================================== --- trunk/Demos/PrimerCross/PrimerExternal_D2009.dpr (rev 0) +++ trunk/Demos/PrimerCross/PrimerExternal_D2009.dpr 2009-08-06 20:58:27 UTC (rev 818) @@ -0,0 +1,79 @@ +(* + * InstantObjects + * Primer Demo - with "external storage" of Part and Parts + * Model.pas unit is located in ModelExternal folder + *) + +(* ***** 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, Nando Dessena + * + * ***** END LICENSE BLOCK ***** *) + +program PrimerExternal_D2009; + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + + +uses + Forms, + Main in 'Main.pas' {MainForm}, + Model in 'ModelExternal\Model.pas', + ContactView in 'ContactView.pas' {ContactViewForm: TFrame}, + BasicView in 'BasicView.pas' {BasicViewForm: TFrame}, + BasicEdit in 'BasicEdit.pas' {BasicEditForm}, + ContactEdit in 'ContactEdit.pas' {ContactEditForm}, + PersonEdit in 'PersonEdit.pas' {PersonEditForm}, + CompanyEdit in 'CompanyEdit.pas' {CompanyEditForm}, + DemoData in 'DemoData.pas', + ContactFilterEdit in 'ContactFilterEdit.pas' {ContactFilterEditForm}, + MainData in 'MainData.pas' {MainDataModule: TDataModule}, + ContactBrowse in 'ContactBrowse.pas' {ContactBrowseForm}, + CompanyBrowse in 'CompanyBrowse.pas' {CompanyBrowseForm}, + PerformanceView in 'PerformanceView.pas' {PerformanceViewForm: TFrame}, + Welcome in 'Welcome.pas' {WelcomeForm}, + PersonBrowse in 'PersonBrowse.pas' {PersonBrowseForm}, + BasicBrowse in 'BasicBrowse.pas' {BasicBrowseForm}, + CountryBrowse in 'CountryBrowse.pas' {CountryBrowseForm}, + DemoDataRequest in 'DemoDataRequest.pas' {DemoDataRequestForm}, + ContactSort in 'ContactSort.pas' {ContactSortForm}, + CategoryBrowse in 'CategoryBrowse.pas' {CategoryBrowseForm}, + HelpView in 'HelpView.pas' {HelpViewForm: TFrame}, + RandomData in 'RandomData.pas', + Stopwatch in 'Stopwatch.pas', + Utility in 'Utility.pas', + QueryView in 'QueryView.pas' {QueryViewForm: TFrame}; + +{$R *.res} +{$R *.mdr} {Model} + +begin + Application.Initialize; + Application.Title := 'InstantObjects Primer Demo with "external storage" of Part and Parts'; + Application.CreateForm(TMainForm, MainForm); + Application.CreateForm(TMainDataModule, MainDataModule); + Application.Run; +end. Property changes on: trunk/Demos/PrimerCross/PrimerExternal_D2009.dpr ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Demos/PrimerCross/PrimerExternal_D2009.dproj =================================================================== --- trunk/Demos/PrimerCross/PrimerExternal_D2009.dproj (rev 0) +++ trunk/Demos/PrimerCross/PrimerExternal_D2009.dproj 2009-08-06 20:58:27 UTC (rev 818) @@ -0,0 +1,187 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{0d607f9b-9c2b-445d-84fd-7072bc53deff}</ProjectGuid> + <MainSource>PrimerExternal_D2009.dpr</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>PrimerExternal.exe</DCC_DependencyCheckOutputName> + <ProjectVersion>12.0</ProjectVersion> + <Config Condition="'$(Config)'==''">Debug</Config> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_DependencyCheckOutputName>PrimerExternal_D2009.exe</DCC_DependencyCheckOutputName> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <Version>7.0</Version> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE;IO_STATEMENT_LOGGING;$(DCC_Define)</DCC_Define> + <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> + <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ResourcePath)</DCC_ResourcePath> + <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ObjPath)</DCC_ObjPath> + <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_IncludePath)</DCC_IncludePath> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <DCC_DebugDCUs>true</DCC_DebugDCUs> + <Version>7.0</Version> + <DCC_Define>DEBUG;IO_STATEMENT_LOGGING;$(DCC_Define)</DCC_Define> + <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> + <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ResourcePath)</DCC_ResourcePath> + <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ObjPath)</DCC_ObjPath> + <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_IncludePath)</DCC_IncludePath> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>VCLApplication</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Compiler> + <Compiler Name="UsePackages">False</Compiler> + <Compiler Name="Packages"/> + </Compiler> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">2</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">1030</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName">InstantObjects.org</VersionInfoKeys> + <VersionInfoKeys Name="FileDescription">Primer Demo</VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">2.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright">MPL public license</VersionInfoKeys> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName"/> + <VersionInfoKeys Name="ProductVersion">2.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Source> + <Source Name="MainSource">PrimerExternal_D2009.dpr</Source> + </Source> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + <ItemGroup> + <DelphiCompile Include="PrimerExternal_D2009.dpr"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="Main.pas"> + <Form>MainForm</Form> + </DCCReference> + <DCCReference Include="ModelExternal\Model.pas"/> + <DCCReference Include="ContactView.pas"> + <Form>ContactViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="BasicView.pas"> + <Form>BasicViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="BasicEdit.pas"> + <Form>BasicEditForm</Form> + </DCCReference> + <DCCReference Include="ContactEdit.pas"> + <Form>ContactEditForm</Form> + </DCCReference> + <DCCReference Include="PersonEdit.pas"> + <Form>PersonEditForm</Form> + </DCCReference> + <DCCReference Include="CompanyEdit.pas"> + <Form>CompanyEditForm</Form> + </DCCReference> + <DCCReference Include="DemoData.pas"/> + <DCCReference Include="ContactFilterEdit.pas"> + <Form>ContactFilterEditForm</Form> + </DCCReference> + <DCCReference Include="MainData.pas"> + <Form>MainDataModule</Form> + <DesignClass>TDataModule</DesignClass> + </DCCReference> + <DCCReference Include="ContactBrowse.pas"> + <Form>ContactBrowseForm</Form> + </DCCReference> + <DCCReference Include="CompanyBrowse.pas"> + <Form>CompanyBrowseForm</Form> + </DCCReference> + <DCCReference Include="PerformanceView.pas"> + <Form>PerformanceViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="Welcome.pas"> + <Form>WelcomeForm</Form> + </DCCReference> + <DCCReference Include="PersonBrowse.pas"> + <Form>PersonBrowseForm</Form> + </DCCReference> + <DCCReference Include="BasicBrowse.pas"> + <Form>BasicBrowseForm</Form> + </DCCReference> + <DCCReference Include="CountryBrowse.pas"> + <Form>CountryBrowseForm</Form> + </DCCReference> + <DCCReference Include="DemoDataRequest.pas"> + <Form>DemoDataRequestForm</Form> + </DCCReference> + <DCCReference Include="ContactSort.pas"> + <Form>ContactSortForm</Form> + </DCCReference> + <DCCReference Include="CategoryBrowse.pas"> + <Form>CategoryBrowseForm</Form> + </DCCReference> + <DCCReference Include="HelpView.pas"> + <Form>HelpViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="RandomData.pas"/> + <DCCReference Include="Stopwatch.pas"/> + <DCCReference Include="Utility.pas"/> + <DCCReference Include="QueryView.pas"> + <Form>QueryViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + </Project> Property changes on: trunk/Demos/PrimerCross/PrimerExternal_D2009.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Demos/PrimerCross/PrimerExternal_D2009.mdr =================================================================== (Binary files differ) Property changes on: trunk/Demos/PrimerCross/PrimerExternal_D2009.mdr ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Demos/PrimerCross/PrimerExternal_D2009.res =================================================================== (Binary files differ) Property changes on: trunk/Demos/PrimerCross/PrimerExternal_D2009.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/Source/Core/InstantPersistence.pas =================================================================== --- trunk/Source/Core/InstantPersistence.pas 2009-08-06 17:14:40 UTC (rev 817) +++ trunk/Source/Core/InstantPersistence.pas 2009-08-06 20:58:27 UTC (rev 818) @@ -444,10 +444,10 @@ FStream: TMemoryStream; function GetSize: Integer; function GetStream: TMemoryStream; - function GetValue: string; - procedure SetValue(const AValue: string); property Stream: TMemoryStream read GetStream; protected + function GetValue: AnsiString; virtual; + procedure SetValue(const AValue: AnsiString); virtual; class function AttributeType: TInstantAttributeType; override; function GetAsString: string; override; function GetAsVariant: Variant; override; @@ -472,7 +472,7 @@ function WriteBuffer(const Buffer; Position, Count: Integer): Integer; property Size: Integer read GetSize; published - property Value: string read GetValue write SetValue; + property Value: AnsiString read GetValue write SetValue; end; TInstantMemo = class(TInstantBlob) @@ -3485,13 +3485,14 @@ Result := FStream; end; -function TInstantBlob.GetValue: string; +function TInstantBlob.GetValue: AnsiString; begin if Size > 0 then begin - SetLength(Result, Size div SizeOf(Char)); + SetLength(Result, Size div SizeOf(AnsiChar)); Read(Result[1], 0, Size); - end else + end + else Result := ''; end; @@ -3567,17 +3568,18 @@ end; end; -procedure TInstantBlob.SetValue(const AValue: string); +procedure TInstantBlob.SetValue(const AValue: AnsiString); var L: Integer; begin - L := Length(AValue) * SizeOf(Char); + L := Length(AValue) * SizeOf(AnsiChar); if L > 0 then begin Stream.Clear; WriteBuffer(AValue[1], 0, L); Stream.Size := L; - end else + end + else Clear; end; Modified: trunk/Tests/TestIO.dpr =================================================================== --- trunk/Tests/TestIO.dpr 2009-08-06 17:14:40 UTC (rev 817) +++ trunk/Tests/TestIO.dpr 2009-08-06 20:58:27 UTC (rev 818) @@ -58,7 +58,8 @@ TestInstantCircularReferences in 'TestInstantCircularReferences.pas', TestInstantObjectReference in 'TestInstantObjectReference.pas', MinimalModel in 'MinimalModel.pas', - TestXMLBroker in 'TestXMLBroker.pas'; + TestXMLBroker in 'TestXMLBroker.pas', + TestInstantCode in 'TestInstantCode.pas'; {$R *.res} {$R *.mdr} {TestModel} Modified: trunk/Tests/TestIO.dproj =================================================================== --- trunk/Tests/TestIO.dproj 2009-08-06 17:14:40 UTC (rev 817) +++ trunk/Tests/TestIO.dproj 2009-08-06 20:58:27 UTC (rev 818) @@ -55,6 +55,7 @@ <DCCReference Include="TestInstantCircularReferences.pas" /> <DCCReference Include="TestInstantClasses.pas" /> <DCCReference Include="TestInstantClassMetadata.pas" /> + <DCCReference Include="TestInstantCode.pas" /> <DCCReference Include="TestInstantComplex.pas" /> <DCCReference Include="TestInstantCurrency.pas" /> <DCCReference Include="TestInstantDate.pas" /> Modified: trunk/Tests/TestIO_D2009.dpr =================================================================== --- trunk/Tests/TestIO_D2009.dpr 2009-08-06 17:14:40 UTC (rev 817) +++ trunk/Tests/TestIO_D2009.dpr 2009-08-06 20:58:27 UTC (rev 818) @@ -52,7 +52,8 @@ TestInstantCircularReferences in 'TestInstantCircularReferences.pas', TestInstantObjectReference in 'TestInstantObjectReference.pas', MinimalModel in 'MinimalModel.pas', - TestXMLBroker in 'TestXMLBroker.pas'; + TestXMLBroker in 'TestXMLBroker.pas', + TestInstantCode in 'TestInstantCode.pas'; {$R *.res} {$R *.mdr} {TestModel} Modified: trunk/Tests/TestIO_D2009.dproj =================================================================== --- trunk/Tests/TestIO_D2009.dproj 2009-08-06 17:14:40 UTC (rev 817) +++ trunk/Tests/TestIO_D2009.dproj 2009-08-06 20:58:27 UTC (rev 818) @@ -93,6 +93,7 @@ <DCCReference Include="TestInstantObjectReference.pas"/> <DCCReference Include="MinimalModel.pas"/> <DCCReference Include="TestXMLBroker.pas"/> + <DCCReference Include="TestInstantCode.pas"/> <BuildConfiguration Include="Base"> <Key>Base</Key> </BuildConfiguration> Added: trunk/Tests/TestInstantCode.pas =================================================================== --- trunk/Tests/TestInstantCode.pas (rev 0) +++ trunk/Tests/TestInstantCode.pas 2009-08-06 20:58:27 UTC (rev 818) @@ -0,0 +1,128 @@ +(* + * InstantObjects Test Suite + * TestMockBroker + *) + +(* ***** 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/TestMockBroker + * + * 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): + * Nando Dessena + * + * ***** END LICENSE BLOCK ***** *) + +unit TestInstantCode; + +{$IFDEF LINUX} +{$I '../InstantDefines.inc'} +{$ELSE} +{$I '..\InstantDefines.inc'} +{$ENDIF} + +interface + +uses + InstantCode, fpcunit, InstantMock, TestModel; + +type + TTestInstantCodeModel = class(TTestCase) + published + { + This test uses TInstantCodeModel to: read the actual TestModel.pas unit + from disk; parse it; rename class TCategory to TCategory2, and checks + that the rename succeeded. The modified source code is not saved back to + disk. + } + procedure TestRenameModelClass; + end; + +implementation + +uses + SysUtils, Classes, testregistry; + +{ TTestInstantCodeModel } + +procedure TTestInstantCodeModel.TestRenameModelClass; +var + LCodeModel: TInstantCodeModel; + LFile: TStream; + LSource: TStringStream; + LClass: TInstantCodeClass; + LChangeInfo: TInstantCodeClassChangeInfo; + LSourceCode: string; + LChangedAttrs: TStringList; + LNewAttrs: TList; +begin + LCodeModel := TInstantCodeModel.Create; + try + LFile := TFileStream.Create(ExtractFilePath(ParamStr(0)) + 'TestModel.pas', fmOpenRead); + try + LSource := TStringStream.Create(''); + try + LSource.CopyFrom(LFile, LFile.Size); + LCodeModel.LoadModule(LSource.DataString); + + AssertNotNull(LCodeModel.FindModule('TestModel')); + AssertNotNull(LCodeModel.FindClass('TCategory')); + + LClass := LCodeModel.FindClass('TCategory'); + + LChangedAttrs := TStringList.Create; + try + LNewAttrs := TList.Create; + try + LClass.Name := 'TCategory2'; + LChangeInfo := TInstantCodeClassChangeInfo.Create(LClass, ctEdit, + 'TCategory', LChangedAttrs, LNewAttrs); + try + LSourceCode := LSource.DataString; + LClass.ApplyToSource(LSourceCode, LChangeInfo); + + LCodeModel.Clear; + LCodeModel.LoadModule(LSourceCode); + + AssertNotNull('Renamed class not found', LCodeModel.FindClass('TCategory2')); + AssertNull('Old class is still there', LCodeModel.FindClass('TCategory')); + finally + LChangeInfo.Free; + end; + finally + LNewAttrs.Free; + end; + finally + LChangedAttrs.Free; + end; + finally + LSource.Free; + end; + finally + LFile.Free; + end; + finally + LCodeModel.Free; + end; +end; + +initialization +{$IFNDEF CURR_TESTS} + RegisterTests([TTestInstantCodeModel]); +{$ENDIF} +end. Property changes on: trunk/Tests/TestInstantCode.pas ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native |
From: <na...@us...> - 2009-08-14 07:18:55
|
Revision: 822 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=822&view=rev Author: nandod Date: 2009-08-14 07:18:46 +0000 (Fri, 14 Aug 2009) Log Message: ----------- * svn properties set. - Removed ZeosDBO package from core project groups. Modified Paths: -------------- trunk/Source/PackageGroups/D7/DesignTimePackages.bpg trunk/Source/PackageGroups/D7/RunTimePackages.bpg Property Changed: ---------------- trunk/Demos/PrimerCross/ trunk/Source/Brokers/ADO/D2009/ trunk/Source/Brokers/BDE/D2009/ trunk/Source/Brokers/DBX/D2009/ trunk/Source/Brokers/IBX/D2009/ trunk/Source/Brokers/XML/D2009/ trunk/Source/Catalogs/IBFb/D2009/ trunk/Source/Catalogs/MSSql/D2009/ trunk/Source/Catalogs/MySQL/D2009/ Property changes on: trunk/Demos/PrimerCross ___________________________________________________________________ Modified: svn:ignore - *.dcu *.~* *.ddp *.exe __history *.identcache *.local *.dsk *.MB XMLDB + *.dcu *.~* *.ddp *.exe __history *.identcache *.local *.dsk *.MB XMLDB PrimerExternal_D2009.xml Property changes on: trunk/Source/Brokers/ADO/D2009 ___________________________________________________________________ Modified: svn:ignore - *.dcu *.local + *.dcu *.local *.identcache Property changes on: trunk/Source/Brokers/BDE/D2009 ___________________________________________________________________ Modified: svn:ignore - *.dcu *.local + *.dcu *.local *.identcache Property changes on: trunk/Source/Brokers/DBX/D2009 ___________________________________________________________________ Modified: svn:ignore - *.dcu *.local + *.dcu *.local *.identcache Property changes on: trunk/Source/Brokers/IBX/D2009 ___________________________________________________________________ Modified: svn:ignore - *.dcu *.local + *.dcu *.local *.identcache Property changes on: trunk/Source/Brokers/XML/D2009 ___________________________________________________________________ Modified: svn:ignore - *.dcu __history *.local + *.dcu __history *.local *.identcache Property changes on: trunk/Source/Catalogs/IBFb/D2009 ___________________________________________________________________ Modified: svn:ignore - *.dcu *.local + *.dcu *.local *.identcache Property changes on: trunk/Source/Catalogs/MSSql/D2009 ___________________________________________________________________ Modified: svn:ignore - *.dcu *.local + *.dcu *.local *.identcache Property changes on: trunk/Source/Catalogs/MySQL/D2009 ___________________________________________________________________ Modified: svn:ignore - *.dcu *.local + *.dcu *.local *.identcache Modified: trunk/Source/PackageGroups/D7/DesignTimePackages.bpg =================================================================== --- trunk/Source/PackageGroups/D7/DesignTimePackages.bpg 2009-08-14 07:15:58 UTC (rev 821) +++ trunk/Source/PackageGroups/D7/DesignTimePackages.bpg 2009-08-14 07:18:46 UTC (rev 822) @@ -10,7 +10,7 @@ BRCC = $(ROOT)\bin\brcc32.exe $** #------------------------------------------------------------------------------ PROJECTS = dclIOCore_D7.bpl dclIOADO_D7.bpl dclIOBDE_D7.bpl dclIODBX_D7.bpl \ - dclIOIBX_D7.bpl dclIOXML_D7.bpl DclIOZeosDBO_D7.bpl + dclIOIBX_D7.bpl dclIOXML_D7.bpl #------------------------------------------------------------------------------ default: $(PROJECTS) #------------------------------------------------------------------------------ @@ -33,7 +33,3 @@ dclIOXML_D7.bpl: ..\..\Brokers\XML\D7\dclIOXML.dpk $(DCC) -DclIOZeosDBO_D7.bpl: ..\..\Brokers\ZeosDBO\D7\DclIOZeosDBO.dpk - $(DCC) - - Modified: trunk/Source/PackageGroups/D7/RunTimePackages.bpg =================================================================== --- trunk/Source/PackageGroups/D7/RunTimePackages.bpg 2009-08-14 07:15:58 UTC (rev 821) +++ trunk/Source/PackageGroups/D7/RunTimePackages.bpg 2009-08-14 07:18:46 UTC (rev 822) @@ -11,7 +11,7 @@ #------------------------------------------------------------------------------ PROJECTS = IOCore_D7.bpl IOMSSqlCatalog_D7.bpl IOIBFbCatalog_D7.bpl \ IOMySQLCatalog_D7.bpl IOADO_D7.bpl IOBDE_D7.bpl IODBX_D7.bpl IOIBX_D7.bpl \ - IOXML_D7.bpl IOZeosDBO_D7.bpl + IOXML_D7.bpl #------------------------------------------------------------------------------ default: $(PROJECTS) #------------------------------------------------------------------------------ @@ -43,7 +43,3 @@ IOMySQLCatalog_D7.bpl: ..\..\Catalogs\MySQL\D7\IOMySQLCatalog.dpk $(DCC) -IOZeosDBO_D7.bpl: ..\..\Brokers\ZeosDBO\D7\IOZeosDBO.dpk - $(DCC) - - |
From: <na...@us...> - 2009-08-14 19:28:51
|
Revision: 826 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=826&view=rev Author: nandod Date: 2009-08-14 19:28:40 +0000 (Fri, 14 Aug 2009) Log Message: ----------- * XML I/O formatting and indentation rewritted. The former implementation broke a few tests. * Changed a few calls to WriteStr to WriteUTF8Str in order to avoid warnings and better support unicode identifiers; added TInstantWriter.WriteUTF8Str for D<2009. Modified Paths: -------------- trunk/Source/Core/InstantClasses.pas trunk/Source/Core/InstantConsts.pas trunk/Source/Core/InstantMetadata.pas trunk/Source/Core/InstantPersistence.pas trunk/Tests/TestIO.mdx trunk/Tests/TestIO.mdxt trunk/Tests/TestIO_D2009.mdx trunk/Tests/TestIO_D2009.mdxt trunk/Tests/TestInstantClasses.pas trunk/Tests/TestMinimalModel.pas Modified: trunk/Source/Core/InstantClasses.pas =================================================================== --- trunk/Source/Core/InstantClasses.pas 2009-08-14 09:20:30 UTC (rev 825) +++ trunk/Source/Core/InstantClasses.pas 2009-08-14 19:28:40 UTC (rev 826) @@ -200,6 +200,7 @@ procedure WriteProperties(AObject: TPersistent); {$IFNDEF UNICODE} procedure WriteString(const Value: string); + procedure WriteUTF8Str(const Value: string); inline; {$ENDIF} procedure WriteValue(Value: TValueType); property Stream: TStream read FStream; @@ -262,27 +263,29 @@ end; {$ENDIF} + TInstantXMLToken = (xtNone, xtStartTag, xtEndTag, xtAnyTag, xtData); + TInstantXMLProducer = class(TObject) private FStream: TStream; FTagStack: TStringList; FWriter: TAbstractWriter; - FCurrentIndentationSize: Integer; + FIndentationSize: Integer; + FLastToken: TInstantXMLToken; function GetCurrentTag: string; function GetEof: Boolean; function GetPosition: Integer; function GetTagStack: TStringList; function GetWriter: TAbstractWriter; procedure SetPosition(Value: Integer); + protected + function IsPrettyXMLEnabled: Boolean; procedure WriteString(const S: string); - protected property TagStack: TStringList read GetTagStack; property Writer: TAbstractWriter read GetWriter; - public - procedure Indent; - procedure Unindent; procedure WriteIndentation; procedure WriteLineBreak; + public constructor Create(Stream: TStream); destructor Destroy; override; procedure WriteEscapedData(const Data: string); @@ -295,8 +298,6 @@ property Stream: TStream read FStream; end; - TInstantXMLToken = (xtTag, xtData); - TInstantXMLProcessor = class(TObject) private FReader: TAbstractReader; @@ -310,6 +311,7 @@ protected procedure CheckToken(AToken: TInstantXMLToken); function PeekChar: Char; + function PeekCharSkippingBlanks: Char; function ReadChar: Char; procedure SkipBlanks; property Reader: TAbstractReader read GetReader; @@ -1073,7 +1075,7 @@ procedure TInstantWriter.WriteObject(AObject: TPersistent); begin - WriteStr(AObject.ClassName); + WriteUTF8Str(AObject.ClassName); if AObject is TInstantStreamable then TInstantStreamable(AObject).WriteObject(Self) else if AObject is TInstantCollection then @@ -1093,6 +1095,11 @@ WriteListEnd; end; +procedure TInstantWriter.WriteValue(Value: TValueType); +begin + inherited WriteValue(Value); +end; + {$IFNDEF UNICODE} procedure TInstantWriter.WriteString(const Value: string); var @@ -1110,12 +1117,22 @@ end; Write(Pointer(Value)^, L); end; -{$ENDIF} -procedure TInstantWriter.WriteValue(Value: TValueType); +procedure TInstantWriter.WriteUTF8Str(const Value: string); +var + U: UTF8String; + L: Integer; begin - inherited; + // Note: in versions of Delphi that don't have AnsiToUtf8, just use: + // WriteStr(Value); + // as the body for this function. + U := AnsiToUtf8(Value); + L := Length(U); + if L > 255 then L := 255; + Write(L, SizeOf(Byte)); + Write(U[1], L); end; +{$ENDIF} { TInstantStream } @@ -1348,26 +1365,17 @@ { TInstantXMLProducer } -procedure TInstantXMLProducer.Indent; +function TInstantXMLProducer.IsPrettyXMLEnabled: Boolean; begin - Inc(FCurrentIndentationSize, InstantXMLIndentationSize); + Result := FIndentationSize > 0; end; -procedure TInstantXMLProducer.Unindent; -begin - Dec(FCurrentIndentationSize, InstantXMLIndentationSize); - if InstantXMLIndentationSize >= 0 then - begin - WriteLineBreak; - WriteIndentation; - end; -end; - - constructor TInstantXMLProducer.Create(Stream: TStream); begin inherited Create; FStream := Stream; + FLastToken := xtNone; + FIndentationSize := InstantXMLIndentationSize; end; destructor TInstantXMLProducer.Destroy; @@ -1415,15 +1423,39 @@ procedure TInstantXMLProducer.WriteData(const Data: string); begin WriteString(Data); + FLastToken := xtData; end; +procedure TInstantXMLProducer.WriteStartTag(const Tag: string); +begin + if IsPrettyXMLEnabled then + begin + if FLastToken = xtStartTag then + WriteLineBreak; + WriteIndentation; + end; + WriteString(InstantBuildStartTag(Tag)); + TagStack.Add(Tag); + FLastToken := xtStartTag; +end; + procedure TInstantXMLProducer.WriteEndTag; var - Index: Integer; + LTagName: string; begin - Index := TagStack.Count - 1; - WriteString(InstantBuildEndTag(TagStack[Index])); - TagStack.Delete(Index); + LTagName := TagStack[TagStack.Count - 1]; + TagStack.Delete(TagStack.Count - 1); + if IsPrettyXMLEnabled then + begin + if FLastToken = xtStartTag then + WriteLineBreak; + if FLastToken in [xtStartTag, xtEndTag] then + WriteIndentation; + end; + WriteString(InstantBuildEndTag(LTagName)); + if IsPrettyXMLEnabled then + WriteLineBreak; + FLastToken := xtEndTag; end; procedure TInstantXMLProducer.WriteEscapedData(const Data: string); @@ -1453,28 +1485,13 @@ end; Esc := Format(EscStr, [Esc]); WriteString(Esc); - end else//MC if C in [#32..#126] then + end + else WriteString(C); -(* MC - else begin - Esc := Format(EscStr, [Format('#%d', [Ord(C)])]); - WriteString(Esc); - end; -*) end; + FLastToken := xtData; end; -procedure TInstantXMLProducer.WriteStartTag(const Tag: string); -begin - if InstantXMLIndentationSize >= 0 then - begin - WriteLineBreak; - WriteIndentation; - end; - WriteString(InstantBuildStartTag(Tag)); - TagStack.Add(Tag); -end; - procedure TInstantXMLProducer.WriteLineBreak; begin WriteString(sLineBreak); @@ -1482,8 +1499,7 @@ procedure TInstantXMLProducer.WriteIndentation; begin - if FCurrentIndentationSize > 0 then - WriteString(DupeString(' ' , FCurrentIndentationSize)); + WriteString(DupeString(' ' , TagStack.Count * FIndentationSize)); end; procedure TInstantXMLProducer.WriteString(const S: string); @@ -1534,8 +1550,8 @@ function TInstantXMLProcessor.GetToken: TInstantXMLToken; begin - if PeekChar = InstantTagStart then - Result := xtTag + if PeekCharSkippingBlanks = InstantTagStart then + Result := xtAnyTag else Result := xtData; end; @@ -1552,6 +1568,19 @@ end; end; +function TInstantXMLProcessor.PeekCharSkippingBlanks: Char; +var + Pos: Integer; +begin + Pos := Position; + try + SkipBlanks; + Result := ReadChar; + finally + Position := Pos; + end; +end; + function TInstantXMLProcessor.PeekTag: string; var Pos: Integer; @@ -1645,7 +1674,7 @@ Pos := Position; try SkipBlanks; - CheckToken(xtTag); + CheckToken(xtAnyTag); except Position := Pos; raise; @@ -1687,7 +1716,7 @@ EndTag := InstantBuildEndTag(TagName); Level := 1; repeat - if Token = xtTag then + if Token = xtAnyTag then begin TagName := ReadTag; if SameText(TagName, StartTag) then @@ -1789,7 +1818,6 @@ Result := Reader.Stream; end; - function TInstantBinaryToTextConverter.GetOutput: TStream; begin Result := Producer.Stream; @@ -1800,7 +1828,6 @@ PushObjectClass(FindClass(Reader.ReadStr)); try Producer.WriteStartTag(ObjectClassName); - Producer.Indent; if ObjectClass.InheritsFrom(TInstantStreamable) then TInstantStreamableClass(ObjectClass).ConvertToText(Self) else if ObjectClass.InheritsFrom(TInstantCollection) then @@ -1808,7 +1835,6 @@ else if ObjectClass.InheritsFrom(TInstantCollectionItem) then TInstantCollectionItemClass(ObjectClass).ConvertToText(Self); Reader.ReadListEnd; - Producer.Unindent; Producer.WriteEndTag; finally PopObjectClass; @@ -1878,7 +1904,6 @@ end; begin - Producer.Indent; while not Reader.EndOfList do begin Producer.WriteStartTag(Reader.ReadStr); @@ -1886,7 +1911,6 @@ Producer.WriteEndTag; end; Reader.ReadListEnd; - Producer.Unindent; end; { TInstantToTextToBinaryConverter } @@ -1934,7 +1958,7 @@ begin PropName := Processor.ReadTagName; ValueStr := Processor.ReadData; - Writer.WriteStr(PropName); + Writer.WriteUTF8Str(PropName); case GetTypeInfo(PropInfo)^.Kind of //PropInfo^.PropType^^.Kind of tkInteger: Writer.WriteInteger(StrToInt(ValueStr)); @@ -1966,7 +1990,7 @@ try InstantStrToList(ValueStr, S, [',']); for I := 0 to Pred(S.Count) do - Writer.WriteStr(S[I]); + Writer.WriteUTF8Str(S[I]); finally S.Free; end; @@ -2012,7 +2036,7 @@ begin PushObjectClass(FindClass(Processor.ReadTagName)); try - Writer.WriteStr(ObjectClassName); + Writer.WriteUTF8Str(ObjectClassName); if ObjectClass.InheritsFrom(TInstantStreamable) then TInstantStreamableClass(ObjectClass).ConvertToBinary(Self) else if ObjectClass.InheritsFrom(TInstantCollection) then Modified: trunk/Source/Core/InstantConsts.pas =================================================================== --- trunk/Source/Core/InstantConsts.pas 2009-08-14 09:20:30 UTC (rev 825) +++ trunk/Source/Core/InstantConsts.pas 2009-08-14 19:28:40 UTC (rev 826) @@ -79,7 +79,7 @@ {$ENDIF} var - InstantXMLIndentationSize: Integer = 2; + InstantXMLIndentationSize: Byte = 2; resourcestring SAccessError = 'Cannot access attribute %s(''%s'') as type: %s'; Modified: trunk/Source/Core/InstantMetadata.pas =================================================================== --- trunk/Source/Core/InstantMetadata.pas 2009-08-14 09:20:30 UTC (rev 825) +++ trunk/Source/Core/InstantMetadata.pas 2009-08-14 19:28:40 UTC (rev 826) @@ -623,8 +623,8 @@ with Converter do begin ConvertProperties(InstantBuildStartTag(InstantAttributeMetadatasTagName)); - Processor.ReadTag; - if (Processor.Token = xtTag) and not SameText(Processor.PeekTag, + Assert(Processor.ReadTagName = InstantAttributeMetadatasTagName); + if (Processor.Token = xtAnyTag) and not SameText(Processor.PeekTag, InstantBuildEndTag(InstantAttributeMetadatasTagName)) then Convert; Processor.ReadTag; @@ -1942,28 +1942,5 @@ inherited Items[Index] := Value; end; - - - - - - - - - - - - - - - - - - - - - - - - end. + Modified: trunk/Source/Core/InstantPersistence.pas =================================================================== --- trunk/Source/Core/InstantPersistence.pas 2009-08-14 09:20:30 UTC (rev 825) +++ trunk/Source/Core/InstantPersistence.pas 2009-08-14 19:28:40 UTC (rev 826) @@ -2265,8 +2265,8 @@ begin with Writer do begin - WriteStr(ObjectClassName); - WriteStr(ObjectId); + WriteUTF8Str(ObjectClassName); + WriteUTF8Str(ObjectId); WriteListEnd; WriteListEnd; end; @@ -2277,8 +2277,8 @@ inherited; Writer.WriteStr(''); Writer.WriteStr(''); - Writer.WriteStr(ObjectClassName); - Writer.WriteStr(ObjectId); + Writer.WriteUTF8Str(ObjectClassName); + Writer.WriteUTF8Str(ObjectId); end; { TInstantAttribute } @@ -2550,7 +2550,7 @@ procedure TInstantAttribute.WriteName(Writer: TInstantWriter); begin - Writer.WriteStr(Name); + Writer.WriteUTF8Str(Name); end; { TInstantSimple } @@ -5522,7 +5522,7 @@ with Converter do begin AttributeName := Processor.ReadTagName; - Writer.WriteStr(AttributeName); + Writer.WriteUTF8Str(AttributeName); case AttributeMetadata.AttributeType of atInteger: Writer.WriteInteger(StrToInt(Processor.ReadData)); @@ -5599,11 +5599,11 @@ if Processor.PeekTagName = InstantIdFieldName then begin Processor.ReadTag; - if (Processor.Token = xtTag) and SameText(Processor.ReadTagName, + if (Processor.Token = xtAnyTag) and SameText(Processor.ReadTagName, InstantBuildEndTag(InstantIdFieldName)) then Writer.WriteStr('') else begin - Writer.WriteStr(Processor.ReadData); + Writer.WriteUTF8Str(Processor.ReadData); Processor.ReadTag; end; end else @@ -5642,9 +5642,7 @@ vaIdent: begin Reader.ReadIdent; - Producer.Indent; Convert; - Producer.Unindent; end; vaFalse: begin @@ -5669,11 +5667,9 @@ vaCollection: begin Reader.ReadValue; - Producer.Indent; - while not Reader.EndOfList do - Convert; - Producer.Unindent; - Reader.ReadListEnd; + while not Reader.EndOfList do + Convert; + Reader.ReadListEnd; end; else raise EInstantStreamError.CreateFmt(SInvalidValueType, @@ -6831,7 +6827,7 @@ procedure TInstantObject.WriteObject(Writer: TInstantWriter); begin - Writer.WriteStr(Id); + Writer.WriteUTF8Str(Id); WriteAttributes(Writer); end; Modified: trunk/Tests/TestIO.mdx =================================================================== --- trunk/Tests/TestIO.mdx 2009-08-14 09:20:30 UTC (rev 825) +++ trunk/Tests/TestIO.mdx 2009-08-14 19:28:40 UTC (rev 826) @@ -1 +1,461 @@ -<TInstantClassMetadatas><TInstantClassMetadata><Name>TAddress</Name><Persistence>peEmbedded</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>City</Name><AttributeType>atString</AttributeType><IsIndexed>TRUE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Country</Name><AttributeType>atReference</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TCountry</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>State</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>4</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Street</Name><AttributeType>atMemo</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Zip</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>10</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TCountry</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TPhone</Name><Persistence>peEmbedded</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>20</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Number</Name><AttributeType>atString</AttributeType><EditMask>(000) 000-0000;0;_</EditMask><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>20</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TEmail</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Address</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>100</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TCategory</Name><Persistence>peStored</Persistence><StorageName>Categories</StorageName><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TContact</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Address</Name><AttributeType>atPart</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TAddress</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Category</Name><AttributeType>atReference</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TCategory</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>City</Name><AttributeType>atString</AttributeType><IsIndexed>TRUE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>TRUE</IsIndexed><IsRequired>FALSE</IsRequired><Size>50</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Phones</Name><AttributeType>atParts</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TPhone</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Projects</Name><AttributeType>atReferences</AttributeType><ExternalStorageName>Contact_Projects</ExternalStorageName><StorageKind>skExternal</StorageKind><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TProject</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>ExternalAddress</Name><AttributeType>atPart</AttributeType><StorageKind>skExternal</StorageKind><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TExternalAddress</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>ExternalPhones</Name><AttributeType>atParts</AttributeType><ExternalStorageName>Contact_ExternalPhones</ExternalStorageName><StorageKind>skExternal</StorageKind><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TExternalPhone</ObjectClassName></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TContactFilter</Name><ParentName>TContact</ParentName><Persistence>peEmbedded</Persistence><AttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TPerson</Name><ParentName>TContact</ParentName><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>BirthDate</Name><AttributeType>atDateTime</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Emails</Name><AttributeType>atParts</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TEmail</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Employer</Name><AttributeType>atReference</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TCompany</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Picture</Name><AttributeType>atBlob</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Salary</Name><AttributeType>atCurrency</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ValidCharsString>,.0..9\x82\xAC\xE2</ValidCharsString></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Employed</Name><AttributeType>atBoolean</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>AL_hours</Name><AttributeType>atFloat</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>EmploymentDate</Name><AttributeType>atDate</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>BirthTime</Name><AttributeType>atTime</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TCompany</Name><ParentName>TContact</ParentName><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Employees</Name><AttributeType>atReferences</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TPerson</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>NoOfBranches</Name><AttributeType>atInteger</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Subsidiaries</Name><AttributeType>atReferences</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TCompany</ObjectClassName></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TProject</Name><Persistence>peStored</Persistence><StorageName>Projects</StorageName><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>SubProjects</Name><AttributeType>atParts</AttributeType><ExternalStorageName>Project_SubProjects</ExternalStorageName><StorageKind>skExternal</StorageKind><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TProject</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Addresses</Name><AttributeType>atParts</AttributeType><ExternalStorageName>Project_Addresses</ExternalStorageName><StorageKind>skExternal</StorageKind><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TExternalAddress</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Manager</Name><AttributeType>atReference</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TContact</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Participants</Name><AttributeType>atReferences</AttributeType><ExternalStorageName>Project_Participants</ExternalStorageName><StorageKind>skExternal</StorageKind><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TContact</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Items</Name><AttributeType>atPart</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TProjectItems</ObjectClassName></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TExternalAddress</Name><Persistence>peStored</Persistence><StorageName>ExternalAddresses</StorageName><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Category</Name><AttributeType>atReference</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TCategory</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Site_Contact</Name><AttributeType>atReference</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TPerson</ObjectClassName></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TExternalPhone</Name><Persistence>peStored</Persistence><StorageName>ExternalPhones</StorageName><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>20</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Number</Name><AttributeType>atString</AttributeType><EditMask>(000) 000-0000;0;_</EditMask><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>20</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TProjectBox</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Project</Name><AttributeType>atPart</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TProject</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>RelatedProjectBoxes</Name><AttributeType>atReferences</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TProjectBox</ObjectClassName></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TProjectItem</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Description</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>50</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Country</Name><AttributeType>atReference</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TCountry</ObjectClassName></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TProjectItems</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Items</Name><AttributeType>atParts</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TProjectItem</ObjectClassName></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata></TInstantClassMetadatas> \ No newline at end of file +<TInstantClassMetadatas> + <TInstantClassMetadata> + <Name>TAddress</Name> + <Persistence>peEmbedded</Persistence> + <AttributeMetadatas> + <TInstantAttributeMetadatas> + <TInstantAttributeMetadata> + <Name>City</Name> + <AttributeType>atString</AttributeType> + <IsIndexed>TRUE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <Size>30</Size> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Country</Name> + <AttributeType>atReference</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ObjectClassName>TCountry</ObjectClassName> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>State</Name> + <AttributeType>atString</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <Size>4</Size> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Street</Name> + <AttributeType>atMemo</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Zip</Name> + <AttributeType>atString</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <Size>10</Size> + </TInstantAttributeMetadata> + </TInstantAttributeMetadatas> + </AttributeMetadatas> + </TInstantClassMetadata> + <TInstantClassMetadata> + <Name>TCountry</Name> + <Persistence>peStored</Persistence> + <AttributeMetadatas> + <TInstantAttributeMetadatas> + <TInstantAttributeMetadata> + <Name>Name</Name> + <AttributeType>atString</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <Size>30</Size> + </TInstantAttributeMetadata> + </TInstantAttributeMetadatas> + </AttributeMetadatas> + </TInstantClassMetadata> + <TInstantClassMetadata> + <Name>TPhone</Name> + <Persistence>peEmbedded</Persistence> + <AttributeMetadatas> + <TInstantAttributeMetadatas> + <TInstantAttributeMetadata> + <Name>Name</Name> + <AttributeType>atString</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <Size>20</Size> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Name</Name> + <AttributeType>atString</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <Size>30</Size> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Number</Name> + <AttributeType>atString</AttributeType> + <EditMask>(000) 000-0000;0;_</EditMask> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <Size>20</Size> + </TInstantAttributeMetadata> + </TInstantAttributeMetadatas> + </AttributeMetadatas> + </TInstantClassMetadata> + <TInstantClassMetadata> + <Name>TEmail</Name> + <Persistence>peStored</Persistence> + <AttributeMetadatas> + <TInstantAttributeMetadatas> + <TInstantAttributeMetadata> + <Name>Address</Name> + <AttributeType>atString</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <Size>100</Size> + </TInstantAttributeMetadata> + </TInstantAttributeMetadatas> + </AttributeMetadatas> + </TInstantClassMetadata> + <TInstantClassMetadata> + <Name>TCategory</Name> + <Persistence>peStored</Persistence> + <StorageName>Categories</StorageName> + <AttributeMetadatas> + <TInstantAttributeMetadatas> + <TInstantAttributeMetadata> + <Name>Name</Name> + <AttributeType>atString</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <Size>30</Size> + </TInstantAttributeMetadata> + </TInstantAttributeMetadatas> + </AttributeMetadatas> + </TInstantClassMetadata> + <TInstantClassMetadata> + <Name>TContact</Name> + <Persistence>peStored</Persistence> + <AttributeMetadatas> + <TInstantAttributeMetadatas> + <TInstantAttributeMetadata> + <Name>Address</Name> + <AttributeType>atPart</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ObjectClassName>TAddress</ObjectClassName> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Category</Name> + <AttributeType>atReference</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ObjectClassName>TCategory</ObjectClassName> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>City</Name> + <AttributeType>atString</AttributeType> + <IsIndexed>TRUE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <Size>30</Size> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Name</Name> + <AttributeType>atString</AttributeType> + <IsIndexed>TRUE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <Size>50</Size> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Phones</Name> + <AttributeType>atParts</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ObjectClassName>TPhone</ObjectClassName> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Projects</Name> + <AttributeType>atReferences</AttributeType> + <ExternalStorageName>Contact_Projects</ExternalStorageName> + <StorageKind>skExternal</StorageKind> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ObjectClassName>TProject</ObjectClassName> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>ExternalAddress</Name> + <AttributeType>atPart</AttributeType> + <StorageKind>skExternal</StorageKind> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ObjectClassName>TExternalAddress</ObjectClassName> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>ExternalPhones</Name> + <AttributeType>atParts</AttributeType> + <ExternalStorageName>Contact_ExternalPhones</ExternalStorageName> + <StorageKind>skExternal</StorageKind> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ObjectClassName>TExternalPhone</ObjectClassName> + </TInstantAttributeMetadata> + </TInstantAttributeMetadatas> + </AttributeMetadatas> + </TInstantClassMetadata> + <TInstantClassMetadata> + <Name>TContactFilter</Name> + <ParentName>TContact</ParentName> + <Persistence>peEmbedded</Persistence> + <AttributeMetadatas> + </AttributeMetadatas> + </TInstantClassMetadata> + <TInstantClassMetadata> + <Name>TPerson</Name> + <ParentName>TContact</ParentName> + <Persistence>peStored</Persistence> + <AttributeMetadatas> + <TInstantAttributeMetadatas> + <TInstantAttributeMetadata> + <Name>BirthDate</Name> + <AttributeType>atDateTime</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Emails</Name> + <AttributeType>atParts</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ObjectClassName>TEmail</ObjectClassName> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Employer</Name> + <AttributeType>atReference</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ObjectClassName>TCompany</ObjectClassName> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Picture</Name> + <AttributeType>atBlob</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Salary</Name> + <AttributeType>atCurrency</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ValidCharsString>,.0..9\x82\xAC\xE2</ValidCharsString> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Employed</Name> + <AttributeType>atBoolean</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>AL_hours</Name> + <AttributeType>atFloat</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>EmploymentDate</Name> + <AttributeType>atDate</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>BirthTime</Name> + <AttributeType>atTime</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + </TInstantAttributeMetadata> + </TInstantAttributeMetadatas> + </AttributeMetadatas> + </TInstantClassMetadata> + <TInstantClassMetadata> + <Name>TCompany</Name> + <ParentName>TContact</ParentName> + <Persistence>peStored</Persistence> + <AttributeMetadatas> + <TInstantAttributeMetadatas> + <TInstantAttributeMetadata> + <Name>Employees</Name> + <AttributeType>atReferences</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ObjectClassName>TPerson</ObjectClassName> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>NoOfBranches</Name> + <AttributeType>atInteger</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Subsidiaries</Name> + <AttributeType>atReferences</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ObjectClassName>TCompany</ObjectClassName> + </TInstantAttributeMetadata> + </TInstantAttributeMetadatas> + </AttributeMetadatas> + </TInstantClassMetadata> + <TInstantClassMetadata> + <Name>TProject</Name> + <Persistence>peStored</Persistence> + <StorageName>Projects</StorageName> + <AttributeMetadatas> + <TInstantAttributeMetadatas> + <TInstantAttributeMetadata> + <Name>Name</Name> + <AttributeType>atString</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <Size>30</Size> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>SubProjects</Name> + <AttributeType>atParts</AttributeType> + <ExternalStorageName>Project_SubProjects</ExternalStorageName> + <StorageKind>skExternal</StorageKind> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ObjectClassName>TProject</ObjectClassName> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Addresses</Name> + <AttributeType>atParts</AttributeType> + <ExternalStorageName>Project_Addresses</ExternalStorageName> + <StorageKind>skExternal</StorageKind> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ObjectClassName>TExternalAddress</ObjectClassName> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Manager</Name> + <AttributeType>atReference</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ObjectClassName>TContact</ObjectClassName> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Participants</Name> + <AttributeType>atReferences</AttributeType> + <ExternalStorageName>Project_Participants</ExternalStorageName> + <StorageKind>skExternal</StorageKind> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ObjectClassName>TContact</ObjectClassName> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Items</Name> + <AttributeType>atPart</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ObjectClassName>TProjectItems</ObjectClassName> + </TInstantAttributeMetadata> + </TInstantAttributeMetadatas> + </AttributeMetadatas> + </TInstantClassMetadata> + <TInstantClassMetadata> + <Name>TExternalAddress</Name> + <Persistence>peStored</Persistence> + <StorageName>ExternalAddresses</StorageName> + <AttributeMetadatas> + <TInstantAttributeMetadatas> + <TInstantAttributeMetadata> + <Name>Name</Name> + <AttributeType>atString</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <Size>30</Size> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Category</Name> + <AttributeType>atReference</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ObjectClassName>TCategory</ObjectClassName> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Site_Contact</Name> + <AttributeType>atReference</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ObjectClassName>TPerson</ObjectClassName> + </TInstantAttributeMetadata> + </TInstantAttributeMetadatas> + </AttributeMetadatas> + </TInstantClassMetadata> + <TInstantClassMetadata> + <Name>TExternalPhone</Name> + <Persistence>peStored</Persistence> + <StorageName>ExternalPhones</StorageName> + <AttributeMetadatas> + <TInstantAttributeMetadatas> + <TInstantAttributeMetadata> + <Name>Name</Name> + <AttributeType>atString</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <Size>20</Size> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Number</Name> + <AttributeType>atString</AttributeType> + <EditMask>(000) 000-0000;0;_</EditMask> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <Size>20</Size> + </TInstantAttributeMetadata> + </TInstantAttributeMetadatas> + </AttributeMetadatas> + </TInstantClassMetadata> + <TInstantClassMetadata> + <Name>TProjectBox</Name> + <Persistence>peStored</Persistence> + <AttributeMetadatas> + <TInstantAttributeMetadatas> + <TInstantAttributeMetadata> + <Name>Project</Name> + <AttributeType>atPart</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ObjectClassName>TProject</ObjectClassName> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>RelatedProjectBoxes</Name> + <AttributeType>atReferences</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ObjectClassName>TProjectBox</ObjectClassName> + </TInstantAttributeMetadata> + </TInstantAttributeMetadatas> + </AttributeMetadatas> + </TInstantClassMetadata> + <TInstantClassMetadata> + <Name>TProjectItem</Name> + <Persistence>peStored</Persistence> + <AttributeMetadatas> + <TInstantAttributeMetadatas> + <TInstantAttributeMetadata> + <Name>Description</Name> + <AttributeType>atString</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <Size>50</Size> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Country</Name> + <AttributeType>atReference</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ObjectClassName>TCountry</ObjectClassName> + </TInstantAttributeMetadata> + </TInstantAttributeMetadatas> + </AttributeMetadatas> + </TInstantClassMetadata> + <TInstantClassMetadata> + <Name>TProjectItems</Name> + <Persistence>peStored</Persistence> + <AttributeMetadatas> + <TInstantAttributeMetadatas> + <TInstantAttributeMetadata> + <Name>Items</Name> + <AttributeType>atParts</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ObjectClassName>TProjectItem</ObjectClassName> + </TInstantAttributeMetadata> + </TInstantAttributeMetadatas> + </AttributeMetadatas> + </TInstantClassMetadata> +</TInstantClassMetadatas> Modified: trunk/Tests/TestIO.mdxt =================================================================== --- trunk/Tests/TestIO.mdxt 2009-08-14 09:20:30 UTC (rev 825) +++ trunk/Tests/TestIO.mdxt 2009-08-14 19:28:40 UTC (rev 826) @@ -1 +1,445 @@ -<TInstantClassMetadatas><TInstantClassMetadata><Name>TAddress</Name><Persistence>peEmbedded</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>City</Name><AttributeType>atString</AttributeType><IsIndexed>TRUE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Country</Name><AttributeType>atReference</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TCountry</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>State</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>4</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Street</Name><AttributeType>atMemo</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Zip</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>10</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TCountry</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TPhone</Name><Persistence>peEmbedded</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>20</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Number</Name><AttributeType>atString</AttributeType><EditMask>(000) 000-0000;0;_</EditMask><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>20</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TEmail</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Address</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>100</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TContact</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Address</Name><AttributeType>atPart</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TAddress</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Category</Name><AttributeType>atReference</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TCategory</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>City</Name><AttributeType>atString</AttributeType><IsIndexed>TRUE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>TRUE</IsIndexed><IsRequired>FALSE</IsRequired><Size>50</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Phones</Name><AttributeType>atParts</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TPhone</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Projects</Name><AttributeType>atReferences</AttributeType><ExternalStorageName>Contact_Projects</ExternalStorageName><StorageKind>skExternal</StorageKind><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TProject</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>ExternalAddress</Name><AttributeType>atPart</AttributeType><StorageKind>skExternal</StorageKind><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TExternalAddress</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>ExternalPhones</Name><AttributeType>atParts</AttributeType><ExternalStorageName>Contact_ExternalPhones</ExternalStorageName><StorageKind>skExternal</StorageKind><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TExternalPhone</ObjectClassName></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TContactFilter</Name><ParentName>TContact</ParentName><Persistence>peEmbedded</Persistence><AttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TPerson</Name><ParentName>TContact</ParentName><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>BirthDate</Name><AttributeType>atDateTime</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Emails</Name><AttributeType>atParts</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TEmail</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Employer</Name><AttributeType>atReference</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TCompany</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Picture</Name><AttributeType>atBlob</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Salary</Name><AttributeType>atCurrency</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ValidCharsString>,.0..9\x82\xAC\xE2</ValidCharsString></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Employed</Name><AttributeType>atBoolean</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>AL_hours</Name><AttributeType>atFloat</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>EmploymentDate</Name><AttributeType>atDate</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>BirthTime</Name><AttributeType>atTime</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TCompany</Name><ParentName>TContact</ParentName><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Employees</Name><AttributeType>atReferences</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TPerson</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>NoOfBranches</Name><AttributeType>atInteger</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Subsidiaries</Name><AttributeType>atReferences</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TCompany</ObjectClassName></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TProject</Name><Persistence>peStored</Persistence><StorageName>Projects</StorageName><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>SubProjects</Name><AttributeType>atParts</AttributeType><ExternalStorageName>Project_SubProjects</ExternalStorageName><StorageKind>skExternal</StorageKind><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TProject</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Addresses</Name><AttributeType>atParts</AttributeType><ExternalStorageName>Project_Addresses</ExternalStorageName><StorageKind>skExternal</StorageKind><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TExternalAddress</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Manager</Name><AttributeType>atReference</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TContact</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Participants</Name><AttributeType>atReferences</AttributeType><ExternalStorageName>Project_Participants</ExternalStorageName><StorageKind>skExternal</StorageKind><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TContact</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Items</Name><AttributeType>atPart</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TProjectItems</ObjectClassName></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TExternalAddress</Name><Persistence>peStored</Persistence><StorageName>ExternalAddresses</StorageName><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>30</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Category</Name><AttributeType>atReference</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TCategory</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Site_Contact</Name><AttributeType>atReference</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TPerson</ObjectClassName></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TExternalPhone</Name><Persistence>peStored</Persistence><StorageName>ExternalPhones</StorageName><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Name</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>20</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Number</Name><AttributeType>atString</AttributeType><EditMask>(000) 000-0000;0;_</EditMask><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>20</Size></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TProjectBox</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Project</Name><AttributeType>atPart</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TProject</ObjectClassName></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>RelatedProjectBoxes</Name><AttributeType>atReferences</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TProjectBox</ObjectClassName></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TProjectItem</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Description</Name><AttributeType>atString</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><Size>50</Size></TInstantAttributeMetadata><TInstantAttributeMetadata><Name>Country</Name><AttributeType>atReference</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TCountry</ObjectClassName></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata><TInstantClassMetadata><Name>TProjectItems</Name><Persistence>peStored</Persistence><AttributeMetadatas><TInstantAttributeMetadatas><TInstantAttributeMetadata><Name>Items</Name><AttributeType>atParts</AttributeType><IsIndexed>FALSE</IsIndexed><IsRequired>FALSE</IsRequired><ObjectClassName>TProjectItem</ObjectClassName></TInstantAttributeMetadata></TInstantAttributeMetadatas></AttributeMetadatas></TInstantClassMetadata></TInstantClassMetadatas> \ No newline at end of file +<TInstantClassMetadatas> + <TInstantClassMetadata> + <Name>TAddress</Name> + <Persistence>peEmbedded</Persistence> + <AttributeMetadatas> + <TInstantAttributeMetadatas> + <TInstantAttributeMetadata> + <Name>City</Name> + <AttributeType>atString</AttributeType> + <IsIndexed>TRUE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <Size>30</Size> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Country</Name> + <AttributeType>atReference</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <ObjectClassName>TCountry</ObjectClassName> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>State</Name> + <AttributeType>atString</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <Size>4</Size> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Street</Name> + <AttributeType>atMemo</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + </TInstantAttributeMetadata> + <TInstantAttributeMetadata> + <Name>Zip</Name> + <AttributeType>atString</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <Size>10</Size> + </TInstantAttributeMetadata> + </TInstantAttributeMetadatas> + </AttributeMetadatas> + </TInstantClassMetadata> + <TInstantClassMetadata> + <Name>TCountry</Name> + <Persistence>peStored</Persistence> + <AttributeMetadatas> + <TInstantAttributeMetadatas> + <TInstantAttributeMetadata> + <Name>Name</Name> + <AttributeType>atString</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <Size>30</Size> + </TInstantAttributeMetadata> + </TInstantAttributeMetadatas> + </AttributeMetadatas> + </TInstantClassMetadata> + <TInstantClassMetadata> + <Name>TPhone</Name> + <Persistence>peEmbedded</Persistence> + <AttributeMetadatas> + <TInstantAttributeMeta... [truncated message content] |
From: <na...@us...> - 2009-08-16 17:00:02
|
Revision: 830 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=830&view=rev Author: nandod Date: 2009-08-16 16:59:53 +0000 (Sun, 16 Aug 2009) Log Message: ----------- + New validation framework; initial implementation substitutes TInstantAttributeMatadata.ValidChars; can be extended. Tests added. - Removed unused TChars support in filers. Limited use of TChars (ANSI-only) to where strictly necessary. * Fixed: writing to a blob did not always correctly set IsChanged (historical error, probably). * Fixed: ValidChars was not always correctly applied in blob fields (historical error, probably), * Removed a few warnings on D2007/D2009. Modified Paths: -------------- trunk/Source/Brokers/ADO/InstantADOTools.pas trunk/Source/Brokers/ADS/InstantADS.pas trunk/Source/Core/D2007/IOCore.dpk trunk/Source/Core/D2007/IOCore.dproj trunk/Source/Core/D2009/IOCore.dpk trunk/Source/Core/D2009/IOCore.dproj trunk/Source/Core/D2009/IOCore.res trunk/Source/Core/InstantClasses.pas trunk/Source/Core/InstantCode.pas trunk/Source/Core/InstantConsts.pas trunk/Source/Core/InstantMetadata.pas trunk/Source/Core/InstantPersistence.pas trunk/Source/Core/InstantPresentation.pas trunk/Source/Core/InstantUtils.pas trunk/Source/Design/InstantModelExpert.pas trunk/Source/Design/InstantModelImport.pas trunk/Tests/TestIO.dproj trunk/Tests/TestIO_D2009.mdr trunk/Tests/TestIO_D2009.mdrt trunk/Tests/TestIO_D2009.mdx trunk/Tests/TestIO_D2009.mdxt trunk/Tests/TestInstantAttributeMetadata.pas trunk/Tests/TestInstantBlob.pas trunk/Tests/TestInstantParts.pas trunk/Tests/TestInstantReferences.pas trunk/Tests/TestModel.pas trunk/Tests/ubmock/src/fpcunit.pas Added Paths: ----------- trunk/Source/Core/InstantStandardValidators.pas trunk/Source/Core/InstantValidation.pas Property Changed: ---------------- trunk/Source/Brokers/ADO/ trunk/Source/Brokers/ADS/ trunk/Source/Core/D2009/ trunk/Tests/ubmock/src/ Property changes on: trunk/Source/Brokers/ADO ___________________________________________________________________ Modified: svn:ignore - *.dcu *.~pas *.~dfm + *.dcu *.~pas *.~dfm __history Modified: trunk/Source/Brokers/ADO/InstantADOTools.pas =================================================================== --- trunk/Source/Brokers/ADO/InstantADOTools.pas 2009-08-16 06:01:49 UTC (rev 829) +++ trunk/Source/Brokers/ADO/InstantADOTools.pas 2009-08-16 16:59:53 UTC (rev 830) @@ -32,7 +32,7 @@ interface uses - ADODB, InstantADOJRO, SysUtils; + ADODB, InstantADOJRO; type TInstantADOSyncType = (stSend, stReceive, stSendReceive); @@ -51,6 +51,9 @@ implementation +uses + Windows, SysUtils; + const SMSJetProvider = 'Microsoft.Jet.OLEDB.4.0'; Property changes on: trunk/Source/Brokers/ADS ___________________________________________________________________ Added: svn:ignore + __history Modified: trunk/Source/Brokers/ADS/InstantADS.pas =================================================================== --- trunk/Source/Brokers/ADS/InstantADS.pas 2009-08-16 06:01:49 UTC (rev 829) +++ trunk/Source/Brokers/ADS/InstantADS.pas 2009-08-16 16:59:53 UTC (rev 830) @@ -178,13 +178,13 @@ function TInstantADSConnectionDef.GetDatabaseName: string; const - ValidChars = ['a'..'z', 'A'..'Z', '0'..'9', '_']; + LValidChars = ['a'..'z', 'A'..'Z', '0'..'9', '_']; var I: Integer; begin Result := Name; for I := 1 to Length(Result) do - if not (Result[I] in ValidChars) then + if not (Result[I] in LValidChars) then Result[I] := '_'; end; Modified: trunk/Source/Core/D2007/IOCore.dpk =================================================================== --- trunk/Source/Core/D2007/IOCore.dpk 2009-08-16 06:01:49 UTC (rev 829) +++ trunk/Source/Core/D2007/IOCore.dpk 2009-08-16 16:59:53 UTC (rev 830) @@ -56,6 +56,8 @@ InstantDBBuilderFormUnit in '..\InstantDBBuilderFormUnit.pas' {InstantDBBuilderForm}, InstantTypes in '..\InstantTypes.pas', InstantBrokers in '..\InstantBrokers.pas', - InstantMetadata in '..\InstantMetadata.pas'; + InstantMetadata in '..\InstantMetadata.pas', + InstantStandardValidators in '..\InstantStandardValidators.pas', + InstantValidation in '..\InstantValidation.pas'; end. Modified: trunk/Source/Core/D2007/IOCore.dproj =================================================================== --- trunk/Source/Core/D2007/IOCore.dproj 2009-08-16 06:01:49 UTC (rev 829) +++ trunk/Source/Core/D2007/IOCore.dproj 2009-08-16 16:59:53 UTC (rev 830) @@ -6,7 +6,7 @@ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> - <DCC_DependencyCheckOutputName>..\..\..\..\..\..\..\Documents\RAD Studio\5.0\Bpl\IOCore_D11.bpl</DCC_DependencyCheckOutputName> + <DCC_DependencyCheckOutputName>C:\Users\nandod\Documents\RAD Studio\5.0\Bpl\IOCore_D11.bpl</DCC_DependencyCheckOutputName> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <Version>7.0</Version> @@ -24,17 +24,16 @@ <Borland.Personality>Delphi.Personality</Borland.Personality> <Borland.ProjectType>Package</Borland.ProjectType> <BorlandProject> -<BorlandProject><Delphi.Personality><Compiler><Compiler Name="UsePackages">False</Compiler><Compiler Name="Packages"></Compiler></Compiler><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="PackageDescription">InstantObjects Run-Time Package (Delphi 2007)</Package_Options><Package_Options Name="ImplicitBuild">False</Package_Options><Package_Options Name="DesigntimeOnly">False</Package_Options><Package_Options Name="RuntimeOnly">True</Package_Options><Package_Options Name="LibSuffix">_D11</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">2</VersionInfo><VersionInfo Name="MinorVer">1</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">1040</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName">www.instantobjects.org</VersionInfoKeys><VersionInfoKeys Name="FileDescription">InstantObjects</VersionInfoKeys><VersionInfoKeys Name="FileVersion">2.1.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName">InstantObjects</VersionInfoKeys><VersionInfoKeys Name="ProductVersion">2.1.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">IOCore.dpk</Source></Source> - </Delphi.Personality></BorlandProject></BorlandProject> +<BorlandProject><Delphi.Personality><Compiler><Compiler Name="UsePackages">False</Compiler><Compiler Name="Packages"></Compiler></Compiler><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="PackageDescription">InstantObjects Run-Time Package (Delphi 2007)</Package_Options><Package_Options Name="ImplicitBuild">False</Package_Options><Package_Options Name="DesigntimeOnly">False</Package_Options><Package_Options Name="RuntimeOnly">True</Package_Options><Package_Options Name="LibSuffix">_D11</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">2</VersionInfo><VersionInfo Name="MinorVer">1</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">1040</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName">www.instantobjects.org</VersionInfoKeys><VersionInfoKeys Name="FileDescription">InstantObjects</VersionInfoKeys><VersionInfoKeys Name="FileVersion">2.1.0.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName">InstantObjects</VersionInfoKeys><VersionInfoKeys Name="ProductVersion">2.1.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">IOCore.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject> </ProjectExtensions> <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" /> <ItemGroup> <DelphiCompile Include="IOCore.dpk"> <MainSource>MainSource</MainSource> </DelphiCompile> - <DCCReference Include="..\..\PackageGroups\D2007\rtl.dcp" /> - <DCCReference Include="..\..\PackageGroups\D2007\vcl.dcp" /> - <DCCReference Include="..\..\PackageGroups\D2007\vcldb.dcp" /> + <DCCReference Include="..\..\..\Tests\rtl.dcp" /> + <DCCReference Include="..\..\..\Tests\vcl.dcp" /> + <DCCReference Include="..\..\..\Tests\vcldb.dcp" /> <DCCReference Include="..\InstantAccessors.pas" /> <DCCReference Include="..\InstantBrokers.pas" /> <DCCReference Include="..\InstantClasses.pas" /> @@ -64,8 +63,10 @@ <DCCReference Include="..\InstantPresentation.pas" /> <DCCReference Include="..\InstantPump.pas" /> <DCCReference Include="..\InstantRtti.pas" /> + <DCCReference Include="..\InstantStandardValidators.pas" /> <DCCReference Include="..\InstantTextFiler.pas" /> <DCCReference Include="..\InstantTypes.pas" /> <DCCReference Include="..\InstantUtils.pas" /> + <DCCReference Include="..\InstantValidation.pas" /> </ItemGroup> </Project> \ No newline at end of file Property changes on: trunk/Source/Core/D2009 ___________________________________________________________________ Modified: svn:ignore - *.dcu *.local *.identcache + *.dcu *.local *.identcache __history Modified: trunk/Source/Core/D2009/IOCore.dpk =================================================================== --- trunk/Source/Core/D2009/IOCore.dpk 2009-08-16 06:01:49 UTC (rev 829) +++ trunk/Source/Core/D2009/IOCore.dpk 2009-08-16 16:59:53 UTC (rev 830) @@ -56,6 +56,8 @@ InstantDBBuilderFormUnit in '..\InstantDBBuilderFormUnit.pas' {InstantDBBuilderForm}, InstantTypes in '..\InstantTypes.pas', InstantBrokers in '..\InstantBrokers.pas', - InstantMetadata in '..\InstantMetadata.pas'; + InstantMetadata in '..\InstantMetadata.pas', + InstantStandardValidators in '..\InstantStandardValidators.pas', + InstantValidation in '..\InstantValidation.pas'; end. Modified: trunk/Source/Core/D2009/IOCore.dproj =================================================================== --- trunk/Source/Core/D2009/IOCore.dproj 2009-08-16 06:01:49 UTC (rev 829) +++ trunk/Source/Core/D2009/IOCore.dproj 2009-08-16 16:59:53 UTC (rev 830) @@ -86,6 +86,8 @@ <DCCReference Include="..\InstantTypes.pas"/> <DCCReference Include="..\InstantBrokers.pas"/> <DCCReference Include="..\InstantMetadata.pas"/> + <DCCReference Include="..\InstantStandardValidators.pas"/> + <DCCReference Include="..\InstantValidation.pas"/> <BuildConfiguration Include="Base"> <Key>Base</Key> </BuildConfiguration> Modified: trunk/Source/Core/D2009/IOCore.res =================================================================== (Binary files differ) Modified: trunk/Source/Core/InstantClasses.pas =================================================================== --- trunk/Source/Core/InstantClasses.pas 2009-08-16 06:01:49 UTC (rev 829) +++ trunk/Source/Core/InstantClasses.pas 2009-08-16 16:59:53 UTC (rev 830) @@ -50,11 +50,7 @@ InstantBufferSize = 4096; type -{$IFDEF D12+} - TChars = set of AnsiChar; // Avoid WideChar reduced to byte warning -{$ELSE} - TChars = set of Char; -{$ENDIF} + TChars = set of AnsiChar; {$IFDEF LINUX} TDate = type TDateTime; @@ -179,7 +175,6 @@ public constructor Create(Stream: TStream; BufSize: Integer = InstantBufferSize); procedure ReadBinary(ReadData: TStreamProc); - function ReadCharSet: TChars; function ReadObject(AObject: TPersistent = nil; Arg: Pointer = nil): TPersistent; virtual; procedure ReadProperties(AObject: TPersistent); @@ -195,7 +190,6 @@ public constructor Create(Stream: TStream; BufSize: Integer = InstantBufferSize); procedure WriteBinary(WriteData: TStreamProc); - procedure WriteCharSet(CharSet: TChars); procedure WriteObject(AObject: TPersistent); virtual; procedure WriteProperties(AObject: TPersistent); {$IFNDEF UNICODE} @@ -976,11 +970,6 @@ end; end; -function TInstantReader.ReadCharSet: TChars; -begin - Result := InstantStrToCharSet(ReadStr); -end; - function TInstantReader.ReadObject(AObject: TPersistent; Arg: Pointer): TPersistent; @@ -1068,11 +1057,6 @@ inherited WriteBinary(WriteData); end; -procedure TInstantWriter.WriteCharSet(CharSet: TChars); -begin - WriteStr(InstantCharSetToStr(CharSet)); -end; - procedure TInstantWriter.WriteObject(AObject: TPersistent); begin WriteUTF8Str(AObject.ClassName); Modified: trunk/Source/Core/InstantCode.pas =================================================================== --- trunk/Source/Core/InstantCode.pas 2009-08-16 06:01:49 UTC (rev 829) +++ trunk/Source/Core/InstantCode.pas 2009-08-16 16:59:53 UTC (rev 830) @@ -871,12 +871,12 @@ function GetSubClass(Index: Integer): TInstantCodeClass; function GetSubClassCount: Integer; function GetSubClassList: TList; - function GetUnitName: string; + function GetPascalUnitName: string; procedure SetBaseClass(const Value: TInstantCodeClass); procedure SetBaseClassName(const Value: string); procedure SetPersistence(const Value: TInstantPersistence); procedure SetStorageName(const Value: string); - procedure SetUnitName(const Value: string); + procedure SetPascalUnitName(const Value: string); procedure RemoveDivision(Division: TInstantCodeDivision); procedure SetSubClass(Index: Integer; const Value: TInstantCodeClass); protected @@ -959,7 +959,7 @@ property BaseClassName: string read GetBaseClassName write SetBaseClassName; property Persistence: TInstantPersistence read GetPersistence write SetPersistence; property StorageName: string read GetStorageName write SetStorageName; - property UnitName: string read GetUnitName write SetUnitName; + property PascalUnitName: string read GetPascalUnitName write SetPascalUnitName; end; TInstantCodeClassList = class(TList) @@ -1258,7 +1258,7 @@ function GetProgramSection: TInstantCodeProgramSection; function GetTypeCount: Integer; function GetTypes(Index: Integer): TInstantCodeType; - function GetUnitName: string; + function GetPascalUnitName: string; procedure SetModuleTypeName(const Value: string); protected function GetModule: TInstantCodeModule; override; @@ -1291,7 +1291,7 @@ property TypeCount: Integer read GetTypeCount; property Types[Index: Integer]: TInstantCodeType read GetTypes; published - property UnitName: string read GetUnitName; + property PascalUnitName: string read GetPascalUnitName; end; TInstantCodeProject = class(TInstantCodeObject) @@ -5251,9 +5251,9 @@ Result := FSubClassList; end; -function TInstantCodeClass.GetUnitName: string; +function TInstantCodeClass.GetPascalUnitName: string; begin - Result := Module.UnitName; + Result := Module.PascalUnitName; end; class function TInstantCodeClass.Identifier: string; @@ -5439,7 +5439,7 @@ SubClassList[Index] := Value; end; -procedure TInstantCodeClass.SetUnitName(const Value: string); +procedure TInstantCodeClass.SetPascalUnitName(const Value: string); var NewModule: TInstantCodeModule; begin @@ -6986,7 +6986,7 @@ Result := TInstantCodeType(FTypes[Index]); end; -function TInstantCodeModule.GetUnitName: string; +function TInstantCodeModule.GetPascalUnitName: string; begin Result := ChangeFileExt(ExtractFileName(Name), ''); end; @@ -7006,7 +7006,7 @@ procedure TInstantCodeModule.InternalWrite(Writer: TInstantCodeWriter); begin - Writer.WriteLnFmt('%s %s;', [ModuleTypeName, UnitName]); + Writer.WriteLnFmt('%s %s;', [ModuleTypeName, PascalUnitName]); Writer.WriteLn; InterfaceSection.Write(Writer); ImplementationSection.Write(Writer); Modified: trunk/Source/Core/InstantConsts.pas =================================================================== --- trunk/Source/Core/InstantConsts.pas 2009-08-16 06:01:49 UTC (rev 829) +++ trunk/Source/Core/InstantConsts.pas 2009-08-16 16:59:53 UTC (rev 830) @@ -132,7 +132,7 @@ SInitializationFailed = 'Initialization failed for object of class %s: "%s"'; SInvalidArgument = 'Invalid argument for object of class %s. Expected argument of class %s'; SInvalidAttributeValue = 'Invalid value "%s" for attribute %s(''%s'')'; - SInvalidChar = 'Invalid character ''%s'' (#%d) for attribute %s(''%s'')'; + SInvalidChar = 'Invalid character ''%s'' (#%d). Valid characters are ''%s'''; SInvalidClass = 'Invalid class %s. Expected %s'; SInvalidConnector = 'Invalid connector for object %s(''%s'') in attribute %s(''%s'')'; SInvalidDataType = 'Invalid data type'; Modified: trunk/Source/Core/InstantMetadata.pas =================================================================== --- trunk/Source/Core/InstantMetadata.pas 2009-08-16 06:01:49 UTC (rev 829) +++ trunk/Source/Core/InstantMetadata.pas 2009-08-16 16:59:53 UTC (rev 830) @@ -40,7 +40,8 @@ interface -uses Classes, Contnrs, Db, InstantClasses, InstantTypes, InstantConsts; +uses + Classes, Contnrs, Db, InstantClasses, InstantTypes, InstantConsts; type TInstantAttributeMap = class; @@ -430,6 +431,33 @@ write SetItems; default; end; + TInstantValidator = class + private + FMetadata: TInstantAttributeMetadata; + public + // A reference to the metadata. Should be set by CreateValidator on + // the created instance. + property Metadata: TInstantAttributeMetadata read FMetadata write FMetadata; + // Creates and returns a validator instance suitable for the specified + // metadata, or nil if the class doesn't apply to the metadata. + { TODO : extend this to support class-level validation? } + class function CreateValidator(const AMetadata: TInstantAttributeMetadata): + TInstantValidator; virtual; + // Should check the value against the validation settings + // that are specific for each derived class, and return + // True if the value is valid for the attribute. + // Otherwise, this method should return False and set an appropriate + // error message in AValidationErrorText. + // When this method is called, AAttribute is guaranteed to be assigned. + function IsValid(const AAttribute: TInstantAbstractAttribute; + const AValue: string; out AValidationErrorText: string): Boolean; virtual; abstract; + // Raises an exception if the proposed value is not valid for + // the attribute. + procedure Validate(const AAttribute: TInstantAbstractAttribute; const AValue: string); + end; + + TInstantValidatorClass = class of TInstantValidator; + TInstantAttributeMetadata = class(TInstantMetadata) private FAttributeType: TInstantAttributeType; @@ -442,9 +470,10 @@ FObjectClassName: string; FSize: Integer; FStorageName: string; - FValidChars: TChars; + FValidCharsString: string; FStorageKind: TInstantStorageKind; FExternalStorageName: string; + FValidator: TInstantValidator; function GetAttributeClass: TInstantAbstractAttributeClass; function GetAttributeClassName: string; function GetAttributeTypeName: string; @@ -458,7 +487,6 @@ function GetObjectClass: TInstantAbstractObjectClass; function GetObjectClassMetadata: TInstantClassMetadata; function GetTableName: string; - function GetValidChars: TChars; function GetValidCharsString: string; procedure SetAttributeClass(const AClass: TInstantAbstractAttributeClass); procedure SetAttributeClassName(const Value: string); @@ -466,15 +494,22 @@ procedure SetCollection(Value: TInstantAttributeMetadatas); procedure SetFieldName(const Value: string); procedure SetIsDefault(const Value: Boolean); - procedure SetValidCharsString(const Value: string); + procedure SetValidCharsString(const AValue: string); + function GetValidator: TInstantValidator; + // Should be called whenever a validation-related property, + // such as ValidCharsString, changes. + procedure FreeValidator; + protected + property Validator: TInstantValidator read GetValidator; public - function CreateAttribute(AObject: TInstantAbstractObject): - TInstantAbstractAttribute; + function CreateAttribute( + AObject: TInstantAbstractObject): TInstantAbstractAttribute; procedure Assign(Source: TPersistent); override; procedure CheckAttributeClass(AClass: TInstantAbstractAttributeClass); procedure CheckCategory(ACategory: TInstantAttributeCategory); procedure CheckIsIndexed; function IsAttributeClass(AClass: TInstantAbstractAttributeClass): Boolean; + destructor Destroy; override; property AttributeClass: TInstantAbstractAttributeClass read GetAttributeClass write SetAttributeClass; property AttributeClassName: string read GetAttributeClassName @@ -490,7 +525,8 @@ property FieldName: string read GetFieldName write SetFieldName; property HasValidChars: Boolean read GetHasValidChars; property TableName: string read GetTableName; - property ValidChars: TChars read GetValidChars write FValidChars; + procedure ValidateAttribute(const AAttribute: TInstantAbstractAttribute; + const AValue: string); published property AttributeType: TInstantAttributeType read FAttributeType write FAttributeType default atUnknown; @@ -535,7 +571,9 @@ implementation -uses SysUtils, TypInfo, InstantPersistence, InstantUtils; +uses + SysUtils, TypInfo, InstantPersistence, InstantUtils, InstantValidation, + InstantStandardValidators {registers the standard validators - do not remove}; const AttributeClasses: array[TInstantAttributeType] of TInstantAttributeClass = ( @@ -1655,7 +1693,7 @@ Self.FStorageName := FStorageName; Self.FStorageKind := FStorageKind; Self.FExternalStorageName := FExternalStorageName; - Self.FValidChars := FValidChars; + Self.FValidCharsString := FValidCharsString; end; end; @@ -1700,6 +1738,17 @@ Result := AClass.Create(TInstantObject(AObject), Self); end; +destructor TInstantAttributeMetadata.Destroy; +begin + FreeAndNil(FValidator); + inherited; +end; + +procedure TInstantAttributeMetadata.FreeValidator; +begin + FreeAndNil(FValidator); +end; + function TInstantAttributeMetadata.GetAttributeClass: TInstantAbstractAttributeClass; begin @@ -1766,7 +1815,7 @@ function TInstantAttributeMetadata.GetHasValidChars: Boolean; begin - Result := FValidChars <> []; + Result := FValidCharsString <> ''; end; function TInstantAttributeMetadata.GetIsDefault: Boolean; @@ -1798,14 +1847,16 @@ Result := ''; end; -function TInstantAttributeMetadata.GetValidChars: TChars; +function TInstantAttributeMetadata.GetValidator: TInstantValidator; begin - Result := FValidChars; + if not Assigned(FValidator) then + FValidator := InstantValidatorFactory.CreateValidator(Self); + Result := FValidator; end; function TInstantAttributeMetadata.GetValidCharsString: string; begin - Result := InstantCharSetToStr(FValidChars); + Result := FValidCharsString; end; function TInstantAttributeMetadata.IsAttributeClass(AClass: @@ -1883,11 +1934,21 @@ end; end; -procedure TInstantAttributeMetadata.SetValidCharsString(const Value: string); +procedure TInstantAttributeMetadata.SetValidCharsString(const AValue: string); begin - FValidChars := InstantStrToCharSet(Value); + if AValue <> FValidCharsString then + begin + FreeValidator; + FValidCharsString := AValue; + end; end; +procedure TInstantAttributeMetadata.ValidateAttribute( + const AAttribute: TInstantAbstractAttribute; const AValue: string); +begin + Validator.Validate(AAttribute, AValue); +end; + constructor TInstantAttributeMetadatas.Create(AOwner: TInstantClassMetadata); begin inherited Create(AOwner, TInstantAttributeMetadata); @@ -1942,5 +2003,23 @@ inherited Items[Index] := Value; end; +{ TInstantValidator } + +class function TInstantValidator.CreateValidator( + const AMetadata: TInstantAttributeMetadata): TInstantValidator; +begin + Result := Create; + Result.Metadata := AMetadata; +end; + +procedure TInstantValidator.Validate( + const AAttribute: TInstantAbstractAttribute; const AValue: string); +var + LValidationErrorText: string; +begin + if not IsValid(AAttribute, AValue, LValidationErrorText) then + raise EInstantValidationError.Create(LValidationErrorText); +end; + end. Modified: trunk/Source/Core/InstantPersistence.pas =================================================================== --- trunk/Source/Core/InstantPersistence.pas 2009-08-16 06:01:49 UTC (rev 829) +++ trunk/Source/Core/InstantPersistence.pas 2009-08-16 16:59:53 UTC (rev 830) @@ -196,8 +196,8 @@ procedure SetAsVariant(AValue: Variant); virtual; procedure SetIsChanged(Value: Boolean); procedure SetOwner(AOwner: TInstantObject); virtual; - procedure StringValidationError(InvalidChar: Char); procedure WriteName(Writer: TInstantWriter); + procedure Validate(const AValue: string); virtual; public constructor Create(AOwner: TInstantAbstractObject = nil; AMetadata: TInstantCollectionItem = nil); override; @@ -1613,23 +1613,6 @@ ObjectNotifiers: TInstantObjectNotifiers; DefaultConnector: TInstantConnector; -{ Local Routines } - -function ValidateChars(Buffer: PChar; BufferLength: Integer; - ValidChars: TChars; var InvalidChar: Char): Boolean; -var - I: Integer; -begin - Result := True; - for I := 0 to Pred(BufferLength div SizeOf(Char)) do - if (ValidChars <> []) and not (InstantCharInSet(Buffer[I], ValidChars + [#8, #10, #13])) then - begin - Result := False; - InvalidChar := Buffer[I]; - Break; - end; -end; - { Global routines } procedure AssignInstantStreamFormat(Strings: TStrings); @@ -2537,15 +2520,15 @@ AsVariant := AValue; end; -procedure TInstantAttribute.StringValidationError(InvalidChar: Char); +procedure TInstantAttribute.Unchanged; begin - raise EInstantValidationError.CreateFmt(SInvalidChar, - [InvalidChar, Ord(InvalidChar), ClassName, Name]); + IsChanged := False; end; -procedure TInstantAttribute.Unchanged; +procedure TInstantAttribute.Validate(const AValue: string); begin - IsChanged := False; + if Assigned(Metadata) then + Metadata.ValidateAttribute(Self, AValue); end; procedure TInstantAttribute.WriteName(Writer: TInstantWriter); @@ -3257,12 +3240,8 @@ end; procedure TInstantString.SetValue(const AValue: string); -var - InvalidChar: Char; begin - if Assigned(Metadata) and not ValidateChars(PChar(AValue), Length(AValue), - Metadata.ValidChars, InvalidChar) then - StringValidationError(InvalidChar); + Validate(AValue); if AValue <> FValue then begin FValue:= AValue; @@ -3590,16 +3569,18 @@ function TInstantBlob.Write(const Buffer; Position, Count: Integer): Integer; var - C: Char; + LValue: AnsiString; + LBufferPointer: {$IFDEF D12+}PByte{$ELSE}PChar{$ENDIF}; function CompareBuffers: Boolean; var I: Integer; + B: {$IFDEF D12+}Byte{$ELSE}Char{$ENDIF}; begin Stream.Position := Position; - for I := 0 to Pred(Count) do + for I := Position to Pred(Position + Count) do begin - Result := (Stream.Read(C, 1) = 1) and (C = PChar(@Buffer)[I]); + Result := (Stream.Read(B, 1) = 1) and (B = {$IFDEF D12+}PByte{$ELSE}PChar{$ENDIF}(@Buffer)[I]); if not Result then Exit; end; @@ -3607,13 +3588,17 @@ end; begin - if not ValidateChars(PChar(@Buffer), Count, Metadata.ValidChars, C) then - StringValidationError(C); + SetLength(LValue, Count); + LBufferPointer := @Buffer; + Inc(LBufferPointer, Position); + StrLCopy(PAnsiChar(LValue), PAnsiChar(LBufferPointer), Count); + Validate(string(LValue)); if not CompareBuffers then begin Stream.Position := Position; Result := Stream.Write(Buffer, Count); - end else + end + else Result := 0; end; Modified: trunk/Source/Core/InstantPresentation.pas =================================================================== --- trunk/Source/Core/InstantPresentation.pas 2009-08-16 06:01:49 UTC (rev 829) +++ trunk/Source/Core/InstantPresentation.pas 2009-08-16 16:59:53 UTC (rev 830) @@ -3654,6 +3654,32 @@ Field: TField); var Metadata: TInstantAttributeMetadata; + + function InstantStrToCharSet(const Str: AnsiString): TFieldChars; + const + Dots: array[0..1] of Char = '..'; + var + I, J: Integer; + begin + Result := []; + I := 1; + while I <= Length(Str) do + begin + if CompareMem(@Str[I], @Dots, Length(Dots)) and + (I > 1) and (Length(Str) > I + 1) then + begin + for J := Ord(Str[I - 1]) to Ord(Str[I + 2]) do + Result := Result + [Chr(J)]; + Inc(I, Length(Dots)); + end + else + begin + Include(Result, Str[I]); + Inc(I); + end; + end; + end; + begin if AObject is TInstantObject then begin @@ -3663,8 +3689,8 @@ begin if Field.EditMask <> Metadata.EditMask then Field.EditMask := Metadata.EditMask; - if Metadata.ValidChars <> [] then - Field.ValidChars := Metadata.ValidChars; + if Metadata.ValidCharsString <> '' then + Field.ValidChars := InstantStrToCharSet(AnsiString(Metadata.ValidCharsString)); end; end; end; @@ -3712,7 +3738,7 @@ FillChar(Buffer^, Field.DataSize, 0); if not Empty then begin - S := Value; + S := AnsiString(Value); Len := Length(S); if Len >= Field.DataSize then Len := Pred(Field.DataSize); Added: trunk/Source/Core/InstantStandardValidators.pas =================================================================== --- trunk/Source/Core/InstantStandardValidators.pas (rev 0) +++ trunk/Source/Core/InstantStandardValidators.pas 2009-08-16 16:59:53 UTC (rev 830) @@ -0,0 +1,282 @@ +(* + * InstantObjects + * Validation framework - standard validators. + *) + +(* ***** 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): + * Nando Dessena + * + * ***** END LICENSE BLOCK ***** *) + +unit InstantStandardValidators; + +{$IFDEF LINUX} +{$I '../InstantDefines.inc'} +{$ELSE} +{$I '..\InstantDefines.inc'} +{$ENDIF} + +interface + +uses + Contnrs, InstantClasses, InstantMetadata, InstantValidation; + +type + // Base class for classes that handle the pieces of a ValidCharsString string. + TInstantCharSetPieceValidator = class + protected + function GetValidCharsAsString: string; virtual; + public + function IsValidChar(const AChar: Char): Boolean; virtual; abstract; + property ValidCharsAsString: string read GetValidCharsAsString; + end; + + // Validates a character against a set of distinct characters stored in a string. + TInstantCharsPieceValidator = class(TInstantCharSetPieceValidator) + private + FValidChars: string; + protected + function GetValidCharsAsString: string; override; + public + procedure AfterConstruction; override; + procedure AddChar(const AChar: Char); + procedure RemoveLastChar; + function IsValidChar(const AChar: Char): Boolean; override; + end; + + // Validates a character against a range of characters. + TInstantCharRangePieceValidator = class(TInstantCharSetPieceValidator) + private + FValidFrom: Char; + FValidTo: Char; + protected + function GetValidCharsAsString: string; override; + public + procedure SetValidChars(const AValidFrom, AValidTo: Char); + function IsValidChar(const AChar: Char): Boolean; override; + end; + + // Splits a ValidCharsString string into pieces that hands each to a + // different internal instance of TInstantCharSetPieceValidator. + TInstantCharSetValidator = class(TInstantValidator) + private + FPieces: TObjectList; + procedure CreatePieceValidators(const AValidChars: string); + function IsValidChar(const AChar: Char; + out AValidationErrorText: string): Boolean; + public + procedure AfterConstruction; override; + destructor Destroy; override; + class function CreateValidator( + const AMetadata: TInstantAttributeMetadata): TInstantValidator; override; + function IsValid(const AAttribute: TInstantAbstractAttribute; + const AValue: string; out AValidationErrorText: string): Boolean; + override; + end; + +implementation + +uses + SysUtils, InstantConsts; + +{ TInstantCharSetValidator } + +procedure TInstantCharSetValidator.AfterConstruction; +begin + inherited; + FPieces := TObjectList.Create; +end; + +procedure TInstantCharSetValidator.CreatePieceValidators( + const AValidChars: string); +var + I: Integer; + LCharsValidator: TInstantCharsPieceValidator; + LCharRangeValidator: TInstantCharRangePieceValidator; + LChar: Char; +begin + LCharsValidator := TInstantCharsPieceValidator.Create; + FPieces.Add(LCharsValidator); + I := 1; + while I <= Length(AValidChars) do + begin + LChar := AValidChars[I]; + // a..b means a range from a to b. + if (LChar = '.') and (I > 1) and (I < Length(AValidChars) - 1) and (AValidChars[Succ(I)] = '.') then + begin + LCharRangeValidator := TInstantCharRangePieceValidator.Create; + FPieces.Add(LCharRangeValidator); + LCharRangeValidator.SetValidChars(AValidChars[Pred(I)], + AValidChars[I + 2]); + // no need for the chars validator to take care of the first char in + // my range. + LCharsValidator.RemoveLastChar; + // skip the second dot and the range end char. + Inc(I, 2); + end + // everything else is a simple match. + else + LCharsValidator.AddChar(LChar); + Inc(I); + end; +end; + +class function TInstantCharSetValidator.CreateValidator( + const AMetadata: TInstantAttributeMetadata): TInstantValidator; +begin + if Assigned(AMetadata) and (AMetadata.ValidCharsString <> '') then + begin + Result := Create; + try + Result.Metadata := AMetadata; + TInstantCharSetValidator(Result).CreatePieceValidators(AMetadata.ValidCharsString); + except + FreeAndNil(Result); + raise; + end; + end + else + Result := nil; +end; + +destructor TInstantCharSetValidator.Destroy; +begin + FreeAndNil(FPieces); + inherited; +end; + +function TInstantCharSetValidator.IsValid( + const AAttribute: TInstantAbstractAttribute; const AValue: string; + out AValidationErrorText: string): Boolean; +var + I: Integer; +begin + Result := True; + for I := 1 to Length(AValue) do + begin + if not IsValidChar(AValue[I], AValidationErrorText) then + begin + Result := False; + Break; + end; + end; + if not Result then + AValidationErrorText := Format(SInvalidAttributeValue, [AValue, + AAttribute.ClassName, Metadata.Name]) + sLineBreak + + AValidationErrorText; +end; + +function TInstantCharSetValidator.IsValidChar( + const AChar: Char; out AValidationErrorText: string): Boolean; +var + I: Integer; +begin + Result := False; + AValidationErrorText := ''; + for I := 0 to FPieces.Count - 1 do + begin + if TInstantCharSetPieceValidator(FPieces[I]).IsValidChar(AChar) then + begin + Result := True; + Break; + end; + end; + if not Result then + AValidationErrorText := Format(SInvalidChar, [AChar, Ord(AChar), Metadata.ValidCharsString]); +end; + +{ TInstantCharSetPieceValidator } + +function TInstantCharSetPieceValidator.GetValidCharsAsString: string; +begin + Result := ''; +end; + +{ TInstantCharsPieceValidator } + +procedure TInstantCharsPieceValidator.AddChar(const AChar: Char); +begin + if Pos(AChar, FValidChars) = 0 then + FValidChars := FValidChars + AChar; +end; + +procedure TInstantCharsPieceValidator.AfterConstruction; +begin + inherited; + // This is for backward compatibility, as IO has always allowed these + // characters in a string or memo when ValidCharsString is not empty. + // I don't think this is strictly correct, especially for string fields. + FValidChars := #8#10#13; +end; + +function TInstantCharsPieceValidator.GetValidCharsAsString: string; +begin + Result := FValidChars; +end; + +function TInstantCharsPieceValidator.IsValidChar(const AChar: Char): Boolean; +begin + Result := Pos(AChar, FValidChars) > 0; +end; + +procedure TInstantCharsPieceValidator.RemoveLastChar; +begin + if FValidChars <> '' then + Delete(FValidChars, Length(FValidChars) , 1); +end; + +{ TInstantCharRangePieceValidator } + +function TInstantCharRangePieceValidator.GetValidCharsAsString: string; +begin + Result := FValidFrom + '..' + FValidTo; +end; + +function TInstantCharRangePieceValidator.IsValidChar(const AChar: Char): Boolean; +begin + Result := (AChar >= FValidFrom) and (AChar <= FValidTo); +end; + +procedure TInstantCharRangePieceValidator.SetValidChars(const AValidFrom, + AValidTo: Char); +begin + if AValidFrom > AValidTo then + begin + FValidFrom := AValidTo; + FValidTo := AValidFrom; + end + else + begin + FValidFrom := AValidFrom; + FValidTo := AValidTo; + end; +end; + +initialization + InstantValidatorFactory.AddValidatorClass(TInstantCharSetValidator); + +finalization + InstantValidatorFactory.RemoveValidatorClass(TInstantCharSetValidator); + +end. + Property changes on: trunk/Source/Core/InstantStandardValidators.pas ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Modified: trunk/Source/Core/InstantUtils.pas =================================================================== --- trunk/Source/Core/InstantUtils.pas 2009-08-16 06:01:49 UTC (rev 829) +++ trunk/Source/Core/InstantUtils.pas 2009-08-16 16:59:53 UTC (rev 830) @@ -50,7 +50,6 @@ Major, Minor, Release, Build: Word; end; -function InstantCharSetToStr(C: TChars): string; function InstantCompareObjects(Obj1, Obj2: TObject; PropName: string; Options: TInstantCompareOptions): Integer; overload; function InstantCompareObjects(Obj1, Obj2: TObject; PropNames: TStrings; @@ -82,7 +81,6 @@ function InstantSameText(const S1, S2: string; IgnoreCase: Boolean): Boolean; function InstantStrToDate(const Str: string): TDateTime; function InstantStrToDateTime(const Str: string): TDateTime; -function InstantStrToCharSet(const Str: AnsiString): TChars; procedure InstantStrToList(const Str: string; List: TStrings; Delimiters: TChars); function InstantStrToTime(const Str: string): TDateTime; @@ -109,37 +107,6 @@ {$ENDIF} {$IFDEF D6+}Variants,{$ENDIF} InstantConsts, InstantRtti; -function InstantCharSetToStr(C: TChars): string; -var - I, J, L: Integer; - S: string; -begin - Result := ''; - for I := 0 to 255 do - if InstantCharInSet(Chr(I), C) then - S := S + Chr(I); - I := 1; - L := Length(S); - Result := ''; - while I <= L do - begin - J := 1; - Result := Result + S[I]; - while ((I + J) <= L) and (Ord(S[I]) + J = Ord(S[I + J])) do - Inc(J); - if J > 3 then - Result := Result + '..' + S[I + J - 1] - else - while J > 1 do - begin - Inc(I); - Dec(J); - Result := Result + S[I]; - end; - I := I + J; - end; -end; - function InstantCompareObjects(Obj1, Obj2: TObject; PropName: string; Options: TInstantCompareOptions): Integer; var @@ -541,31 +508,6 @@ end; end; -function InstantStrToCharSet(const Str: AnsiString): TChars; -const - Dots: array[0..1] of Char = '..'; -var - I, J: Integer; -begin - Result := []; - I := 1; - while I <= Length(Str) do - begin - if CompareMem(@Str[I], @Dots, Length(Dots)) and - (I > 1) and (Length(Str) > I + 1) then - begin - for J := Ord(Str[I - 1]) to Ord(Str[I + 2]) do - Result := Result + [Chr(J)]; - Inc(I, Length(Dots)); - end - else - begin - Include(Result, Str[I]); - Inc(I); - end; - end; -end; - procedure InstantStrToList(const Str: string; List: TStrings; Delimiters: TChars); Added: trunk/Source/Core/InstantValidation.pas =================================================================== --- trunk/Source/Core/InstantValidation.pas (rev 0) +++ trunk/Source/Core/InstantValidation.pas 2009-08-16 16:59:53 UTC (rev 830) @@ -0,0 +1,230 @@ +(* + * InstantObjects + * Validation framework + *) + +(* ***** 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): + * Nando Dessena + * + * ***** END LICENSE BLOCK ***** *) + +unit InstantValidation; + +{$IFDEF LINUX} +{$I '../InstantDefines.inc'} +{$ELSE} +{$I '..\InstantDefines.inc'} +{$ENDIF} + +interface + +uses + Contnrs, InstantClasses, InstantMetadata, InstantPersistence; + +type + TInstantValidatorListValidationMode = (vmAll, vmAny); + + // A validator that is a list of validators (composite). + // Shouldn't be registered as it's used directly by the + // factory as a wrapper for multiple validators and also as a null object, + // for when no validators apply. It is also a base class for other + // validators. + TInstantValidatorList = class(TInstantValidator) + private + FValidators: TObjectList; + FConcatMode: TInstantValidatorListValidationMode; + function AllValid(const AAttribute: TInstantAbstractAttribute; + const AValue: string; out AValidationErrorText: string): Boolean; + function AnyValid(const AAttribute: TInstantAbstractAttribute; + const AValue: string; out AValidationErrorText: string): Boolean; + public + function IsValid(const AAttribute: TInstantAbstractAttribute; + const AValue: string; out AValidationErrorText: string): Boolean; + override; + procedure AfterConstruction; override; + destructor Destroy; override; + // Adds a validator to the inner list. + procedure Add(const AValidator: TInstantValidator); + // Decides whether validators in lists should all pass for a value to be + // accepted (vmAll) or if any one of them suffices (vmAny). + property ConcatMode: TInstantValidatorListValidationMode + read FConcatMode write FConcatMode default vmAll; + end; + + // Creates validators based on metadata contents. + TInstantValidatorFactory = class + private + FClasses: TClassList; + public + procedure AfterConstruction; override; + destructor Destroy; override; + + procedure AddValidatorClass(const AValidatorClass: TInstantValidatorClass); + procedure RemoveValidatorClass(const AValidatorClass: TInstantValidatorClass); + + { TODO : Extend this for class-level validation? } + function CreateValidator(const AMetadata: TInstantAttributeMetadata): TInstantValidator; + end; + +function InstantValidatorFactory: TInstantValidatorFactory; + +implementation + +uses + SysUtils; + +var + _InstantValidatorFactory: TInstantValidatorFactory; + +function InstantValidatorFactory: TInstantValidatorFactory; +begin + if not Assigned(_InstantValidatorFactory) then + _InstantValidatorFactory := TInstantValidatorFactory.Create; + Result := _InstantValidatorFactory; +end; + +{ TInstantValidatorFactory } + +procedure TInstantValidatorFactory.AddValidatorClass( + const AValidatorClass: TInstantValidatorClass); +begin + FClasses.Add(AValidatorClass); +end; + +procedure TInstantValidatorFactory.AfterConstruction; +begin + inherited; + FClasses := TClassList.Create; +end; + +function TInstantValidatorFactory.CreateValidator( + const AMetadata: TInstantAttributeMetadata): TInstantValidator; +var + I: Integer; +begin + Result := TInstantValidatorList.Create; + try + for I := 0 to FClasses.Count - 1 do + TInstantValidatorList(Result).Add( + TInstantValidatorClass(FClasses[I]).CreateValidator(AMetadata)); + except + FreeAndNil(Result); + raise; + end; +end; + +destructor TInstantValidatorFactory.Destroy; +begin + FreeAndNil(FClasses); + inherited; +end; + +procedure TInstantValidatorFactory.RemoveValidatorClass( + const AValidatorClass: TInstantValidatorClass); +begin + FClasses.Remove(AValidatorClass); +end; + +{ TInstantValidatorList } + +procedure TInstantValidatorList.Add(const AValidator: TInstantValidator); +begin + // It is valid for this method to receive nil and don't do anything. + if Assigned(AValidator) then + FValidators.Add(AValidator); +end; + +procedure TInstantValidatorList.AfterConstruction; +begin + inherited; + FValidators := TObjectList.Create; + FConcatMode := vmAll; +end; + +destructor TInstantValidatorList.Destroy; +begin + FreeAndNil(FValidators); + inherited; +end; + +function TInstantValidatorList.IsValid( + const AAttribute: TInstantAbstractAttribute; const AValue: string; + out AValidationErrorText: string): Boolean; +begin + if FConcatMode = vmAll then + Result := AllValid(AAttribute, AValue, AValidationErrorText) + else + Result := AnyValid(AAttribute, AValue, AValidationErrorText); +end; + +function TInstantValidatorList.AllValid( + const AAttribute: TInstantAbstractAttribute; const AValue: string; + out AValidationErrorText: string): Boolean; +var + I: Integer; +begin + Result := True; + AValidationErrorText := ''; + for I := 0 to FValidators.Count - 1 do + begin + if not TInstantValidator(FValidators[I]).IsValid(AAttribute, AValue, AValidationErrorText) then + begin + Result := False; + Break; + end; + end; +end; + +function TInstantValidatorList.AnyValid( + const AAttribute: TInstantAbstractAttribute; const AValue: string; + out AValidationErrorText: string): Boolean; +var + I: Integer; + LErrorText: string; +begin + Result := False; + AValidationErrorText := ''; + for I := 0 to FValidators.Count - 1 do + begin + if TInstantValidator(FValidators[I]).IsValid(AAttribute, AValue, LErrorText) then + begin + Result := True; + Break; + end + else + begin + if AValidationErrorText = '' then + AValidationErrorText := LErrorText + else + AValidationErrorText := AValidationErrorText + sLineBreak + LErrorText; + end; + end; +end; + +initialization + +finalization + FreeAndNil(_InstantValidatorFactory); + +end. + Property changes on: trunk/Source/Core/InstantValidation.pas ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Modified: trunk/Source/Design/InstantModelExpert.pas =================================================================== --- trunk/Source/Design/InstantModelExpert.pas 2009-08-16 06:01:49 UTC (rev 829) +++ trunk/Source/Design/InstantModelExpert.pas 2009-08-16 16:59:53 UTC (rev 830) @@ -504,7 +504,7 @@ Editor: IOTASourceEditor; OldLen: Integer; begin - Module := FIDEInterface.FindModule(AClass.Module.UnitName); + Module := FIDEInterface.FindModule(AClass.Module.PascalUnitName); if not Assigned(Module) then Exit; Editor := FIDEInterface.SourceEditor(Module); Modified: trunk/Source/Design/InstantModelImport.pas =================================================================== --- trunk/Source/Design/InstantModelImport.pas 2009-08-16 06:01:49 UTC (rev 829) +++ trunk/Source/Design/InstantModelImport.pas 2009-08-16 16:59:53 UTC (rev 830) @@ -114,7 +114,7 @@ for I := 0 to FModel.ModuleCount - 1 do begin Module := FModel.Modules[I]; - ImportModuleCombo.Items.AddObject(Module.UnitName, Module) + ImportModuleCombo.Items.AddObject(Module.PascalUnitName, Module) end; end; Modified: trunk/Tests/TestIO.dproj =================================================================== --- trunk/Tests/TestIO.dproj 2009-08-16 06:01:49 UTC (rev 829) +++ trunk/Tests/TestIO.dproj 2009-08-16 16:59:53 UTC (rev 830) @@ -37,7 +37,8 @@ <Borland.Personality>Delphi.Personality</Borland.Personality> <Borland.ProjectType>VCLApplication</Borland.ProjectType> <BorlandProject> -<BorlandProject><Delphi.Personality><Compiler><Compiler Name="UsePackages">False</Compiler><Compiler 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</Compiler></Compiler><Parameters><Parameters Name="DebugSourceDirs">..\Source\Core</Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><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><Source><Source Name="MainSource">TestIO.dpr</Source></Source></Delphi.Personality></BorlandProject></BorlandProject> +<BorlandProject><Delphi.Personality><Compiler><Compiler Name="UsePackages">False</Compiler><Compiler 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</Compiler></Compiler><Parameters><Parameters Name="DebugSourceDirs">..\Source\Core</Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><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><Source><Source Name="MainSource">TestIO.dpr</Source></Source></Delphi.Personality> <ModelSupport>False</ModelSupport> +</BorlandProject></BorlandProject> </ProjectExtensions> <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" /> <ItemGroup> Modified: trunk/Tests/TestIO_D2009.mdr =================================================================== (Binary files differ) Modified: trunk/Tests/TestIO_D2009.mdrt =================================================================== (Binary files differ) Modified: trunk/Tests/TestIO_D2009.mdx =================================================================== --- trunk/Tests/TestIO_D2009.mdx 2009-08-16 06:01:49 UTC (rev 829) +++ trunk/Tests/TestIO_D2009.mdx 2009-08-16 16:59:53 UTC (rev 830) @@ -230,7 +230,7 @@ <AttributeType>atCurrency</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> - <ValidCharsString>,.09?</ValidCharsString> + <ValidCharsString>,.0..9€</ValidCharsString> </TInstantAttributeMetadata> <TInstantAttributeMetadata> <Name>Employed</Name> Modified: trunk/Tests/TestIO_D2009.mdxt =================================================================== --- trunk/Tests/TestIO_D2009.mdxt 2009-08-16 06:01:49 UTC (rev 829) +++ trunk/Tests/TestIO_D2009.mdxt 2009-08-16 16:59:53 UTC (rev 830) @@ -214,7 +214,7 @@ <AttributeType>atCurrency</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> - <ValidCharsString>,.09?</ValidCharsString> + <ValidCharsString>,.0..9€</ValidCharsString> </TInstantAttributeMetadata> <TInstantAttributeMetadata> <Name>Employed</Name> Modified: trunk/Tests/TestInstantAttributeMetadata.pas =================================================================== --- trunk/Tests/TestInstantAttributeMetadata.pas 2009-08-16 06:01:49 UTC (rev 829) +++ trunk/Tests/TestInstantAttributeMetadata.pas 2009-08-16 16:59:53 UTC (rev 830) @@ -41,6 +41,8 @@ // Extended test methods for class TTestCase TTestCaseEx = class(TTestCase) + private + FTempAttr: TInstantAttribute; public class procedure AssertException(const AMessage: string; AExceptionClass: ExceptClass; @@ -85,6 +87,7 @@ private FConn: TInstantMockConnector; FInstantAttributeMetadata: TInstantAttributeMetadata; + procedure SetInvalidValueInTempAttr; public procedure SetUp; override; procedure TearDown; override; @@ -95,6 +98,7 @@ procedure TestCheckCategory; procedure TestCheckIsIndexed; procedure TestIsAttributeClass; + procedure TestAttributeValidation; end; // Test methods for class TInstantAttributeMetadatas @@ -235,7 +239,7 @@ FInstantAttributeMetadata.StorageName := 'StorageName'; FInstantAttributeMetadata.StorageKind := skEmbedded; FInstantAttributeMetadata.ExternalStorageName := 'ExternalStorageName'; - FInstantAttributeMetadata.ValidChars := ['a'..'z']; + FInstantAttributeMetadata.ValidCharsString := 'a..y0..9\x80 '; end; procedure TestTInstantAttributeMetadata.TearDown; @@ -266,7 +270,7 @@ vSource.StorageName := 'StorageName'; vSource.StorageKind := skEmbedded; vSource.ExternalStorageName := 'ExternalStorageName'; - vSource.ValidChars := ['a'..'z']; + vSource.ValidCharsString := 'a..z'; vDest.Assign(vSource); vStr := GetEnumName(TypeInfo(TInstantAttributeType), @@ -286,7 +290,7 @@ AssertEquals('StorageKind incorrect', 'skEmbedded', vStr); AssertEquals('ExternalStorageName incorrect', 'ExternalStorageName', vDest.ExternalStorageName); - AssertTrue('ValidChars incorrect', 'i' in vDest.ValidChars); + AssertEquals('ValidChars incorrect', 'a..z', vDest.ValidCharsString); finally vSource.Free; vDest.Free; @@ -323,11 +327,14 @@ try vReturnValue := FInstantAttributeMetadata.CreateAttribute(vObject) as TInstantAttribute; - AssertNotNull('vReturnValue', vReturnValue); - AssertEquals('AsString', 'Default', vReturnValue.AsString); - AssertNotNull('Metadata ', vReturnValue.Metadata); - AssertEquals('Classname', 'TInstantString', vReturnValue.ClassName); - vReturnValue.Free; + try + AssertNotNull('vReturnValue', vReturnValue); + AssertEquals('AsString', 'Default', vReturnValue.AsString); + AssertNotNull('Metadata ', vReturnValue.Metadata); + AssertEquals('Classname', 'TInstantString', vReturnValue.ClassName); + finally + vReturnValue.Free; + end; finally vObject.Free; end; @@ -343,6 +350,32 @@ AssertTrue('IsAttributeClass error for TInstantMetadata!', vReturnValue); end; +procedure TestTInstantAttributeMetadata.TestAttributeValidation; +var + vObject: TInstantObject; +begin + vObject := TInstantObject.Create(FConn); + try + FTempAttr := FInstantAttributeMetadata.CreateAttribute(vObject) + as TInstantAttribute; + try + FTempAttr.AsString := 'only valid chars'; + AssertException(EInstantValidationError, SetInvalidValueInTempAttr); + AssertEquals('AsString', 'only valid chars', FTempAttr.AsString); + finally + FreeAndNil(FTempAttr); + end; + finally + vObject.Free; + end; +end; + +procedure TestTInstantAttributeMetadata.SetInvalidValueInTempAttr; +begin + Assert(Assigned(FTempAttr)); + FTempAttr.AsString := 'char z not allowed'; +end; + { TestTInstantAttributeMetadatas } procedure TestTInstantAttributeMetadatas.SetUp; Modified: trunk... [truncated message content] |
From: <bvs...@us...> - 2009-08-20 12:06:25
|
Revision: 856 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=856&view=rev Author: bvsimmons Date: 2009-08-20 12:06:18 +0000 (Thu, 20 Aug 2009) Log Message: ----------- Minor updates for D7 and D2007 and others D2007 - removed references to Zeos Broker from RunTime Packages D7 - Added missing path to ..\Source\Catalogs for PrimerCross to PrimerCross. - Added missing .res file for MySQL Catalog Tests - Added path to ..\Source\Brokers\XML Modified Paths: -------------- trunk/Demos/PrimerCross/PrimerExternal.dof trunk/Demos/PrimerCross/PrimerExternal.xml trunk/Source/PackageGroups/D2007/RunTimePackages.groupproj trunk/Tests/TestIO.cfg trunk/Tests/TestIO.dof Added Paths: ----------- trunk/Source/Catalogs/MySQL/D7/IOMySQLCatalog.res Modified: trunk/Demos/PrimerCross/PrimerExternal.dof =================================================================== --- trunk/Demos/PrimerCross/PrimerExternal.dof 2009-08-20 09:27:11 UTC (rev 855) +++ trunk/Demos/PrimerCross/PrimerExternal.dof 2009-08-20 12:06:18 UTC (rev 856) @@ -94,7 +94,7 @@ UnitOutputDir= PackageDLLOutputDir= PackageDCPOutputDir= -SearchPath=$(DELPHI)\Lib\Debug;..\..\Source\Core;..\..\Source\Brokers\DBX;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Brokers\UIB;..\..\Source\Brokers\ZeosDBO;..\..\Source\Catalogs\BDE;..\..\Source\Catalogs\MsSql;..\..\Source\Catalogs\IbFb;..\..\Source\Catalogs\XML +SearchPath=$(DELPHI)\Lib\Debug;..\..\Source\Core;..\..\Source\Brokers\DBX;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Brokers\UIB;..\..\Source\Brokers\ZeosDBO;..\..\Source\Catalogs\BDE;..\..\Source\Catalogs\MsSql;..\..\Source\Catalogs\IbFb;..\..\Source\Catalogs\MySQL;..\..\Source\Catalogs\XML Packages= Conditionals= DebugSourceDirs= Modified: trunk/Demos/PrimerCross/PrimerExternal.xml =================================================================== --- trunk/Demos/PrimerCross/PrimerExternal.xml 2009-08-20 09:27:11 UTC (rev 855) +++ trunk/Demos/PrimerCross/PrimerExternal.xml 2009-08-20 12:06:18 UTC (rev 856) @@ -1,2 +1,2 @@ <TInstantConnectionDefs><TInstantIBXConnectionDef><Name>FirebirdDBExternal</Name><IsBuilt>TRUE</IsBuilt><LoginPrompt>FALSE</LoginPrompt><ConnectionString>.\FirebirdDB\PRIMERDB.FDB</ConnectionString><Options>ibxUseDelimitedIdents</Options><Params>User_Name=SYSDBA -Password=masterkey</Params></TInstantIBXConnectionDef><TInstantXMLConnectionDef><Name>XMLDB</Name><IsBuilt>TRUE</IsBuilt><RootFolder>W:\Projects\instantobjects\Demos\PrimerCross\XMLDB</RootFolder></TInstantXMLConnectionDef></TInstantConnectionDefs> \ No newline at end of file +Password=masterkey</Params></TInstantIBXConnectionDef><TInstantXMLConnectionDef><Name>XMLDB</Name><IsBuilt>TRUE</IsBuilt><RootFolder>.\XMLDB\</RootFolder></TInstantXMLConnectionDef></TInstantConnectionDefs> \ No newline at end of file Added: trunk/Source/Catalogs/MySQL/D7/IOMySQLCatalog.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Catalogs/MySQL/D7/IOMySQLCatalog.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/Source/PackageGroups/D2007/RunTimePackages.groupproj =================================================================== --- trunk/Source/PackageGroups/D2007/RunTimePackages.groupproj 2009-08-20 09:27:11 UTC (rev 855) +++ trunk/Source/PackageGroups/D2007/RunTimePackages.groupproj 2009-08-20 12:06:18 UTC (rev 856) @@ -91,22 +91,13 @@ <Target Name="IOXML:Make"> <MSBuild Projects="..\..\Brokers\XML\D2007\IOXML.dproj" Targets="Make" /> </Target> - <Target Name="IOZeosDBO"> - <MSBuild Projects="..\..\Brokers\ZeosDBO\D2007\IOZeosDBO.dproj" Targets="" /> - </Target> - <Target Name="IOZeosDBO:Clean"> - <MSBuild Projects="..\..\Brokers\ZeosDBO\D2007\IOZeosDBO.dproj" Targets="Clean" /> - </Target> - <Target Name="IOZeosDBO:Make"> - <MSBuild Projects="..\..\Brokers\ZeosDBO\D2007\IOZeosDBO.dproj" Targets="Make" /> - </Target> <Target Name="Build"> - <CallTarget Targets="IOCore;IOIBFbCatalog;IOMSSqlCatalog;IOMySQLCatalog;IOADO;IOBDE;IODBX;IOIBX;IOXML;IOZeosDBO" /> + <CallTarget Targets="IOCore;IOIBFbCatalog;IOMSSqlCatalog;IOMySQLCatalog;IOADO;IOBDE;IODBX;IOIBX;IOXML" /> </Target> <Target Name="Clean"> - <CallTarget Targets="IOCore:Clean;IOIBFbCatalog:Clean;IOMSSqlCatalog:Clean;IOMySQLCatalog:Clean;IOADO:Clean;IOBDE:Clean;IODBX:Clean;IOIBX:Clean;IOXML:Clean;IOZeosDBO:Clean" /> + <CallTarget Targets="IOCore:Clean;IOIBFbCatalog:Clean;IOMSSqlCatalog:Clean;IOMySQLCatalog:Clean;IOADO:Clean;IOBDE:Clean;IODBX:Clean;IOIBX:Clean;IOXML:Clean" /> </Target> <Target Name="Make"> - <CallTarget Targets="IOCore:Make;IOIBFbCatalog:Make;IOMSSqlCatalog:Make;IOMySQLCatalog:Make;IOADO:Make;IOBDE:Make;IODBX:Make;IOIBX:Make;IOXML:Make;IOZeosDBO:Make" /> + <CallTarget Targets="IOCore:Make;IOIBFbCatalog:Make;IOMSSqlCatalog:Make;IOMySQLCatalog:Make;IOADO:Make;IOBDE:Make;IODBX:Make;IOIBX:Make;IOXML:Make" /> </Target> </Project> \ No newline at end of file Modified: trunk/Tests/TestIO.cfg =================================================================== --- trunk/Tests/TestIO.cfg 2009-08-20 09:27:11 UTC (rev 855) +++ trunk/Tests/TestIO.cfg 2009-08-20 12:06:18 UTC (rev 856) @@ -33,10 +33,10 @@ -K$00400000 -LE"c:\program files\borland\delphi7\Projects\Bpl" -LN"c:\program files\borland\delphi7\Projects\Bpl" --U"..\Source\core;.\ubmock\src" --O"..\Source\core;.\ubmock\src" --I"..\Source\core;.\ubmock\src" --R"..\Source\core;.\ubmock\src" +-U"..\Source\core;.\ubmock\src;..\Source\Brokers\XML" +-O"..\Source\core;.\ubmock\src;..\Source\Brokers\XML" +-I"..\Source\core;.\ubmock\src;..\Source\Brokers\XML" +-R"..\Source\core;.\ubmock\src;..\Source\Brokers\XML" -w-UNSAFE_TYPE -w-UNSAFE_CODE -w-UNSAFE_CAST Modified: trunk/Tests/TestIO.dof =================================================================== --- trunk/Tests/TestIO.dof 2009-08-20 09:27:11 UTC (rev 855) +++ trunk/Tests/TestIO.dof 2009-08-20 12:06:18 UTC (rev 856) @@ -94,7 +94,7 @@ UnitOutputDir= PackageDLLOutputDir= PackageDCPOutputDir= -SearchPath=..\Source\core;.\ubmock\src +SearchPath=..\Source\core;.\ubmock\src;..\Source\Brokers\XML 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 |
From: <na...@us...> - 2009-08-25 15:04:37
|
Revision: 859 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=859&view=rev Author: nandod Date: 2009-08-25 15:04:20 +0000 (Tue, 25 Aug 2009) Log Message: ----------- * Fixed: writing a class name with wrong capitalization in an IQL query would prevent objects from being retrieved on case-sensitive databases. The fix also does the class existence check earlier than before. A test was added to TestIO. Modified Paths: -------------- trunk/Source/Core/InstantCommand.pas trunk/Tests/TestMockBroker.pas Modified: trunk/Source/Core/InstantCommand.pas =================================================================== --- trunk/Source/Core/InstantCommand.pas 2009-08-25 14:35:18 UTC (rev 858) +++ trunk/Source/Core/InstantCommand.pas 2009-08-25 15:04:20 UTC (rev 859) @@ -1505,7 +1505,11 @@ FAny := SameText(Token, 'ANY'); if FAny then Token := Reader.ReadToken; - FObjectClassName := Token; + // This call has the double effect of checking that the class exists early + // during statement parsing, and correcting the class name if it's written + // with wrong capitalization (something that would create problems with + // case-sensitive databases). + FObjectClassName := FindClass(Token).ClassName; end; procedure TInstantIQLClassRef.WriteObject(Writer: TInstantIQLWriter); Modified: trunk/Tests/TestMockBroker.pas =================================================================== --- trunk/Tests/TestMockBroker.pas 2009-08-25 14:35:18 UTC (rev 858) +++ trunk/Tests/TestMockBroker.pas 2009-08-25 15:04:20 UTC (rev 859) @@ -38,7 +38,6 @@ type TTestMockBroker = class(TTestCase) - private protected FConn: TInstantMockConnector; procedure SetUp; override; @@ -53,7 +52,6 @@ end; TTestMockRelationalBroker = class(TTestCase) - private protected FConn: TInstantMockConnector; procedure SetUp; override; @@ -64,6 +62,15 @@ procedure TestStoreAndRetrieveContact; end; + TTestMockSQLbroker = class(TTestCase) + protected + FConn: TInstantMockConnector; + procedure SetUp; override; + procedure TearDown; override; + published + procedure TestQuery; + end; + implementation uses InstantMetadata; @@ -285,8 +292,40 @@ brok.MockManager.Verify; end; +{ TTestMockSQLbroker } + +procedure TTestMockSQLbroker.SetUp; +begin + FConn := TInstantMockConnector.Create(nil); + FConn.BrokerClass := TInstantMockSQLBroker; + + if InstantModel.ClassMetadatas.Count > 0 then + InstantModel.ClassMetadatas.Clear; + InstantModel.LoadFromResFile(ChangeFileExt(ParamStr(0), '.mdr')); +end; + +procedure TTestMockSQLbroker.TearDown; +begin + InstantModel.ClassMetadatas.Clear; + FreeAndNil(FConn); +end; + +procedure TTestMockSQLbroker.TestQuery; +var + LQuery: TInstantQuery; +begin + LQuery := FConn.CreateQuery; + try + LQuery.Command := 'select * from tcountry'; + AssertTrue(LQuery.ObjectClass = TCountry); + AssertTrue(LQuery.ObjectClassName = 'TCountry'); + finally + LQuery.Free; + end; +end; + initialization {$IFNDEF CURR_TESTS} - RegisterTests([TTestMockBroker, TTestMockRelationalBroker]); + RegisterTests([TTestMockBroker, TTestMockRelationalBroker, TTestMockSQLbroker]); {$ENDIF} end. \ No newline at end of file |
From: <dav...@us...> - 2009-08-26 01:03:16
|
Revision: 864 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=864&view=rev Author: davidvtaylor Date: 2009-08-26 01:03:07 +0000 (Wed, 26 Aug 2009) Log Message: ----------- Initial port to Delphi 2010 - all unit tests pass! + Add packages for Core, Design, Catalogs and standard Brokers + Add packages for AnyDAC broker (not fully tested - waiting for RemObjects Aug 2009 release) + Add Classes to uses of validation units to suppress method inlining warning + Port unit test project to D2010 Modified Paths: -------------- trunk/Source/Core/InstantStandardValidators.pas trunk/Source/Core/InstantValidation.pas Added Paths: ----------- trunk/Source/Brokers/ADO/D2010/ trunk/Source/Brokers/ADO/D2010/DclIOADO.dpk trunk/Source/Brokers/ADO/D2010/DclIOADO.dproj trunk/Source/Brokers/ADO/D2010/DclIOADO.res trunk/Source/Brokers/ADO/D2010/IOADO.dpk trunk/Source/Brokers/ADO/D2010/IOADO.dproj trunk/Source/Brokers/ADO/D2010/IOADO.res trunk/Source/Brokers/AnyDAC/D2010/ trunk/Source/Brokers/AnyDAC/D2010/DclIOAnyDAC.dpk trunk/Source/Brokers/AnyDAC/D2010/DclIOAnyDAC.dproj trunk/Source/Brokers/AnyDAC/D2010/DclIOAnyDAC.res trunk/Source/Brokers/AnyDAC/D2010/IOAnyDAC.dpk trunk/Source/Brokers/AnyDAC/D2010/IOAnyDAC.dproj trunk/Source/Brokers/AnyDAC/D2010/IOAnyDAC.res trunk/Source/Brokers/BDE/D2010/ trunk/Source/Brokers/BDE/D2010/DclIOBDE.dpk trunk/Source/Brokers/BDE/D2010/DclIOBDE.dproj trunk/Source/Brokers/BDE/D2010/DclIOBDE.res trunk/Source/Brokers/BDE/D2010/IOBDE.dpk trunk/Source/Brokers/BDE/D2010/IOBDE.dproj trunk/Source/Brokers/BDE/D2010/IOBDE.res trunk/Source/Brokers/DBX/D2010/ trunk/Source/Brokers/DBX/D2010/DclIODBX.dpk trunk/Source/Brokers/DBX/D2010/DclIODBX.dproj trunk/Source/Brokers/DBX/D2010/DclIODBX.res trunk/Source/Brokers/DBX/D2010/IODBX.dpk trunk/Source/Brokers/DBX/D2010/IODBX.dproj trunk/Source/Brokers/DBX/D2010/IODBX.res trunk/Source/Brokers/IBX/D2010/ trunk/Source/Brokers/IBX/D2010/DclIOIBX.dpk trunk/Source/Brokers/IBX/D2010/DclIOIBX.dproj trunk/Source/Brokers/IBX/D2010/DclIOIBX.res trunk/Source/Brokers/IBX/D2010/IOIBX.dpk trunk/Source/Brokers/IBX/D2010/IOIBX.dproj trunk/Source/Brokers/IBX/D2010/IOIBX.res trunk/Source/Brokers/XML/D2010/ trunk/Source/Brokers/XML/D2010/DclIOXML.dpk trunk/Source/Brokers/XML/D2010/DclIOXML.dproj trunk/Source/Brokers/XML/D2010/DclIOXML.res trunk/Source/Brokers/XML/D2010/IOXML.dpk trunk/Source/Brokers/XML/D2010/IOXML.dproj trunk/Source/Brokers/XML/D2010/IOXML.res trunk/Source/Catalogs/IBFb/D2010/ trunk/Source/Catalogs/IBFb/D2010/IOIBFbCatalog.dpk trunk/Source/Catalogs/IBFb/D2010/IOIBFbCatalog.dproj trunk/Source/Catalogs/IBFb/D2010/IOIBFbCatalog.res trunk/Source/Catalogs/MSSql/D2010/ trunk/Source/Catalogs/MSSql/D2010/IOMSSqlCatalog.dpk trunk/Source/Catalogs/MSSql/D2010/IOMSSqlCatalog.dproj trunk/Source/Catalogs/MSSql/D2010/IOMSSqlCatalog.res trunk/Source/Catalogs/MySQL/D2010/ trunk/Source/Catalogs/MySQL/D2010/IOMySQLCatalog.dpk trunk/Source/Catalogs/MySQL/D2010/IOMySQLCatalog.dproj trunk/Source/Catalogs/MySQL/D2010/IOMySQLCatalog.res trunk/Source/Core/D2010/ trunk/Source/Core/D2010/IOCore.dpk trunk/Source/Core/D2010/IOCore.dproj trunk/Source/Core/D2010/IOCore.res trunk/Source/Design/D2010/ trunk/Source/Design/D2010/DclIOCore.dpk trunk/Source/Design/D2010/DclIOCore.dproj trunk/Source/Design/D2010/DclIOCore.res trunk/Tests/TestIO_D2010.dpr trunk/Tests/TestIO_D2010.dproj trunk/Tests/TestIO_D2010.res Added: trunk/Source/Brokers/ADO/D2010/DclIOADO.dpk =================================================================== --- trunk/Source/Brokers/ADO/D2010/DclIOADO.dpk (rev 0) +++ trunk/Source/Brokers/ADO/D2010/DclIOADO.dpk 2009-08-26 01:03:07 UTC (rev 864) @@ -0,0 +1,38 @@ +package DclIOADO; + +{$R *.res} +{$R '..\InstantADO.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS ON} +{$RANGECHECKS ON} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects ADO Design-Time Support (Delphi 2010)'} +{$LIBSUFFIX '_D14'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + rtl, + IOADO; + +contains + InstantADOReg in '..\InstantADOReg.pas'; + +end. Property changes on: trunk/Source/Brokers/ADO/D2010/DclIOADO.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/Source/Brokers/ADO/D2010/DclIOADO.dproj =================================================================== --- trunk/Source/Brokers/ADO/D2010/DclIOADO.dproj (rev 0) +++ trunk/Source/Brokers/ADO/D2010/DclIOADO.dproj 2009-08-26 01:03:07 UTC (rev 864) @@ -0,0 +1,116 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{E0EE3CA6-D975-4E62-B964-C20686397283}</ProjectGuid> + <MainSource>DclIOADO.dpk</MainSource> + <Config Condition="'$(Config)'==''">Debug</Config> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <ProjectVersion>12.0</ProjectVersion> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DesignOnlyPackage>true</DesignOnlyPackage> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo> + <DllSuffix>_D14</DllSuffix> + <DCC_DependencyCheckOutputName>C:\Documents and Settings\All Users\Documents\RAD Studio\7.0\Bpl\DclIOADO_D14.bpl</DCC_DependencyCheckOutputName> + <DCC_RangeChecking>true</DCC_RangeChecking> + <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;$(DCC_UnitAlias)</DCC_UnitAlias> + <DCC_Description>InstantObjects ADO Design-Time Support (Delphi 2010)</DCC_Description> + <DCC_Platform>x86</DCC_Platform> + <DCC_S>false</DCC_S> + <DCC_N>false</DCC_N> + <GenDll>true</GenDll> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <DCC_K>false</DCC_K> + <DCC_IntegerOverflowCheck>true</DCC_IntegerOverflowCheck> + <GenPackage>true</GenPackage> + <DCC_F>false</DCC_F> + <DCC_E>false</DCC_E> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_DebugInformation>false</DCC_DebugInformation> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <ItemGroup> + <DelphiCompile Include="DclIOADO.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="..\InstantADO.dcr"/> + <DCCReference Include="rtl.dcp"/> + <DCCReference Include="IOADO.dcp"/> + <DCCReference Include="..\InstantADOReg.pas"/> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Source> + <Source Name="MainSource">DclIOADO.dpk</Source> + </Source> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</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">1033</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName"/> + <VersionInfoKeys Name="FileDescription"/> + <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName"/> + <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + </Project> Property changes on: trunk/Source/Brokers/ADO/D2010/DclIOADO.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/Source/Brokers/ADO/D2010/DclIOADO.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/ADO/D2010/DclIOADO.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/ADO/D2010/IOADO.dpk =================================================================== --- trunk/Source/Brokers/ADO/D2010/IOADO.dpk (rev 0) +++ trunk/Source/Brokers/ADO/D2010/IOADO.dpk 2009-08-26 01:03:07 UTC (rev 864) @@ -0,0 +1,44 @@ +package IOADO; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects ADO Run-Time Support (Delphi 2010)'} +{$LIBSUFFIX '_D14'} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + vcl, + vcldb, + adortl, + IOCore, + IOMSSqlCatalog; + +contains + InstantADOX in '..\InstantADOX.pas', + InstantADOJRO in '..\InstantADOJRO.pas', + InstantADOTools in '..\InstantADOTools.pas', + InstantADOConnectionDefEdit in '..\InstantADOConnectionDefEdit.pas' {InstantADOConnectionDefEditForm}, + InstantADO in '..\InstantADO.pas'; + +end. Property changes on: trunk/Source/Brokers/ADO/D2010/IOADO.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/Source/Brokers/ADO/D2010/IOADO.dproj =================================================================== --- trunk/Source/Brokers/ADO/D2010/IOADO.dproj (rev 0) +++ trunk/Source/Brokers/ADO/D2010/IOADO.dproj 2009-08-26 01:03:07 UTC (rev 864) @@ -0,0 +1,123 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{BF5FCE65-8CE6-49DA-80A0-E55081BF9F72}</ProjectGuid> + <MainSource>IOADO.dpk</MainSource> + <Config Condition="'$(Config)'==''">Debug</Config> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <ProjectVersion>12.0</ProjectVersion> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DCC_DependencyCheckOutputName>C:\Documents and Settings\All Users\Documents\RAD Studio\7.0\Bpl\IOADO_D14.bpl</DCC_DependencyCheckOutputName> + <DllSuffix>_D14</DllSuffix> + <DCC_WriteableConstants>true</DCC_WriteableConstants> + <DCC_Platform>x86</DCC_Platform> + <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;$(DCC_UnitAlias)</DCC_UnitAlias> + <RuntimeOnlyPackage>true</RuntimeOnlyPackage> + <DCC_Description>InstantObjects ADO Run-Time Support (Delphi 2010)</DCC_Description> + <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo> + <DCC_S>false</DCC_S> + <DCC_N>false</DCC_N> + <GenDll>true</GenDll> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <DCC_E>false</DCC_E> + <GenPackage>true</GenPackage> + <DCC_K>false</DCC_K> + <DCC_F>false</DCC_F> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_DebugInformation>false</DCC_DebugInformation> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <ItemGroup> + <DelphiCompile Include="IOADO.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="vcl.dcp"/> + <DCCReference Include="vcldb.dcp"/> + <DCCReference Include="adortl.dcp"/> + <DCCReference Include="IOCore.dcp"/> + <DCCReference Include="IOMSSqlCatalog.dcp"/> + <DCCReference Include="..\InstantADOX.pas"/> + <DCCReference Include="..\InstantADOJRO.pas"/> + <DCCReference Include="..\InstantADOTools.pas"/> + <DCCReference Include="..\InstantADOConnectionDefEdit.pas"> + <Form>InstantADOConnectionDefEditForm</Form> + </DCCReference> + <DCCReference Include="..\InstantADO.pas"/> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Source> + <Source Name="MainSource">IOADO.dpk</Source> + </Source> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</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">1033</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName"/> + <VersionInfoKeys Name="FileDescription"/> + <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName"/> + <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + </Project> Property changes on: trunk/Source/Brokers/ADO/D2010/IOADO.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/Source/Brokers/ADO/D2010/IOADO.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/ADO/D2010/IOADO.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/AnyDAC/D2010/DclIOAnyDAC.dpk =================================================================== --- trunk/Source/Brokers/AnyDAC/D2010/DclIOAnyDAC.dpk (rev 0) +++ trunk/Source/Brokers/AnyDAC/D2010/DclIOAnyDAC.dpk 2009-08-26 01:03:07 UTC (rev 864) @@ -0,0 +1,39 @@ +package DclIOAnyDAC; + +{$R *.res} +{$R '..\InstantAnyDAC.dcr'} + +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS ON} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects AnyDAC Design-Time Support (Delphi 2010)'} +{$LIBSUFFIX '_D14'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + IOAnyDAC; + +contains + InstantAnyDACReg in '..\InstantAnyDACReg.pas'; + +end. + Property changes on: trunk/Source/Brokers/AnyDAC/D2010/DclIOAnyDAC.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/Source/Brokers/AnyDAC/D2010/DclIOAnyDAC.dproj =================================================================== --- trunk/Source/Brokers/AnyDAC/D2010/DclIOAnyDAC.dproj (rev 0) +++ trunk/Source/Brokers/AnyDAC/D2010/DclIOAnyDAC.dproj 2009-08-26 01:03:07 UTC (rev 864) @@ -0,0 +1,115 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{A2BC22CD-E13F-451F-B150-873A254827A7}</ProjectGuid> + <MainSource>DclIOAnyDAC.dpk</MainSource> + <Config Condition="'$(Config)'==''">Debug</Config> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <ProjectVersion>12.0</ProjectVersion> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_DependencyCheckOutputName>C:\Documents and Settings\All Users\Documents\RAD Studio\7.0\Bpl\DclIOAnyDAC_D14.bpl</DCC_DependencyCheckOutputName> + <DesignOnlyPackage>true</DesignOnlyPackage> + <DCC_Description>InstantObjects AnyDAC Design-Time Support (Delphi 2010)</DCC_Description> + <DCC_TypedAtParameter>true</DCC_TypedAtParameter> + <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;$(DCC_UnitAlias)</DCC_UnitAlias> + <GenPackage>true</GenPackage> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <DllSuffix>_D14</DllSuffix> + <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DCC_Platform>x86</DCC_Platform> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_DebugInformation>false</DCC_DebugInformation> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <ItemGroup> + <DelphiCompile Include="DclIOAnyDAC.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="..\InstantAnyDAC.dcr"/> + <DCCReference Include="IOAnyDAC.dcp"/> + <DCCReference Include="..\InstantAnyDACReg.pas"/> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Source> + <Source Name="MainSource">DclIOAnyDAC.dpk</Source> + </Source> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</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">1033</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName"/> + <VersionInfoKeys Name="FileDescription"/> + <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName"/> + <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\bcboffice2k140.bpl">Embarcadero C++Builder Office 2000 Servers Package</Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\bcbofficexp140.bpl">Embarcadero C++Builder Office XP Servers Package</Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\dcloffice2k140.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\dclofficexp140.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> + </Excluded_Packages> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + </Project> Property changes on: trunk/Source/Brokers/AnyDAC/D2010/DclIOAnyDAC.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/Source/Brokers/AnyDAC/D2010/DclIOAnyDAC.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/AnyDAC/D2010/DclIOAnyDAC.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/AnyDAC/D2010/IOAnyDAC.dpk =================================================================== --- trunk/Source/Brokers/AnyDAC/D2010/IOAnyDAC.dpk (rev 0) +++ trunk/Source/Brokers/AnyDAC/D2010/IOAnyDAC.dpk 2009-08-26 01:03:07 UTC (rev 864) @@ -0,0 +1,42 @@ +package IOAnyDAC; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS ON} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects AnyDAC Run-Time Support (Delphi 2010)'} +{$LIBSUFFIX '_D14'} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + IOCore, + xmlrtl, + AnyDAC_Phys, + AnyDAC_ComI, + AnyDAC_Comp; + +contains + InstantAnyDAC in '..\InstantAnyDAC.pas', + InstantAnyDACCatalog in '..\InstantAnyDACCatalog.pas', + InstantAnyDACConnectionDefEdit in '..\InstantAnyDACConnectionDefEdit.pas' {InstantAnyDACConnectionDefEditForm}; + +end. Property changes on: trunk/Source/Brokers/AnyDAC/D2010/IOAnyDAC.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/Source/Brokers/AnyDAC/D2010/IOAnyDAC.dproj =================================================================== --- trunk/Source/Brokers/AnyDAC/D2010/IOAnyDAC.dproj (rev 0) +++ trunk/Source/Brokers/AnyDAC/D2010/IOAnyDAC.dproj 2009-08-26 01:03:07 UTC (rev 864) @@ -0,0 +1,122 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{B2FCAE40-1DA4-401B-878A-1D0C9AB45191}</ProjectGuid> + <MainSource>IOAnyDAC.dpk</MainSource> + <Config Condition="'$(Config)'==''">Debug</Config> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <ProjectVersion>12.0</ProjectVersion> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_DependencyCheckOutputName>C:\Documents and Settings\All Users\Documents\RAD Studio\7.0\Bpl\IOAnyDAC_D14.bpl</DCC_DependencyCheckOutputName> + <DCC_TypedAtParameter>true</DCC_TypedAtParameter> + <RuntimeOnlyPackage>true</RuntimeOnlyPackage> + <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;$(DCC_UnitAlias)</DCC_UnitAlias> + <DCC_Description>InstantObjects AnyDAC Run-Time Support (Delphi 2010)</DCC_Description> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <GenPackage>true</GenPackage> + <DllSuffix>_D14</DllSuffix> + <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DCC_Platform>x86</DCC_Platform> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_DebugInformation>false</DCC_DebugInformation> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <ItemGroup> + <DelphiCompile Include="IOAnyDAC.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="IOCore.dcp"/> + <DCCReference Include="xmlrtl.dcp"/> + <DCCReference Include="AnyDAC_Phys.dcp"/> + <DCCReference Include="AnyDAC_ComI.dcp"/> + <DCCReference Include="AnyDAC_Comp.dcp"/> + <DCCReference Include="..\InstantAnyDAC.pas"/> + <DCCReference Include="..\InstantAnyDACCatalog.pas"/> + <DCCReference Include="..\InstantAnyDACConnectionDefEdit.pas"> + <Form>InstantAnyDACConnectionDefEditForm</Form> + </DCCReference> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Source> + <Source Name="MainSource">IOAnyDAC.dpk</Source> + </Source> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</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">1033</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName"/> + <VersionInfoKeys Name="FileDescription"/> + <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName"/> + <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\bcboffice2k140.bpl">Embarcadero C++Builder Office 2000 Servers Package</Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\bcbofficexp140.bpl">Embarcadero C++Builder Office XP Servers Package</Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\dcloffice2k140.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\dclofficexp140.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> + </Excluded_Packages> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + </Project> Property changes on: trunk/Source/Brokers/AnyDAC/D2010/IOAnyDAC.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/Source/Brokers/AnyDAC/D2010/IOAnyDAC.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/AnyDAC/D2010/IOAnyDAC.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/BDE/D2010/DclIOBDE.dpk =================================================================== --- trunk/Source/Brokers/BDE/D2010/DclIOBDE.dpk (rev 0) +++ trunk/Source/Brokers/BDE/D2010/DclIOBDE.dpk 2009-08-26 01:03:07 UTC (rev 864) @@ -0,0 +1,41 @@ +package DclIOBDE; + +{$R *.res} +{$R '..\InstantBDE.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS ON} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects BDE Design-Time Support (Delphi 2010)'} +{$LIBSUFFIX '_D14'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + vcl, + vcldb, + bdertl, + IOCore, + IOBDE; + +contains + InstantBDEReg in '..\InstantBDEReg.pas'; + +end. Property changes on: trunk/Source/Brokers/BDE/D2010/DclIOBDE.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/Source/Brokers/BDE/D2010/DclIOBDE.dproj =================================================================== --- trunk/Source/Brokers/BDE/D2010/DclIOBDE.dproj (rev 0) +++ trunk/Source/Brokers/BDE/D2010/DclIOBDE.dproj 2009-08-26 01:03:07 UTC (rev 864) @@ -0,0 +1,119 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{BDFB4250-0540-424D-93CE-7A9771B6CA22}</ProjectGuid> + <MainSource>DclIOBDE.dpk</MainSource> + <Config Condition="'$(Config)'==''">Debug</Config> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <ProjectVersion>12.0</ProjectVersion> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_DependencyCheckOutputName>C:\Documents and Settings\All Users\Documents\RAD Studio\7.0\Bpl\DclIOBDE_D14.bpl</DCC_DependencyCheckOutputName> + <DesignOnlyPackage>true</DesignOnlyPackage> + <DCC_Description>InstantObjects BDE Design-Time Support (Delphi 2010)</DCC_Description> + <DCC_TypedAtParameter>true</DCC_TypedAtParameter> + <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;$(DCC_UnitAlias)</DCC_UnitAlias> + <GenPackage>true</GenPackage> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <DllSuffix>_D14</DllSuffix> + <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DCC_Platform>x86</DCC_Platform> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_DebugInformation>false</DCC_DebugInformation> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <ItemGroup> + <DelphiCompile Include="DclIOBDE.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="..\InstantBDE.dcr"/> + <DCCReference Include="vcl.dcp"/> + <DCCReference Include="vcldb.dcp"/> + <DCCReference Include="bdertl.dcp"/> + <DCCReference Include="IOCore.dcp"/> + <DCCReference Include="IOBDE.dcp"/> + <DCCReference Include="..\InstantBDEReg.pas"/> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Source> + <Source Name="MainSource">DclIOBDE.dpk</Source> + </Source> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</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">1033</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName"/> + <VersionInfoKeys Name="FileDescription"/> + <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName"/> + <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\bcboffice2k140.bpl">Embarcadero C++Builder Office 2000 Servers Package</Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\bcbofficexp140.bpl">Embarcadero C++Builder Office XP Servers Package</Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\dcloffice2k140.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\dclofficexp140.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> + </Excluded_Packages> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + </Project> Property changes on: trunk/Source/Brokers/BDE/D2010/DclIOBDE.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/Source/Brokers/BDE/D2010/DclIOBDE.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/BDE/D2010/DclIOBDE.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/BDE/D2010/IOBDE.dpk =================================================================== --- trunk/Source/Brokers/BDE/D2010/IOBDE.dpk (rev 0) +++ trunk/Source/Brokers/BDE/D2010/IOBDE.dpk 2009-08-26 01:03:07 UTC (rev 864) @@ -0,0 +1,41 @@ +package IOBDE; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS ON} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects BDE Run-Time Support (Delphi 2010)'} +{$LIBSUFFIX '_D14'} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + vcl, + vcldb, + bdertl, + IOCore; + +contains + InstantBDECatalog in '..\InstantBDECatalog.pas', + InstantBDEConnectionDefEdit in '..\InstantBDEConnectionDefEdit.pas' {InstantBDEConnectionDefEditForm}, + InstantBDE in '..\InstantBDE.pas'; + +end. Property changes on: trunk/Source/Brokers/BDE/D2010/IOBDE.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/Source/Brokers/BDE/D2010/IOBDE.dproj =================================================================== --- trunk/Source/Brokers/BDE/D2010/IOBDE.dproj (rev 0) +++ trunk/Source/Brokers/BDE/D2010/IOBDE.dproj 2009-08-26 01:03:07 UTC (rev 864) @@ -0,0 +1,121 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{51CF2FF0-F06C-405A-BECE-640C3FD6027E}</ProjectGuid> + <MainSource>IOBDE.dpk</MainSource> + <Config Condition="'$(Config)'==''">Debug</Config> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <ProjectVersion>12.0</ProjectVersion> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_DependencyCheckOutputName>C:\Documents and Settings\All Users\Documents\RAD Studio\7.0\Bpl\IOBDE_D14.bpl</DCC_DependencyCheckOutputName> + <DCC_TypedAtParameter>true</DCC_TypedAtParameter> + <RuntimeOnlyPackage>true</RuntimeOnlyPackage> + <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;$(DCC_UnitAlias)</DCC_UnitAlias> + <DCC_Description>InstantObjects BDE Run-Time Support (Delphi 2010)</DCC_Description> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <GenPackage>true</GenPackage> + <DllSuffix>_D14</DllSuffix> + <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DCC_Platform>x86</DCC_Platform> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_DebugInformation>false</DCC_DebugInformation> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <ItemGroup> + <DelphiCompile Include="IOBDE.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="vcl.dcp"/> + <DCCReference Include="vcldb.dcp"/> + <DCCReference Include="bdertl.dcp"/> + <DCCReference Include="IOCore.dcp"/> + <DCCReference Include="..\InstantBDECatalog.pas"/> + <DCCReference Include="..\InstantBDEConnectionDefEdit.pas"> + <Form>InstantBDEConnectionDefEditForm</Form> + </DCCReference> + <DCCReference Include="..\InstantBDE.pas"/> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Source> + <Source Name="MainSource">IOBDE.dpk</Source> + </Source> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</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">1033</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName"/> + <VersionInfoKeys Name="FileDescription"/> + <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName"/> + <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\bcboffice2k140.bpl">Embarcadero C++Builder Office 2000 Servers Package</Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\bcbofficexp140.bpl">Embarcadero C++Builder Office XP Servers Package</Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\dcloffice2k140.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\dclofficexp140.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> + </Excluded_Packages> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + </Project> Property changes on: trunk/Source/Brokers/BDE/D2010/IOBDE.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/Source/Brokers/BDE/D2010/IOBDE.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/BDE/D2010/IOBDE.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/DBX/D2010/DclIODBX.dpk =================================================================== --- trunk/Source/Brokers/DBX/D2010/DclIODBX.dpk (rev 0) +++ trunk/Source/Brokers/DBX/D2010/DclIODBX.dpk 2009-08-26 01:03:07 UTC (rev 864) @@ -0,0 +1,42 @@ +package DclIODBX; + +{$R *.res} +{$R '..\InstantDBX.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS ON} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects dbExpress Design-Time Support (Delphi 2010)'} +{$LIBSUFFIX '_D14'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + rtl, + vcl, + dbrtl, + dbexpress, + IOCore, + IODBX; + +contains + InstantDBXReg in '..\InstantDBXReg.pas'; + +end. Property changes on: trunk/Source/Brokers/DBX/D2010/DclIODBX.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/Source/Brokers/DBX/D2010/DclIODBX.dproj =================================================================== --- trunk/Source/Brokers/DBX/D2010/DclIODBX.dproj (rev 0) +++ trunk/Source/Brokers/DBX/D2010/DclIODBX.dproj 2009-08-26 01:03:07 UTC (rev 864) @@ -0,0 +1,120 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{37A94EA0-7FE9-4F18-B639-D0056DB88697}</ProjectGuid> + <MainSource>DclIODBX.dpk</MainSource> + <Config Condition="'$(Config)'==''">Debug</Config> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <ProjectVersion>12.0</ProjectVersion> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_DependencyCheckOutputName>C:\Documents and Settings\All Users\Documents\RAD Studio\7.0\Bpl\DclIODBX_D14.bpl</DCC_DependencyCheckOutputName> + <DesignOnlyPackage>true</DesignOnlyPackage> + <DCC_Description>InstantObjects dbExpress Design-Time Support (Delphi 2010)</DCC_Description> + <DCC_TypedAtParameter>true</DCC_TypedAtParameter> + <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;$(DCC_UnitAlias)</DCC_UnitAlias> + <GenPackage>true</GenPackage> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <DllSuffix>_D14</DllSuffix> + <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DCC_Platform>x86</DCC_Platform> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_DebugInformation>false</DCC_DebugInformation> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <ItemGroup> + <DelphiCompile Include="DclIODBX.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="..\InstantDBX.dcr"/> + <DCCReference Include="rtl.dcp"/> + <DCCReference Include="vcl.dcp"/> + <DCCReference Include="dbrtl.dcp"/> + <DCCReference Include="dbexpress.dcp"/> + <DCCReference Include="IOCore.dcp"/> + <DCCReference Include="IODBX.dcp"/> + <DCCReference Include="..\InstantDBXReg.pas"/> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Source> + <Source Name="MainSource">DclIODBX.dpk</Source> + </Source> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</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">1033</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName"/> + <VersionInfoKeys Name="FileDescription"/> + <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName"/> + <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\bcboffice2k140.bpl">Embarcadero C++Builder Office 2000 Servers Package</Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\bcbofficexp140.bpl">Embarcadero C++Builder Office XP Servers Package</Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\dcloffice2k140.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> + <Excluded_Packages Name="$(BDS)\bin\dclofficexp140.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> + </Excluded_Packages> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + </Project> Property changes on: trunk/Source/Brokers/DBX/D2010/DclIODBX.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/Source/Brokers/DBX/D2010/DclIODBX.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/DBX/D2010/DclIODBX.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/DBX/D2010/IODBX.dpk =================================================================== --- trunk/Source/Brokers/DBX/D2010/IODBX.dpk (rev 0) +++ trunk/Source/Brokers/DBX/D2010/IODBX.dpk 2009-08-26 01:03:07 UTC (rev 864) @@ -0,0 +1,44 @@ +package IODBX; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects dbExpress Run-Time Support (Delphi 2010)'} +{$LIBSUFFIX '_D14'} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + rtl, + vcl, + dbrtl, + dbexpress, + IOCore, + IOIBFbCatalog, + IOMSSqlCatalog, + IOMySQLCatalog; + +contains + InstantDBXConnectionDefEdit in '..\InstantDBXConnectionDefEdit.pas' {InstantDBXConnectionDefEditForm}, + InstantDBX in '..\InstantDBX.pas'; + +end. Property changes on: trunk/Source/Brokers/DBX/D2010/IODBX.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/Source/Brokers/DBX/D2010/IODBX.dproj =================================================================== --- trunk/Source/Brokers/DBX/D2010/IODBX.dproj (rev 0) +++ trunk/Source/Brokers/DBX/D2010/IODBX.dproj 2009-08-26 01:03:07 UTC (rev 864) @@ -0,0 +1,123 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{99DAEA57-EA95-4709-A5EE-36855F676EB5}</ProjectGuid> + <MainSource>IODBX.dpk</MainSource> + <Config Condition="'$(Config)'==''">Debug</Config> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <ProjectVersion>12.0</ProjectVersion> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_DependencyCheckOutputName>C:\Documents and Settings\All Users\Documents\RAD Studio\7.0\Bpl\IODBX_D14.bpl</DCC_DependencyCheckOutputName> + <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;$(DCC_UnitAlias)</DCC_UnitAlias> + <DCC_Description>InstantObjects dbExpress Run-Time Support (Delphi 2010)</DCC_Description> + <RuntimeOnlyPackage>true</RuntimeOnlyPackage> + <DllSuffix>_D14</DllSuffix> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo> + <GenPackage>true</GenPackage> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DCC_Platform>x86</DCC_Platform> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_DebugInformation>false</DCC_DebugInformation> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <ItemGroup> + <DelphiCompile Include="IODBX.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="rtl.dcp"/> + <DCCReference Include="vcl.dcp"/> + <DCCReference Include="dbrtl.dcp"/> + <DCCReference Include="dbexpress.dcp"/> + <DCCR... [truncated message content] |
From: <na...@us...> - 2009-08-26 15:45:44
|
Revision: 866 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=866&view=rev Author: nandod Date: 2009-08-26 15:45:12 +0000 (Wed, 26 Aug 2009) Log Message: ----------- + Package groups for D2010. - Removed TestIO_D2010 as the format of TestIO_D2009 is compatible with D2010. * svn:ignore set. Modified Paths: -------------- trunk/Source/Brokers/ADO/D2010/DclIOADO.dproj trunk/Source/Brokers/BDE/D2010/DclIOBDE.dproj trunk/Source/Brokers/DBX/D2010/DclIODBX.dproj trunk/Source/Brokers/IBX/D2010/DclIOIBX.dproj trunk/Source/Brokers/XML/D2010/DclIOXML.dproj trunk/Source/Design/D2010/DclIOCore.dproj Added Paths: ----------- trunk/Source/PackageGroups/D2010/ trunk/Source/PackageGroups/D2010/DesignTimePackages.groupproj trunk/Source/PackageGroups/D2010/RunTimePackages.groupproj Removed Paths: ------------- trunk/Tests/TestIO_D2010.dpr trunk/Tests/TestIO_D2010.dproj trunk/Tests/TestIO_D2010.res Property Changed: ---------------- trunk/Source/Brokers/ADO/D2010/ trunk/Source/Brokers/BDE/D2010/ trunk/Source/Brokers/DBX/D2010/ trunk/Source/Brokers/IBX/D2010/ trunk/Source/Brokers/XML/D2010/ trunk/Source/Catalogs/IBFb/D2010/ trunk/Source/Catalogs/MSSql/D2010/ trunk/Source/Catalogs/MySQL/D2010/ trunk/Source/Core/D2010/ trunk/Source/Design/D2010/ Property changes on: trunk/Source/Brokers/ADO/D2010 ___________________________________________________________________ Added: svn:ignore + *.dcu *.local Modified: trunk/Source/Brokers/ADO/D2010/DclIOADO.dproj =================================================================== --- trunk/Source/Brokers/ADO/D2010/DclIOADO.dproj 2009-08-26 15:33:19 UTC (rev 865) +++ trunk/Source/Brokers/ADO/D2010/DclIOADO.dproj 2009-08-26 15:45:12 UTC (rev 866) @@ -24,7 +24,7 @@ <DCC_ImageBase>00400000</DCC_ImageBase> <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo> <DllSuffix>_D14</DllSuffix> - <DCC_DependencyCheckOutputName>C:\Documents and Settings\All Users\Documents\RAD Studio\7.0\Bpl\DclIOADO_D14.bpl</DCC_DependencyCheckOutputName> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\7.0\Bpl\DclIOADO_D14.bpl</DCC_DependencyCheckOutputName> <DCC_RangeChecking>true</DCC_RangeChecking> <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;$(DCC_UnitAlias)</DCC_UnitAlias> <DCC_Description>InstantObjects ADO Design-Time Support (Delphi 2010)</DCC_Description> Property changes on: trunk/Source/Brokers/BDE/D2010 ___________________________________________________________________ Added: svn:ignore + *.dcu *.local Modified: trunk/Source/Brokers/BDE/D2010/DclIOBDE.dproj =================================================================== --- trunk/Source/Brokers/BDE/D2010/DclIOBDE.dproj 2009-08-26 15:33:19 UTC (rev 865) +++ trunk/Source/Brokers/BDE/D2010/DclIOBDE.dproj 2009-08-26 15:45:12 UTC (rev 866) @@ -20,7 +20,7 @@ <Base>true</Base> </PropertyGroup> <PropertyGroup Condition="'$(Base)'!=''"> - <DCC_DependencyCheckOutputName>C:\Documents and Settings\All Users\Documents\RAD Studio\7.0\Bpl\DclIOBDE_D14.bpl</DCC_DependencyCheckOutputName> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\7.0\Bpl\DclIOBDE_D14.bpl</DCC_DependencyCheckOutputName> <DesignOnlyPackage>true</DesignOnlyPackage> <DCC_Description>InstantObjects BDE Design-Time Support (Delphi 2010)</DCC_Description> <DCC_TypedAtParameter>true</DCC_TypedAtParameter> Property changes on: trunk/Source/Brokers/DBX/D2010 ___________________________________________________________________ Added: svn:ignore + *.dcu *.local Modified: trunk/Source/Brokers/DBX/D2010/DclIODBX.dproj =================================================================== --- trunk/Source/Brokers/DBX/D2010/DclIODBX.dproj 2009-08-26 15:33:19 UTC (rev 865) +++ trunk/Source/Brokers/DBX/D2010/DclIODBX.dproj 2009-08-26 15:45:12 UTC (rev 866) @@ -20,7 +20,7 @@ <Base>true</Base> </PropertyGroup> <PropertyGroup Condition="'$(Base)'!=''"> - <DCC_DependencyCheckOutputName>C:\Documents and Settings\All Users\Documents\RAD Studio\7.0\Bpl\DclIODBX_D14.bpl</DCC_DependencyCheckOutputName> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\7.0\Bpl\DclIODBX_D14.bpl</DCC_DependencyCheckOutputName> <DesignOnlyPackage>true</DesignOnlyPackage> <DCC_Description>InstantObjects dbExpress Design-Time Support (Delphi 2010)</DCC_Description> <DCC_TypedAtParameter>true</DCC_TypedAtParameter> Property changes on: trunk/Source/Brokers/IBX/D2010 ___________________________________________________________________ Added: svn:ignore + *.local *.dcu Modified: trunk/Source/Brokers/IBX/D2010/DclIOIBX.dproj =================================================================== --- trunk/Source/Brokers/IBX/D2010/DclIOIBX.dproj 2009-08-26 15:33:19 UTC (rev 865) +++ trunk/Source/Brokers/IBX/D2010/DclIOIBX.dproj 2009-08-26 15:45:12 UTC (rev 866) @@ -20,7 +20,7 @@ <Base>true</Base> </PropertyGroup> <PropertyGroup Condition="'$(Base)'!=''"> - <DCC_DependencyCheckOutputName>C:\Documents and Settings\All Users\Documents\RAD Studio\7.0\Bpl\DclIOIBX_D14.bpl</DCC_DependencyCheckOutputName> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\7.0\Bpl\DclIOIBX_D14.bpl</DCC_DependencyCheckOutputName> <DesignOnlyPackage>true</DesignOnlyPackage> <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;$(DCC_UnitAlias)</DCC_UnitAlias> <DCC_Description>InstantObjects IBX Design-Time Support (Delphi 2010)</DCC_Description> Property changes on: trunk/Source/Brokers/XML/D2010 ___________________________________________________________________ Added: svn:ignore + *.dcu *.local Modified: trunk/Source/Brokers/XML/D2010/DclIOXML.dproj =================================================================== --- trunk/Source/Brokers/XML/D2010/DclIOXML.dproj 2009-08-26 15:33:19 UTC (rev 865) +++ trunk/Source/Brokers/XML/D2010/DclIOXML.dproj 2009-08-26 15:45:12 UTC (rev 866) @@ -20,7 +20,7 @@ <Base>true</Base> </PropertyGroup> <PropertyGroup Condition="'$(Base)'!=''"> - <DCC_DependencyCheckOutputName>C:\Documents and Settings\All Users\Documents\RAD Studio\7.0\Bpl\DclIOXML_D14.bpl</DCC_DependencyCheckOutputName> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\7.0\Bpl\DclIOXML_D14.bpl</DCC_DependencyCheckOutputName> <DesignOnlyPackage>true</DesignOnlyPackage> <DCC_Description>InstantObjects XML Design-Time Support (Delphi 2010)</DCC_Description> <DCC_TypedAtParameter>true</DCC_TypedAtParameter> Property changes on: trunk/Source/Catalogs/IBFb/D2010 ___________________________________________________________________ Added: svn:ignore + *.dcu *.local Property changes on: trunk/Source/Catalogs/MSSql/D2010 ___________________________________________________________________ Added: svn:ignore + *.dcu *.local Property changes on: trunk/Source/Catalogs/MySQL/D2010 ___________________________________________________________________ Added: svn:ignore + *.dcu *.local Property changes on: trunk/Source/Core/D2010 ___________________________________________________________________ Added: svn:ignore + *.dcu *.local *.identcache Property changes on: trunk/Source/Design/D2010 ___________________________________________________________________ Added: svn:ignore + *.dcu *.local Modified: trunk/Source/Design/D2010/DclIOCore.dproj =================================================================== --- trunk/Source/Design/D2010/DclIOCore.dproj 2009-08-26 15:33:19 UTC (rev 865) +++ trunk/Source/Design/D2010/DclIOCore.dproj 2009-08-26 15:45:12 UTC (rev 866) @@ -20,7 +20,7 @@ <Base>true</Base> </PropertyGroup> <PropertyGroup Condition="'$(Base)'!=''"> - <DCC_DependencyCheckOutputName>C:\Documents and Settings\All Users\Documents\RAD Studio\7.0\Bpl\DclIOCore_D14.bpl</DCC_DependencyCheckOutputName> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\7.0\Bpl\DclIOCore_D14.bpl</DCC_DependencyCheckOutputName> <DesignOnlyPackage>true</DesignOnlyPackage> <DCC_Description>InstantObjects Design-Time Package (Delphi 2010)</DCC_Description> <DCC_TypedAtParameter>true</DCC_TypedAtParameter> Property changes on: trunk/Source/PackageGroups/D2010 ___________________________________________________________________ Added: svn:ignore + *.local Added: trunk/Source/PackageGroups/D2010/DesignTimePackages.groupproj =================================================================== --- trunk/Source/PackageGroups/D2010/DesignTimePackages.groupproj (rev 0) +++ trunk/Source/PackageGroups/D2010/DesignTimePackages.groupproj 2009-08-26 15:45:12 UTC (rev 866) @@ -0,0 +1,98 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{b0beaee6-5b6a-420d-a1e5-7be9568cd5a2}</ProjectGuid> + </PropertyGroup> + <ItemGroup> + <Projects Include="..\..\Design\D2010\DclIOCore.dproj"> + <Dependencies/> + </Projects> + <Projects Include="..\..\Brokers\ADO\D2010\DclIOADO.dproj"> + <Dependencies/> + </Projects> + <Projects Include="..\..\Brokers\BDE\D2010\DclIOBDE.dproj"> + <Dependencies/> + </Projects> + <Projects Include="..\..\Brokers\DBX\D2010\DclIODBX.dproj"> + <Dependencies/> + </Projects> + <Projects Include="..\..\Brokers\IBX\D2010\DclIOIBX.dproj"> + <Dependencies/> + </Projects> + <Projects Include="..\..\Brokers\XML\D2010\DclIOXML.dproj"> + <Dependencies/> + </Projects> + </ItemGroup> + <ProjectExtensions> + <Borland.Personality>Default.Personality.12</Borland.Personality> + <Borland.ProjectType/> + <BorlandProject> + <BorlandProject> + <Default.Personality/> + </BorlandProject> + </BorlandProject> + </ProjectExtensions> + <Target Name="DclIOCore"> + <MSBuild Projects="..\..\Design\D2010\DclIOCore.dproj"/> + </Target> + <Target Name="DclIOCore:Clean"> + <MSBuild Targets="Clean" Projects="..\..\Design\D2010\DclIOCore.dproj"/> + </Target> + <Target Name="DclIOCore:Make"> + <MSBuild Targets="Make" Projects="..\..\Design\D2010\DclIOCore.dproj"/> + </Target> + <Target Name="DclIOADO"> + <MSBuild Projects="..\..\Brokers\ADO\D2010\DclIOADO.dproj"/> + </Target> + <Target Name="DclIOADO:Clean"> + <MSBuild Targets="Clean" Projects="..\..\Brokers\ADO\D2010\DclIOADO.dproj"/> + </Target> + <Target Name="DclIOADO:Make"> + <MSBuild Targets="Make" Projects="..\..\Brokers\ADO\D2010\DclIOADO.dproj"/> + </Target> + <Target Name="DclIOBDE"> + <MSBuild Projects="..\..\Brokers\BDE\D2010\DclIOBDE.dproj"/> + </Target> + <Target Name="DclIOBDE:Clean"> + <MSBuild Targets="Clean" Projects="..\..\Brokers\BDE\D2010\DclIOBDE.dproj"/> + </Target> + <Target Name="DclIOBDE:Make"> + <MSBuild Targets="Make" Projects="..\..\Brokers\BDE\D2010\DclIOBDE.dproj"/> + </Target> + <Target Name="DclIODBX"> + <MSBuild Projects="..\..\Brokers\DBX\D2010\DclIODBX.dproj"/> + </Target> + <Target Name="DclIODBX:Clean"> + <MSBuild Targets="Clean" Projects="..\..\Brokers\DBX\D2010\DclIODBX.dproj"/> + </Target> + <Target Name="DclIODBX:Make"> + <MSBuild Targets="Make" Projects="..\..\Brokers\DBX\D2010\DclIODBX.dproj"/> + </Target> + <Target Name="DclIOIBX"> + <MSBuild Projects="..\..\Brokers\IBX\D2010\DclIOIBX.dproj"/> + </Target> + <Target Name="DclIOIBX:Clean"> + <MSBuild Targets="Clean" Projects="..\..\Brokers\IBX\D2010\DclIOIBX.dproj"/> + </Target> + <Target Name="DclIOIBX:Make"> + <MSBuild Targets="Make" Projects="..\..\Brokers\IBX\D2010\DclIOIBX.dproj"/> + </Target> + <Target Name="DclIOXML"> + <MSBuild Projects="..\..\Brokers\XML\D2010\DclIOXML.dproj"/> + </Target> + <Target Name="DclIOXML:Clean"> + <MSBuild Targets="Clean" Projects="..\..\Brokers\XML\D2010\DclIOXML.dproj"/> + </Target> + <Target Name="DclIOXML:Make"> + <MSBuild Targets="Make" Projects="..\..\Brokers\XML\D2010\DclIOXML.dproj"/> + </Target> + <Target Name="Build"> + <CallTarget Targets="DclIOCore;DclIOADO;DclIOBDE;DclIODBX;DclIOIBX;DclIOXML"/> + </Target> + <Target Name="Clean"> + <CallTarget Targets="DclIOCore:Clean;DclIOADO:Clean;DclIOBDE:Clean;DclIODBX:Clean;DclIOIBX:Clean;DclIOXML:Clean"/> + </Target> + <Target Name="Make"> + <CallTarget Targets="DclIOCore:Make;DclIOADO:Make;DclIOBDE:Make;DclIODBX:Make;DclIOIBX:Make;DclIOXML:Make"/> + </Target> + <Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/> + </Project> Property changes on: trunk/Source/PackageGroups/D2010/DesignTimePackages.groupproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/PackageGroups/D2010/RunTimePackages.groupproj =================================================================== --- trunk/Source/PackageGroups/D2010/RunTimePackages.groupproj (rev 0) +++ trunk/Source/PackageGroups/D2010/RunTimePackages.groupproj 2009-08-26 15:45:12 UTC (rev 866) @@ -0,0 +1,134 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{aa24332a-6806-448c-ab3d-ab0790ceec13}</ProjectGuid> + </PropertyGroup> + <ItemGroup> + <Projects Include="..\..\Core\D2010\IOCore.dproj"> + <Dependencies/> + </Projects> + <Projects Include="..\..\Catalogs\IBFb\D2010\IOIBFbCatalog.dproj"> + <Dependencies/> + </Projects> + <Projects Include="..\..\Catalogs\MSSql\D2010\IOMSSqlCatalog.dproj"> + <Dependencies/> + </Projects> + <Projects Include="..\..\Catalogs\MySQL\D2010\IOMySQLCatalog.dproj"> + <Dependencies/> + </Projects> + <Projects Include="..\..\Brokers\ADO\D2010\IOADO.dproj"> + <Dependencies/> + </Projects> + <Projects Include="..\..\Brokers\BDE\D2010\IOBDE.dproj"> + <Dependencies/> + </Projects> + <Projects Include="..\..\Brokers\DBX\D2010\IODBX.dproj"> + <Dependencies/> + </Projects> + <Projects Include="..\..\Brokers\IBX\D2010\IOIBX.dproj"> + <Dependencies/> + </Projects> + <Projects Include="..\..\Brokers\XML\D2010\IOXML.dproj"> + <Dependencies/> + </Projects> + </ItemGroup> + <ProjectExtensions> + <Borland.Personality>Default.Personality.12</Borland.Personality> + <Borland.ProjectType/> + <BorlandProject> + <BorlandProject> + <Default.Personality/> + </BorlandProject> + </BorlandProject> + </ProjectExtensions> + <Target Name="IOCore"> + <MSBuild Projects="..\..\Core\D2010\IOCore.dproj"/> + </Target> + <Target Name="IOCore:Clean"> + <MSBuild Targets="Clean" Projects="..\..\Core\D2010\IOCore.dproj"/> + </Target> + <Target Name="IOCore:Make"> + <MSBuild Targets="Make" Projects="..\..\Core\D2010\IOCore.dproj"/> + </Target> + <Target Name="IOIBFbCatalog"> + <MSBuild Projects="..\..\Catalogs\IBFb\D2010\IOIBFbCatalog.dproj"/> + </Target> + <Target Name="IOIBFbCatalog:Clean"> + <MSBuild Targets="Clean" Projects="..\..\Catalogs\IBFb\D2010\IOIBFbCatalog.dproj"/> + </Target> + <Target Name="IOIBFbCatalog:Make"> + <MSBuild Targets="Make" Projects="..\..\Catalogs\IBFb\D2010\IOIBFbCatalog.dproj"/> + </Target> + <Target Name="IOMSSqlCatalog"> + <MSBuild Projects="..\..\Catalogs\MSSql\D2010\IOMSSqlCatalog.dproj"/> + </Target> + <Target Name="IOMSSqlCatalog:Clean"> + <MSBuild Targets="Clean" Projects="..\..\Catalogs\MSSql\D2010\IOMSSqlCatalog.dproj"/> + </Target> + <Target Name="IOMSSqlCatalog:Make"> + <MSBuild Targets="Make" Projects="..\..\Catalogs\MSSql\D2010\IOMSSqlCatalog.dproj"/> + </Target> + <Target Name="IOMySQLCatalog"> + <MSBuild Projects="..\..\Catalogs\MySQL\D2010\IOMySQLCatalog.dproj"/> + </Target> + <Target Name="IOMySQLCatalog:Clean"> + <MSBuild Targets="Clean" Projects="..\..\Catalogs\MySQL\D2010\IOMySQLCatalog.dproj"/> + </Target> + <Target Name="IOMySQLCatalog:Make"> + <MSBuild Targets="Make" Projects="..\..\Catalogs\MySQL\D2010\IOMySQLCatalog.dproj"/> + </Target> + <Target Name="IOADO"> + <MSBuild Projects="..\..\Brokers\ADO\D2010\IOADO.dproj"/> + </Target> + <Target Name="IOADO:Clean"> + <MSBuild Targets="Clean" Projects="..\..\Brokers\ADO\D2010\IOADO.dproj"/> + </Target> + <Target Name="IOADO:Make"> + <MSBuild Targets="Make" Projects="..\..\Brokers\ADO\D2010\IOADO.dproj"/> + </Target> + <Target Name="IOBDE"> + <MSBuild Projects="..\..\Brokers\BDE\D2010\IOBDE.dproj"/> + </Target> + <Target Name="IOBDE:Clean"> + <MSBuild Targets="Clean" Projects="..\..\Brokers\BDE\D2010\IOBDE.dproj"/> + </Target> + <Target Name="IOBDE:Make"> + <MSBuild Targets="Make" Projects="..\..\Brokers\BDE\D2010\IOBDE.dproj"/> + </Target> + <Target Name="IODBX"> + <MSBuild Projects="..\..\Brokers\DBX\D2010\IODBX.dproj"/> + </Target> + <Target Name="IODBX:Clean"> + <MSBuild Targets="Clean" Projects="..\..\Brokers\DBX\D2010\IODBX.dproj"/> + </Target> + <Target Name="IODBX:Make"> + <MSBuild Targets="Make" Projects="..\..\Brokers\DBX\D2010\IODBX.dproj"/> + </Target> + <Target Name="IOIBX"> + <MSBuild Projects="..\..\Brokers\IBX\D2010\IOIBX.dproj"/> + </Target> + <Target Name="IOIBX:Clean"> + <MSBuild Targets="Clean" Projects="..\..\Brokers\IBX\D2010\IOIBX.dproj"/> + </Target> + <Target Name="IOIBX:Make"> + <MSBuild Targets="Make" Projects="..\..\Brokers\IBX\D2010\IOIBX.dproj"/> + </Target> + <Target Name="IOXML"> + <MSBuild Projects="..\..\Brokers\XML\D2010\IOXML.dproj"/> + </Target> + <Target Name="IOXML:Clean"> + <MSBuild Targets="Clean" Projects="..\..\Brokers\XML\D2010\IOXML.dproj"/> + </Target> + <Target Name="IOXML:Make"> + <MSBuild Targets="Make" Projects="..\..\Brokers\XML\D2010\IOXML.dproj"/> + </Target> + <Target Name="Build"> + <CallTarget Targets="IOCore;IOIBFbCatalog;IOMSSqlCatalog;IOMySQLCatalog;IOADO;IOBDE;IODBX;IOIBX;IOXML"/> + </Target> + <Target Name="Clean"> + <CallTarget Targets="IOCore:Clean;IOIBFbCatalog:Clean;IOMSSqlCatalog:Clean;IOMySQLCatalog:Clean;IOADO:Clean;IOBDE:Clean;IODBX:Clean;IOIBX:Clean;IOXML:Clean"/> + </Target> + <Target Name="Make"> + <CallTarget Targets="IOCore:Make;IOIBFbCatalog:Make;IOMSSqlCatalog:Make;IOMySQLCatalog:Make;IOADO:Make;IOBDE:Make;IODBX:Make;IOIBX:Make;IOXML:Make"/> + </Target> + <Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/> + </Project> Property changes on: trunk/Source/PackageGroups/D2010/RunTimePackages.groupproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Deleted: trunk/Tests/TestIO_D2010.dpr =================================================================== --- trunk/Tests/TestIO_D2010.dpr 2009-08-26 15:33:19 UTC (rev 865) +++ trunk/Tests/TestIO_D2010.dpr 2009-08-26 15:45:12 UTC (rev 866) @@ -1,68 +0,0 @@ -program TestIO_D2009; - -{$I '..\Source\InstantDefines.inc'} - -{$IFDEF FPC} -{$mode objfpc}{$H+} -{$ENDIF} - -uses - 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', - TestInstantDate in 'TestInstantDate.pas', - TestInstantTime in 'TestInstantTime.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', - MinimalModel in 'MinimalModel.pas', - TestXMLBroker in 'TestXMLBroker.pas', - TestInstantCode in 'TestInstantCode.pas'; - -{$R *.res} -{$R *.mdr} {TestModel} - -begin - Application.Initialize; - InstantModel.ClassMetadatas.Clear; - Application.CreateForm(TGUITestRunner, TestRunner); - //Application.CreateForm(TTestRunner, TestRunner); - Application.Run; -end. - Deleted: trunk/Tests/TestIO_D2010.dproj =================================================================== --- trunk/Tests/TestIO_D2010.dproj 2009-08-26 15:33:19 UTC (rev 865) +++ trunk/Tests/TestIO_D2010.dproj 2009-08-26 15:45:12 UTC (rev 866) @@ -1,159 +0,0 @@ - <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup> - <ProjectGuid>{015d41df-eb42-4172-b75c-3e0f464f00cc}</ProjectGuid> - <MainSource>TestIO_D2009.dpr</MainSource> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> - <DCC_DependencyCheckOutputName>TestIO_D2009.exe</DCC_DependencyCheckOutputName> - <ProjectVersion>12.0</ProjectVersion> - <Config Condition="'$(Config)'==''">Debug</Config> - </PropertyGroup> - <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> - <Base>true</Base> - </PropertyGroup> - <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> - <Cfg_1>true</Cfg_1> - <CfgParent>Base</CfgParent> - <Base>true</Base> - </PropertyGroup> - <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> - <Cfg_2>true</Cfg_2> - <CfgParent>Base</CfgParent> - <Base>true</Base> - </PropertyGroup> - <PropertyGroup Condition="'$(Base)'!=''"> - <DCC_UnitSearchPath>..\Source\Core;..\Source\Brokers\XML;.\ubmock\src;.\DUnit\src;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> - <DCC_DebugDCUs>true</DCC_DebugDCUs> - <DCC_DependencyCheckOutputName>TestIO_D2009.exe</DCC_DependencyCheckOutputName> - </PropertyGroup> - <PropertyGroup Condition="'$(Cfg_1)'!=''"> - <Version>7.0</Version> - <DCC_DebugInformation>False</DCC_DebugInformation> - <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> - <DCC_Optimize>False</DCC_Optimize> - <DCC_TypedAtParameter>True</DCC_TypedAtParameter> - <DCC_GenerateStackFrames>True</DCC_GenerateStackFrames> - <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> - <DCC_ResourcePath>..\Source\Core;.\ubmock\src;$(DCC_ResourcePath)</DCC_ResourcePath> - <DCC_ObjPath>..\Source\Core;.\ubmock\src;$(DCC_ObjPath)</DCC_ObjPath> - <DCC_IncludePath>..\Source\Core;.\ubmock\src;$(DCC_IncludePath)</DCC_IncludePath> - <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> - </PropertyGroup> - <PropertyGroup Condition="'$(Cfg_2)'!=''"> - <Version>7.0</Version> - <DCC_Optimize>False</DCC_Optimize> - <DCC_TypedAtParameter>True</DCC_TypedAtParameter> - <DCC_GenerateStackFrames>True</DCC_GenerateStackFrames> - <DCC_ResourcePath>..\Source\Core;.\ubmock\src;$(DCC_ResourcePath)</DCC_ResourcePath> - <DCC_ObjPath>..\Source\Core;.\ubmock\src;$(DCC_ObjPath)</DCC_ObjPath> - <DCC_IncludePath>..\Source\Core;.\ubmock\src;$(DCC_IncludePath)</DCC_IncludePath> - <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> - </PropertyGroup> - <ItemGroup> - <DelphiCompile Include="TestIO_D2009.dpr"> - <MainSource>MainSource</MainSource> - </DelphiCompile> - <DCCReference Include="InstantMock.pas"/> - <DCCReference Include="TestMockConnector.pas"/> - <DCCReference Include="TestMockBroker.pas"/> - <DCCReference Include="TestModel.pas"/> - <DCCReference Include="TestInstantMetadata.pas"/> - <DCCReference Include="TestInstantFieldMetadata.pas"/> - <DCCReference Include="TestInstantClassMetadata.pas"/> - <DCCReference Include="TestInstantAttributeMetadata.pas"/> - <DCCReference Include="TestInstantIndexMetadata.pas"/> - <DCCReference Include="TestInstantTableMetadata.pas"/> - <DCCReference Include="TestInstantScheme.pas"/> - <DCCReference Include="TestInstantClasses.pas"/> - <DCCReference Include="TestInstantRtti.pas"/> - <DCCReference Include="TestMinimalModel.pas"/> - <DCCReference Include="TestInstantAttributeMap.pas"/> - <DCCReference Include="TestInstantAttribute.pas"/> - <DCCReference Include="TestInstantNumeric.pas"/> - <DCCReference Include="TestInstantInteger.pas"/> - <DCCReference Include="TestInstantString.pas"/> - <DCCReference Include="TestInstantDateTime.pas"/> - <DCCReference Include="TestInstantDate.pas"/> - <DCCReference Include="TestInstantTime.pas"/> - <DCCReference Include="TestInstantBoolean.pas"/> - <DCCReference Include="TestInstantFloat.pas"/> - <DCCReference Include="TestInstantCurrency.pas"/> - <DCCReference Include="TestInstantBlob.pas"/> - <DCCReference Include="TestInstantComplex.pas"/> - <DCCReference Include="TestInstantPart.pas"/> - <DCCReference Include="TestInstantReference.pas"/> - <DCCReference Include="TestInstantObject.pas"/> - <DCCReference Include="TestInstantObjectState.pas"/> - <DCCReference Include="TestInstantCache.pas"/> - <DCCReference Include="TestInstantObjectStore.pas"/> - <DCCReference Include="TestInstantParts.pas"/> - <DCCReference Include="TestInstantReferences.pas"/> - <DCCReference Include="TestInstantCircularReferences.pas"/> - <DCCReference Include="TestInstantObjectReference.pas"/> - <DCCReference Include="MinimalModel.pas"/> - <DCCReference Include="TestXMLBroker.pas"/> - <DCCReference Include="TestInstantCode.pas"/> - <BuildConfiguration Include="Base"> - <Key>Base</Key> - </BuildConfiguration> - <BuildConfiguration Include="Debug"> - <Key>Cfg_2</Key> - <CfgParent>Base</CfgParent> - </BuildConfiguration> - <BuildConfiguration Include="Release"> - <Key>Cfg_1</Key> - <CfgParent>Base</CfgParent> - </BuildConfiguration> - </ItemGroup> - <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> - <ProjectExtensions> - <Borland.Personality>Delphi.Personality.12</Borland.Personality> - <Borland.ProjectType>VCLApplication</Borland.ProjectType> - <BorlandProject> - <Delphi.Personality> - <Compiler> - <Compiler Name="UsePackages">False</Compiler> - <Compiler 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</Compiler> - </Compiler> - <Parameters> - <Parameters Name="DebugSourceDirs">..\Source\Core</Parameters> - <Parameters Name="UseLauncher">False</Parameters> - <Parameters Name="LoadAllSymbols">True</Parameters> - <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> - </Parameters> - <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 Name="FileDescription"/> - <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> - <VersionInfoKeys Name="InternalName"/> - <VersionInfoKeys Name="LegalCopyright"/> - <VersionInfoKeys Name="LegalTrademarks"/> - <VersionInfoKeys Name="OriginalFilename"/> - <VersionInfoKeys Name="ProductName"/> - <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> - <VersionInfoKeys Name="Comments"/> - </VersionInfoKeys> - <Source> - <Source Name="MainSource">TestIO_D2009.dpr</Source> - </Source> - </Delphi.Personality> - </BorlandProject> - <ProjectFileVersion>12</ProjectFileVersion> - </ProjectExtensions> - </Project> Deleted: trunk/Tests/TestIO_D2010.res =================================================================== (Binary files differ) |
From: <na...@us...> - 2009-08-28 07:35:05
|
Revision: 867 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=867&view=rev Author: nandod Date: 2009-08-28 07:34:57 +0000 (Fri, 28 Aug 2009) Log Message: ----------- * Fixed: ORDER BY was only working correctly under the default connector in XML broker. Test case added. * Fixed: XML broker didn't catch up totally with new XML pretty formatting. Modified Paths: -------------- trunk/Source/Brokers/XML/InstantXML.pas trunk/Tests/TestXMLBroker.pas Modified: trunk/Source/Brokers/XML/InstantXML.pas =================================================================== --- trunk/Source/Brokers/XML/InstantXML.pas 2009-08-26 15:45:12 UTC (rev 866) +++ trunk/Source/Brokers/XML/InstantXML.pas 2009-08-28 07:34:57 UTC (rev 867) @@ -325,8 +325,8 @@ implementation uses - SysUtils, InstantConsts, InstantClasses, TypInfo, InstantXMLCatalog, - InstantXMLConnectionDefEdit, InstantUtils, + SysUtils, InstantConsts, InstantClasses, + TypInfo, InstantXMLCatalog, InstantXMLConnectionDefEdit, InstantUtils, {$IFDEF MSWINDOWS} {$IFNDEF D6+} FileCtrl, @@ -421,6 +421,14 @@ Result := StrToIntDef(S, 0); end; +function GetXMLLineBreak: string; +begin + if InstantXMLIndentationSize > 0 then + Result := sLineBreak + else + Result := ''; +end; + { TInstantXMLConnectionDef } class function TInstantXMLConnectionDef.ConnectionTypeName: string; @@ -1055,12 +1063,12 @@ P := (L + R) shr 1; repeat while Compare(nil, - TInstantObjectReference(List[I]).Dereference, - TInstantObjectReference(List[P]).Dereference) < 0 do + TInstantObjectReference(List[I]).Dereference(Connector), + TInstantObjectReference(List[P]).Dereference(Connector)) < 0 do Inc(I); while Compare(nil, - TInstantObjectReference(List[J]).Dereference, - TInstantObjectReference(List[P]).Dereference) > 0 do + TInstantObjectReference(List[J]).Dereference(Connector), + TInstantObjectReference(List[P]).Dereference(Connector)) > 0 do Dec(J); if I <= J then begin @@ -1140,7 +1148,7 @@ strstream := TStringStream.Create('', TEncoding.UTF8); try InstantWriteObject(strStream, sfXML, AObject); - DataStr := XML_UTF8_HEADER + UTF8String(strStream.DataString); + DataStr := XML_UTF8_HEADER + UTF8String(GetXMLLineBreak) + UTF8String(strStream.DataString); finally strStream.Free; end; @@ -1164,9 +1172,9 @@ InstantWriteObject(strStream, sfXML, AObject); {$IFDEF D6+} if FXMLFileFormat = xffUtf8 then - DataStr := AnsiToUtf8(XML_UTF8_HEADER + strStream.DataString) + DataStr := AnsiToUtf8(XML_UTF8_HEADER + GetXMLLineBreak + strStream.DataString) else - DataStr := XML_ISO_HEADER + strStream.DataString; + DataStr := XML_ISO_HEADER + GetXMLLineBreak + strStream.DataString; {$ELSE} DataStr := strStream.DataString; {$ENDIF} Modified: trunk/Tests/TestXMLBroker.pas =================================================================== --- trunk/Tests/TestXMLBroker.pas 2009-08-26 15:45:12 UTC (rev 866) +++ trunk/Tests/TestXMLBroker.pas 2009-08-28 07:34:57 UTC (rev 867) @@ -45,19 +45,21 @@ procedure TearDown; override; published procedure TestStoreAndRetrieveContact; + procedure TestOrderBy; end; implementation uses - SysUtils, InstantPersistence, TestModel; + SysUtils, ShellAPI, InstantPersistence, TestModel; { TTestXMLBroker } procedure TTestXMLBroker.SetUp; begin FAcc := TXMLFilesAccessor.Create(nil); - FAcc.RootFolder := ExtractFilePath(ParamStr(0)); + FAcc.RootFolder := ExtractFilePath(ParamStr(0)) + 'XMLDB'; + ForceDirectories(FAcc.RootFolder); FConn := TInstantXMLConnector.Create(nil); FConn.Connection := FAcc; @@ -67,13 +69,99 @@ end; procedure TTestXMLBroker.TearDown; + + function DelTree(DirName: string): Boolean; + var + SHFileOpStruct : TSHFileOpStruct; + begin + try + Fillchar(SHFileOpStruct,Sizeof(SHFileOpStruct),0) ; + with SHFileOpStruct do begin + Wnd := 0; + pFrom := PChar(ExcludeTrailingPathDelimiter(DirName) + #0); + wFunc := FO_DELETE; + fFlags := FOF_ALLOWUNDO; + fFlags := fFlags or FOF_NOCONFIRMATION; + fFlags := fFlags or FOF_SILENT; + end; + Result := (SHFileOperation(SHFileOpStruct) = 0) ; + except + Result := False; + end; + end; + begin inherited; InstantModel.ClassMetadatas.Clear; FreeAndNil(FConn); + DelTree(FAcc.RootFolder); FreeAndNil(FAcc); end; +procedure TTestXMLBroker.TestOrderBy; +var + c1, c2: TContact; + t: TPhone; + LQuery: TInstantQuery; +begin + FConn.IsDefault := True; + + c1 := TContact.Create; + try + c1.Name := 'ZZTop'; + c1.Address.City := 'Dallas'; + t := TPhone.Create; + t.Name := 'Home'; + t.Number := '012 12345678'; + c1.AddPhone(t); + AssertEquals(1, c1.PhoneCount); + t := TPhone.Create; + t.Name := 'Office'; + t.Number := '012 23456781'; + c1.AddPhone(t); + AssertEquals(2, c1.PhoneCount); + c1.Store; + finally + FreeAndNil(c1); + end; + + c2 := TContact.Create; + try + c2.Name := 'Aaronson'; + c2.Address.City := 'Las Vegas'; + t := TPhone.Create; + t.Name := 'Home'; + t.Number := '012 12345678'; + c2.AddPhone(t); + AssertEquals(1, c2.PhoneCount); + t := TPhone.Create; + t.Name := 'Office'; + t.Number := '012 23456781'; + c2.AddPhone(t); + AssertEquals(2, c2.PhoneCount); + c2.Store; + finally + FreeAndNil(c2); + end; + + LQuery := InstantDefaultConnector.CreateQuery; + try + LQuery.Command := 'select * from TContact order by Name'; + LQuery.Open; + AssertEquals(LQuery.ObjectCount, 2); + AssertEquals((LQuery.Objects[0] as TContact).Name, 'Aaronson'); + LQuery.Close; + + LQuery.Command := 'select * from TContact order by Name desc'; + LQuery.Open; + AssertEquals(LQuery.ObjectCount, 2); + AssertEquals((LQuery.Objects[0] as TContact).Name, 'ZZTop'); + LQuery.Close; + finally + FreeAndNil(LQuery); + end; +end; + procedure TTestXMLBroker.TestStoreAndRetrieveContact; const DEF_NAME = 'Mike Art\xF9'; |
From: <na...@us...> - 2009-08-29 07:58:11
|
Revision: 869 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=869&view=rev Author: nandod Date: 2009-08-29 07:57:59 +0000 (Sat, 29 Aug 2009) Log Message: ----------- * Fixed regression: XML object output was not encoding entities such as " correctly. TestIO updated. Modified Paths: -------------- trunk/Source/Core/InstantClasses.pas trunk/Tests/TestXMLBroker.pas Modified: trunk/Source/Core/InstantClasses.pas =================================================================== --- trunk/Source/Core/InstantClasses.pas 2009-08-28 07:36:34 UTC (rev 868) +++ trunk/Source/Core/InstantClasses.pas 2009-08-29 07:57:59 UTC (rev 869) @@ -1470,7 +1470,7 @@ Esc := 'gt'; end; Esc := Format(EscStr, [Esc]); - LString := LString + EscStr; + LString := LString + Esc; end else LString := LString + C; Modified: trunk/Tests/TestXMLBroker.pas =================================================================== --- trunk/Tests/TestXMLBroker.pas 2009-08-28 07:36:34 UTC (rev 868) +++ trunk/Tests/TestXMLBroker.pas 2009-08-29 07:57:59 UTC (rev 869) @@ -164,7 +164,7 @@ procedure TTestXMLBroker.TestStoreAndRetrieveContact; const - DEF_NAME = 'Mike Art\xF9'; + DEF_NAME = 'Mike "Art\xF9"'; DEF_CITY = 'Milan (\x80)'; var c: TContact; @@ -196,8 +196,8 @@ try AssertNotNull('Object not retrieved', c); AssertEquals(old_id, c.Id); - AssertEquals(c.Name, DEF_NAME); - AssertEquals(c.Address.City, DEF_CITY); + AssertEquals(DEF_NAME, c.Name); + AssertEquals(DEF_CITY, c.Address.City); AssertNotNull(c.Address); AssertEquals(2, c.PhoneCount); finally |
From: <na...@us...> - 2010-09-11 16:27:57
|
Revision: 901 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=901&view=rev Author: nandod Date: 2010-09-11 16:27:50 +0000 (Sat, 11 Sep 2010) Log Message: ----------- * svn:ignore set. * Small change to XML test. Modified Paths: -------------- trunk/Tests/TestXMLBroker.pas Added Paths: ----------- trunk/Tests/XMLDB/ Property Changed: ---------------- trunk/Source/Brokers/DBX/D2010/ trunk/Source/Brokers/IBX/D2010/ trunk/Source/Brokers/XML/D2010/ trunk/Source/Core/D2010/ Property changes on: trunk/Source/Brokers/DBX/D2010 ___________________________________________________________________ Modified: svn:ignore - *.dcu *.local + *.dcu *.local *.identcache Property changes on: trunk/Source/Brokers/IBX/D2010 ___________________________________________________________________ Modified: svn:ignore - *.local *.dcu + *.local *.dcu *.identcache Property changes on: trunk/Source/Brokers/XML/D2010 ___________________________________________________________________ Modified: svn:ignore - *.dcu *.local + *.dcu *.local *.identcache Property changes on: trunk/Source/Core/D2010 ___________________________________________________________________ Modified: svn:ignore - *.dcu *.local *.identcache + *.dcu *.local *.identcache __history Modified: trunk/Tests/TestXMLBroker.pas =================================================================== --- trunk/Tests/TestXMLBroker.pas 2010-08-12 19:20:19 UTC (rev 900) +++ trunk/Tests/TestXMLBroker.pas 2010-09-11 16:27:50 UTC (rev 901) @@ -164,7 +164,7 @@ procedure TTestXMLBroker.TestStoreAndRetrieveContact; const - DEF_NAME = 'Mike "Art\xF9"'; + DEF_NAME = 'Mike ''Art\xF9'''; DEF_CITY = 'Milan (\x80)'; var c: TContact; |
From: <dav...@us...> - 2010-09-15 02:55:48
|
Revision: 913 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=913&view=rev Author: davidvtaylor Date: 2010-09-15 02:55:41 +0000 (Wed, 15 Sep 2010) Log Message: ----------- * Fix deprecation warnings in the TestIO unit test runner when compiled with Delphi XE + Add Delphi XE specific version of TestIO (Delphi XE uses a new project file version) Modified Paths: -------------- trunk/Source/PackageGroups/D2011/CorePackages.groupproj trunk/Tests/TestInstantClasses.pas trunk/Tests/TestInstantCurrency.pas trunk/Tests/TestInstantFloat.pas trunk/Tests/TestInstantNumeric.pas trunk/Tests/TestInstantRtti.pas trunk/Tests/TestInstantString.pas Added Paths: ----------- trunk/Tests/TestIO_D2011.dpr trunk/Tests/TestIO_D2011.res Modified: trunk/Source/PackageGroups/D2011/CorePackages.groupproj =================================================================== --- trunk/Source/PackageGroups/D2011/CorePackages.groupproj 2010-09-15 02:38:52 UTC (rev 912) +++ trunk/Source/PackageGroups/D2011/CorePackages.groupproj 2010-09-15 02:55:41 UTC (rev 913) @@ -21,7 +21,7 @@ <Projects Include="..\..\Brokers\XML\D2011\DclIOXML.dproj"> <Dependencies/> </Projects> - <Projects Include="..\..\..\Tests\TestIO_D2009.dproj"> + <Projects Include="..\..\..\Tests\TestIO_D2011.dproj"> <Dependencies/> </Projects> </ItemGroup> @@ -86,23 +86,23 @@ <Target Name="DclIOXML:Make"> <MSBuild Targets="Make" Projects="..\..\Brokers\XML\D2011\DclIOXML.dproj"/> </Target> - <Target Name="TestIO_D2009"> - <MSBuild Projects="..\..\..\Tests\TestIO_D2009.dproj"/> + <Target Name="TestIO_D2011"> + <MSBuild Projects="..\..\..\Tests\TestIO_D2011.dproj"/> </Target> - <Target Name="TestIO_D2009:Clean"> - <MSBuild Targets="Clean" Projects="..\..\..\Tests\TestIO_D2009.dproj"/> + <Target Name="TestIO_D2011:Clean"> + <MSBuild Targets="Clean" Projects="..\..\..\Tests\TestIO_D2011.dproj"/> </Target> - <Target Name="TestIO_D2009:Make"> - <MSBuild Targets="Make" Projects="..\..\..\Tests\TestIO_D2009.dproj"/> + <Target Name="TestIO_D2011:Make"> + <MSBuild Targets="Make" Projects="..\..\..\Tests\TestIO_D2011.dproj"/> </Target> <Target Name="Build"> - <CallTarget Targets="IOCore;DclIOCore;IOBDE;DclIOBDE;IOXML;DclIOXML;TestIO_D2009"/> + <CallTarget Targets="IOCore;DclIOCore;IOBDE;DclIOBDE;IOXML;DclIOXML;TestIO_D2011"/> </Target> <Target Name="Clean"> - <CallTarget Targets="IOCore:Clean;DclIOCore:Clean;IOBDE:Clean;DclIOBDE:Clean;IOXML:Clean;DclIOXML:Clean;TestIO_D2009:Clean"/> + <CallTarget Targets="IOCore:Clean;DclIOCore:Clean;IOBDE:Clean;DclIOBDE:Clean;IOXML:Clean;DclIOXML:Clean;TestIO_D2011:Clean"/> </Target> <Target Name="Make"> - <CallTarget Targets="IOCore:Make;DclIOCore:Make;IOBDE:Make;DclIOBDE:Make;IOXML:Make;DclIOXML:Make;TestIO_D2009:Make"/> + <CallTarget Targets="IOCore:Make;DclIOCore:Make;IOBDE:Make;DclIOBDE:Make;IOXML:Make;DclIOXML:Make;TestIO_D2011:Make"/> </Target> <Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/> </Project> Added: trunk/Tests/TestIO_D2011.dpr =================================================================== --- trunk/Tests/TestIO_D2011.dpr (rev 0) +++ trunk/Tests/TestIO_D2011.dpr 2010-09-15 02:55:41 UTC (rev 913) @@ -0,0 +1,68 @@ +program TestIO_D2011; + +{$I '..\Source\InstantDefines.inc'} + +{$IFDEF FPC} +{$mode objfpc}{$H+} +{$ENDIF} + +uses + 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', + TestInstantDate in 'TestInstantDate.pas', + TestInstantTime in 'TestInstantTime.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', + MinimalModel in 'MinimalModel.pas', + TestXMLBroker in 'TestXMLBroker.pas', + TestInstantCode in 'TestInstantCode.pas'; + +{$R *.res} +{$R *.mdr} {TestModel} + +begin + Application.Initialize; + InstantModel.ClassMetadatas.Clear; + Application.CreateForm(TGUITestRunner, TestRunner); + //Application.CreateForm(TTestRunner, TestRunner); + Application.Run; +end. + Property changes on: trunk/Tests/TestIO_D2011.dpr ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/Tests/TestIO_D2011.res =================================================================== (Binary files differ) Property changes on: trunk/Tests/TestIO_D2011.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/Tests/TestInstantClasses.pas =================================================================== --- trunk/Tests/TestInstantClasses.pas 2010-09-15 02:38:52 UTC (rev 912) +++ trunk/Tests/TestInstantClasses.pas 2010-09-15 02:55:41 UTC (rev 913) @@ -30,6 +30,12 @@ unit TestInstantClasses; +{$IFDEF LINUX} +{$I '../../InstantDefines.inc'} +{$ELSE} +{$I '..\..\InstantDefines.inc'} +{$ENDIF} + interface uses @@ -400,7 +406,8 @@ AssertEquals('TInstantGuineaPig', ic.Reader.ReadStr); //la stringa con il classname c.ConvertToText(ic); ic.Producer.eof; //to flush the buffer - AssertEquals('ConvertToText', '<Age>2</Age>' + LLineBreak + '<Weight>1' + DecimalSeparator + + AssertEquals('ConvertToText', '<Age>2</Age>' + LLineBreak + '<Weight>1' + + {$IFDEF D15+}FormatSettings.{$ENDIF}DecimalSeparator + '123</Weight>' + LLineBreak + '<PigName>Miss piggy</PigName>' + LLineBreak, outs.DataString); finally ic.Free; @@ -420,7 +427,8 @@ InstantObjectBinaryToText(ins, outs); AssertEquals('InstantObjectBinaryToText', '<TInstantGuineaPig>' + LLineBreak + LIndentation + '<Age>2</Age>' + LLineBreak + LIndentation + - '<Weight>1' + DecimalSeparator + '123</Weight>' + LLineBreak + LIndentation + + '<Weight>1' + {$IFDEF D15+}FormatSettings.{$ENDIF}DecimalSeparator + + '123</Weight>' + LLineBreak + LIndentation + '<PigName>Miss piggy</PigName>' + LLineBreak + '</TInstantGuineaPig>' + LLineBreak, outs.DataString); finally @@ -454,7 +462,8 @@ AssertEquals('InstantWriteObject(sfXML)', '<TInstantGuineaPig>' + LLineBreak + LIndentation + '<Age>2</Age>' + LLineBreak + LIndentation + - '<Weight>1' + DecimalSeparator + '123</Weight>' + LLineBreak + LIndentation + + '<Weight>1' + {$IFDEF D15+}FormatSettings.{$ENDIF}DecimalSeparator + + '123</Weight>' + LLineBreak + LIndentation + '<PigName>Miss piggy</PigName>' + LLineBreak + '</TInstantGuineaPig>' + LLineBreak, ms.DataString); finally Modified: trunk/Tests/TestInstantCurrency.pas =================================================================== --- trunk/Tests/TestInstantCurrency.pas 2010-09-15 02:38:52 UTC (rev 912) +++ trunk/Tests/TestInstantCurrency.pas 2010-09-15 02:55:41 UTC (rev 913) @@ -30,6 +30,12 @@ unit TestInstantCurrency; +{$IFDEF LINUX} +{$I '../../InstantDefines.inc'} +{$ELSE} +{$I '..\..\InstantDefines.inc'} +{$ENDIF} + interface uses fpcunit, InstantPersistence, InstantMock, TestModel; @@ -128,9 +134,11 @@ procedure TestTInstantCurrency.TestAsString; begin - FInstantCurrency.AsString := '15' + DecimalSeparator + '7'; + FInstantCurrency.AsString := '15' + + {$IFDEF D15+}FormatSettings.{$ENDIF}DecimalSeparator + '7'; AssertEquals(15.7, FInstantCurrency.Value); - AssertEquals('15' + DecimalSeparator + '7', FInstantCurrency.AsString); + AssertEquals('15' + {$IFDEF D15+}FormatSettings.{$ENDIF}DecimalSeparator + + '7', FInstantCurrency.AsString); end; procedure TestTInstantCurrency.TestAsVariant; @@ -147,7 +155,8 @@ FInstantCurrency.Reset; AssertEquals(1.3, FInstantCurrency.Value); - FInstantCurrency.Metadata.DefaultValue := '15' + DecimalSeparator + '7'; + FInstantCurrency.Metadata.DefaultValue := '15' + + {$IFDEF D15+}FormatSettings.{$ENDIF}DecimalSeparator + '7'; FInstantCurrency.Reset; AssertEquals(15.7, FInstantCurrency.Value); Modified: trunk/Tests/TestInstantFloat.pas =================================================================== --- trunk/Tests/TestInstantFloat.pas 2010-09-15 02:38:52 UTC (rev 912) +++ trunk/Tests/TestInstantFloat.pas 2010-09-15 02:55:41 UTC (rev 913) @@ -30,6 +30,12 @@ unit TestInstantFloat; +{$IFDEF LINUX} +{$I '../../InstantDefines.inc'} +{$ELSE} +{$I '..\..\InstantDefines.inc'} +{$ENDIF} + interface uses fpcunit, InstantPersistence, InstantMock, TestModel; @@ -123,9 +129,11 @@ procedure TestTInstantFloat.TestAsString; begin - FInstantFloat.AsString := '1' + DecimalSeparator + '3'; + FInstantFloat.AsString := '1' + + {$IFDEF D15+}FormatSettings.{$ENDIF}DecimalSeparator + '3'; AssertEquals(1.3, FInstantFloat.Value); - AssertEquals('1' + DecimalSeparator + '3', FInstantFloat.AsString); + AssertEquals('1' + {$IFDEF D15+}FormatSettings.{$ENDIF}DecimalSeparator + + '3', FInstantFloat.AsString); end; procedure TestTInstantFloat.TestAsVariant; @@ -142,7 +150,8 @@ FInstantFloat.Reset; AssertEquals(1.3, FInstantFloat.Value); - FInstantFloat.Metadata.DefaultValue := '15' + DecimalSeparator + '7'; + FInstantFloat.Metadata.DefaultValue := '15' + + {$IFDEF D15+}FormatSettings.{$ENDIF}DecimalSeparator + '7'; FInstantFloat.Reset; AssertEquals(15.7, FInstantFloat.Value); Modified: trunk/Tests/TestInstantNumeric.pas =================================================================== --- trunk/Tests/TestInstantNumeric.pas 2010-09-15 02:38:52 UTC (rev 912) +++ trunk/Tests/TestInstantNumeric.pas 2010-09-15 02:55:41 UTC (rev 913) @@ -30,6 +30,12 @@ unit TestInstantNumeric; +{$IFDEF LINUX} +{$I '../../InstantDefines.inc'} +{$ELSE} +{$I '..\..\InstantDefines.inc'} +{$ENDIF} + interface uses fpcunit, InstantPersistence, InstantMock, TestModel; @@ -134,7 +140,8 @@ FInstantNumeric.Value := 1000; FInstantNumeric.Metadata.EditMask := '#,000'; //EditMask don't use ThousandSeparator var - AssertEquals('1' + ThousandSeparator + '000', FInstantNumeric.DisplayText); + AssertEquals('1' + {$IFDEF D15+}FormatSettings.{$ENDIF}ThousandSeparator + + '000', FInstantNumeric.DisplayText); end; procedure TestTInstantNumeric.TestIsDefault; Modified: trunk/Tests/TestInstantRtti.pas =================================================================== --- trunk/Tests/TestInstantRtti.pas 2010-09-15 02:38:52 UTC (rev 912) +++ trunk/Tests/TestInstantRtti.pas 2010-09-15 02:55:41 UTC (rev 913) @@ -30,6 +30,12 @@ unit TestInstantRtti; +{$IFDEF LINUX} +{$I '../../InstantDefines.inc'} +{$ELSE} +{$I '..\..\InstantDefines.inc'} +{$ENDIF} + interface uses @@ -190,8 +196,8 @@ var ds, ts : string; begin - ds := DateSeparator; - ts := TimeSeparator; + ds := {$IFDEF D15+}FormatSettings.{$ENDIF}DateSeparator; + ts := {$IFDEF D15+}FormatSettings.{$ENDIF}TimeSeparator; AssertEquals('123', FormatMaskText('###','1234')); AssertEquals('(123)_ - ', FormatMaskText('(000)_000-0000;0;*','123')); @@ -209,7 +215,7 @@ AssertEquals('13'+ds+'02'+ds+'95',FormatMaskText('!99/99/00;0;','130295')); AssertEquals('13'+ds+'02'+ds+'1995',FormatMaskText('!99/99/\1\900;0;','130295')); AssertEquals('13 Gen 1995',FormatMaskText('!99 >L<LL \1\900;0;','13Gen95')); - AssertEquals('21'+ts+'05'+TimeSeparator+'15',FormatMaskText('!90:00:00;0;','210515')); + AssertEquals('21'+ts+'05'+{$IFDEF D15+}FormatSettings.{$ENDIF}TimeSeparator+'15',FormatMaskText('!90:00:00;0;','210515')); AssertEquals('13'+ts+'45',FormatMaskText('!90:00;0;','1345')); end; Modified: trunk/Tests/TestInstantString.pas =================================================================== --- trunk/Tests/TestInstantString.pas 2010-09-15 02:38:52 UTC (rev 912) +++ trunk/Tests/TestInstantString.pas 2010-09-15 02:55:41 UTC (rev 913) @@ -30,6 +30,12 @@ unit TestInstantString; +{$IFDEF LINUX} +{$I '../../InstantDefines.inc'} +{$ELSE} +{$I '..\..\InstantDefines.inc'} +{$ENDIF} + interface uses fpcunit, InstantPersistence, InstantMock, TestModel; @@ -104,7 +110,8 @@ begin vCurr := 23.45; FInstantString.AsCurrency := vCurr; - AssertEquals('23' + DecimalSeparator + '45', FInstantString.Value); + AssertEquals('23' + {$IFDEF D15+}FormatSettings.{$ENDIF}DecimalSeparator + + '45', FInstantString.Value); AssertEquals(vCurr, FInstantString.AsCurrency); end; @@ -118,7 +125,8 @@ procedure TestTInstantString.TestAsFloat; begin FInstantString.AsFloat := 89.45; - AssertEquals('89' + DecimalSeparator + '45', FInstantString.Value); + AssertEquals('89' + {$IFDEF D15+}FormatSettings.{$ENDIF}DecimalSeparator + + '45', FInstantString.Value); AssertEquals(89.45, FInstantString.AsFloat); end; |
From: <na...@us...> - 2010-09-16 10:28:44
|
Revision: 918 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=918&view=rev Author: nandod Date: 2010-09-16 10:28:36 +0000 (Thu, 16 Sep 2010) Log Message: ----------- + Burst Load Mode. Includes support in PrimerExternal's Query form. * svn:ignore set. Modified Paths: -------------- trunk/Demos/PrimerCross/QueryView.dfm trunk/Demos/PrimerCross/QueryView.pas trunk/Demos/PrimerCross/RandomData.pas trunk/Source/Brokers/XML/InstantXML.pas trunk/Source/Core/InstantBrokers.pas trunk/Source/Core/InstantClasses.pas trunk/Source/Core/InstantCommand.pas trunk/Source/Core/InstantConsts.pas trunk/Source/Core/InstantPersistence.pas trunk/Source/Core/InstantPresentation.pas trunk/Source/Core/InstantTypes.pas Added Paths: ----------- trunk/Docs/Burst_Load_Modes.txt Property Changed: ---------------- trunk/Source/Brokers/ADO/DXE/ trunk/Source/Brokers/BDE/DXE/ trunk/Source/Brokers/DBX/DXE/ trunk/Source/Brokers/IBX/DXE/ trunk/Source/Brokers/XML/DXE/ trunk/Source/Catalogs/IBFb/DXE/ trunk/Source/Catalogs/MSSql/DXE/ trunk/Source/Catalogs/MySQL/DXE/ trunk/Source/Core/DXE/ trunk/Source/Design/DXE/ Modified: trunk/Demos/PrimerCross/QueryView.dfm =================================================================== --- trunk/Demos/PrimerCross/QueryView.dfm 2010-09-16 10:07:33 UTC (rev 917) +++ trunk/Demos/PrimerCross/QueryView.dfm 2010-09-16 10:28:36 UTC (rev 918) @@ -19,16 +19,16 @@ BorderWidth = 30 TabOrder = 0 object CommandLabel: TLabel - Left = 32 - Top = 16 + Left = 30 + Top = 14 Width = 47 Height = 13 Caption = '&Command' FocusControl = CommandEdit end object ExampleLabel: TLabel - Left = 125 - Top = 124 + Left = 315 + Top = 125 Width = 40 Height = 13 Caption = 'E&xample' @@ -44,6 +44,14 @@ Caption = '&Max Count:' FocusControl = MaxCountEdit end + object Label1: TLabel + Left = 168 + Top = 124 + Width = 26 + Height = 13 + Caption = 'Mode' + FocusControl = LoadModeComboBox + end object CommandEdit: TMemo Left = 30 Top = 30 @@ -61,20 +69,19 @@ object ExecuteButton: TButton Left = 30 Top = 119 - Width = 75 + Width = 59 Height = 25 Action = ExecuteAction - TabOrder = 2 + TabOrder = 1 end object ExampleComboBox: TComboBox - Left = 168 + Left = 361 Top = 121 - Width = 461 + Width = 268 Height = 21 Style = csDropDownList DropDownCount = 12 - ItemHeight = 13 - TabOrder = 1 + TabOrder = 4 OnClick = ExampleComboBoxClick end object MaxCountEdit: TMaskEdit @@ -84,9 +91,31 @@ Height = 21 EditMask = '#########;1; ' MaxLength = 9 - TabOrder = 3 + TabOrder = 5 Text = '0 ' end + object LoadModeComboBox: TComboBox + Left = 202 + Top = 121 + Width = 101 + Height = 21 + Style = csDropDownList + ItemIndex = 0 + TabOrder = 3 + Text = 'Keys First' + Items.Strings = ( + 'Keys First' + 'Full Burst') + end + object FetchAllCheckBox: TCheckBox + Left = 95 + Top = 124 + Width = 58 + Height = 17 + Alignment = taLeftJustify + Caption = 'Fetch All' + TabOrder = 2 + end end object ResultPageControl: TPageControl Left = 0 @@ -131,6 +160,24 @@ TabOrder = 0 end end + object StatsTabSheet: TTabSheet + Caption = 'Stats' + ImageIndex = 2 + object StatsMemo: TMemo + Left = 0 + Top = 0 + Width = 764 + Height = 139 + Align = alClient + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -13 + Font.Name = 'Courier New' + Font.Style = [] + ParentFont = False + TabOrder = 0 + end + end end object TestSelector: TInstantSelector AfterScroll = TestSelectorAfterScroll Modified: trunk/Demos/PrimerCross/QueryView.pas =================================================================== --- trunk/Demos/PrimerCross/QueryView.pas 2010-09-16 10:07:33 UTC (rev 917) +++ trunk/Demos/PrimerCross/QueryView.pas 2010-09-16 10:28:36 UTC (rev 918) @@ -40,6 +40,11 @@ ResultTabSheet: TTabSheet; TranslatedQueryTabSheet: TTabSheet; TranslatedQueryMemo: TMemo; + Label1: TLabel; + LoadModeComboBox: TComboBox; + StatsTabSheet: TTabSheet; + StatsMemo: TMemo; + FetchAllCheckBox: TCheckBox; procedure ExecuteActionExecute(Sender: TObject); procedure ExampleComboBoxClick(Sender: TObject); procedure TestSelectorAfterScroll(DataSet: TDataSet); @@ -63,7 +68,7 @@ {$R *.dfm} uses - InstantPersistence, InstantBrokers, InstantConsts; + InstantPersistence, InstantBrokers, InstantConsts, InstantTypes; const Examples: array[0..11, 0..1] of string = ( @@ -113,16 +118,31 @@ end; procedure TQueryViewForm.ExecuteActionExecute(Sender: TObject); +var + LStartTime: Cardinal; begin -{$IFDEF IO_STATEMENT_LOGGING} - TranslatedQueryMemo.Clear; -{$ENDIF} - with TestSelector do - begin - Close; - TestSelector.MaxCount := StrToInt(Trim(MaxCountEdit.text)); - Command.Text := CommandEdit.Text; - Open; + LStartTime := GetTickCount; + try + TestSelector.RequestedLoadMode := TInstantLoadMode(LoadModeComboBox.ItemIndex); + {$IFDEF IO_STATEMENT_LOGGING} + TranslatedQueryMemo.Clear; + {$ENDIF} + with TestSelector do + begin + Close; + TestSelector.MaxCount := StrToInt(Trim(MaxCountEdit.Text)); + Command.Text := CommandEdit.Text; + Open; + if FetchAllCheckBox.Checked then + while not Eof do + Next; + ResultPageControl.ActivePage := ResultTabSheet; + end; + finally + StatsMemo.Clear; + StatsMemo.Lines.Add('Requested load mode: ' + LoadModeComboBox.Items[Ord(TestSelector.RequestedLoadMode)]); + StatsMemo.Lines.Add('Actual load mode: ' + LoadModeComboBox.Items[Ord(TestSelector.ActualLoadMode)]); + StatsMemo.Lines.Add(Format('Elapsed time: %ns', [(GetTickCount - LStartTime) / 1000.00])); end; end; Modified: trunk/Demos/PrimerCross/RandomData.pas =================================================================== --- trunk/Demos/PrimerCross/RandomData.pas 2010-09-16 10:07:33 UTC (rev 917) +++ trunk/Demos/PrimerCross/RandomData.pas 2010-09-16 10:28:36 UTC (rev 918) @@ -158,6 +158,7 @@ 2: Result := TripletName; end; Result[1] := UpCase(Result[1]); + Result := Result + ' ' + '\x80 \xE0\xF2\xE8 aa' end; function RandomCompanyName: string; @@ -231,7 +232,7 @@ RandomStr(StreetBeginnings) + RandomStr(StreetEndings) + ' ' + RandomStr(StreetTypes) + ' ' + - IntToStr((Random(499) + 1) div (Random(9) + 1) + 1); + IntToStr((Random(499) + 1) div (Random(9) + 1) + 1) + ' ' + '\x80 \xE0\xF2\xE8 aa'; end; function RandomCity: string; Added: trunk/Docs/Burst_Load_Modes.txt =================================================================== --- trunk/Docs/Burst_Load_Modes.txt (rev 0) +++ trunk/Docs/Burst_Load_Modes.txt 2010-09-16 10:28:36 UTC (rev 918) @@ -0,0 +1,73 @@ +Burst Load Mode +Nando Dessena, 14/09/2010 + +What is it +---------- + +Burst Load Mode is an alternative way of retrieving objects in InstantObjects' SQL brokers. This new mode can be selected on a case by case basis by setting the new RequestedLoadMode property of an InstantSelector or InstantQuery to the value lmFullBurst. + +What does it do +--------------- + +When IO retrieves a set of objects through a SQL broker, the order of operations is as follows: +1) Execute a select statement (we'll call it the primary query) that retrieves the primary keys of all objects selected by the IQL command. +2) Fetch all records (up to MaxCount). +3) For each record accessed, materialize the object. This implies executing one or more select statements to get all object data (main object query), containers and references (accessory queries). External storage implies more queries. The main query joins all the tables for the given class and ancestors. + +Burst Load Mode causes these changes: +1) The primary query retrieves all object data, and not just the primary keys. +2) All objects are materialized (up to MaxCount) from the obtained data set; this causes the execution of all accessory and external queries that in the standard case are executed at point 3, minus the main query, which is not needed anymore. + +This means that Burst Load Mode is much quicker when retrieving a dataset, whereas standard mode is best at getting the first records. + +When it is used +--------------- + +Burst Load Mode is well suited for all cases in which objects are selected (typically through an IQL command with a WHERE clause) to be processed. If the entire dataset is going to be fetched and all records visited anyway, then it's much quicker to do it in Burst Load Mode. + +The standard way is more of the "lazy load" kind, and as such it is more suited for when a list of objects is displayed for browsing, typically in a DBGrid, and not all objects are needed but just one or a few are selected to work with. In this case displaying the first records in the grid is much quicker in standard mode. + +Performance notes +----------------- + +Here are some quick benchmarks done with the example queries of PrimerExternal. Operations timed include Open and Last (to ensure full fetching) on a selector. Datasets are small (a couple dozen records). The database is a local Firebird server and the compiler is Delphi 2010. All caches were flushed at each iteration. Three iterations for each test. Times in seconds. + +SELECT * FROM TCompany + +Burst Standard +2.1 3.5 +2.0 3.7 +2.4 3.7 + +SELECT * FROM TPerson + +Burst Standard +4.8 6.7 +4.6 7.0 +4.7 6.8 + +A further test that fetches and materializes many more objects (in the thousands) shows where the gains are in Burst Load Mode. In this test all records are visited and materialized upon opening the selector (Open; while not Eof do Next;): + +SELECT * FROM TCompany + +Burst Standard +54.7 104.0 + +Without the fetches, that is just opening the selector and letting some 20 materialized objects populate the DBGrid, the results are: + +SELECT * FROM TCompany + +Burst Standard +35.0 1.2 + +This tells us that using burst mode when not appropriate can hurt performance, which suggests to keep it disabled by default and only enable it on request (property BurstLoad: Boolean default False). + +Caveats and future improvements +------------------------------- + +- Currently Burst Load Mode is not supported for IQL commands using the ANY keywords. Doing so will require some significant refactorings and was postponed. + +- External atPart and all atReference attributes still need separate queries. It is difficult but not impossible to get them in the first query as well, thus reducing fetch time even more. + +- A mixture of standard and Burst Load Mode looks interesting, and the work done on Burst Load Mode makes it easier to implement it. This mixture would be a standard mode in which one or more specified attributes are fetched as well as the primary keys in the main query. This would allow to display a list of objects in a DBGrid, or other multi-record control, without materializing them, as quickly as whendoing direct SQL queries. Thought should be given to design details such as when where and how to specify the attributes that should be loaded together with the primary key. The value lmPartialBurst is reserved for this. + \ No newline at end of file Property changes on: trunk/Docs/Burst_Load_Modes.txt ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Property changes on: trunk/Source/Brokers/ADO/DXE ___________________________________________________________________ Added: svn:ignore + *.dcu *.local *.identcache Property changes on: trunk/Source/Brokers/BDE/DXE ___________________________________________________________________ Added: svn:ignore + *.dcu *.local *.identcache Property changes on: trunk/Source/Brokers/DBX/DXE ___________________________________________________________________ Added: svn:ignore + *.dcu *.local *.identcache Property changes on: trunk/Source/Brokers/IBX/DXE ___________________________________________________________________ Added: svn:ignore + *.dcu *.local *.identcache Property changes on: trunk/Source/Brokers/XML/DXE ___________________________________________________________________ Added: svn:ignore + *.dcu *.local *.identcache Modified: trunk/Source/Brokers/XML/InstantXML.pas =================================================================== --- trunk/Source/Brokers/XML/InstantXML.pas 2010-09-16 10:07:33 UTC (rev 917) +++ trunk/Source/Brokers/XML/InstantXML.pas 2010-09-16 10:28:36 UTC (rev 918) @@ -43,7 +43,7 @@ uses Classes, DB, Contnrs, InstantPersistence, InstantBrokers, InstantCommand, - InstantMetadata, InstantTypes; + InstantMetadata, InstantTypes, InstantClasses; const XML_UTF8_HEADER = '<?xml version="1.0" encoding="UTF-8"?>'; @@ -193,10 +193,10 @@ TInstantAttributeMap; ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); override; - procedure InternalRetrieveMap(AObject: TInstantObject; const AObjectId: - string; - Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; Info: - PInstantOperationInfo); override; + procedure InternalRetrieveMap(AObject: TInstantObject; + const AObjectId: string; Map: TInstantAttributeMap; + ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo; + const AObjectData: TInstantAbstractObjectData); override; procedure InternalStoreMap(AObject: TInstantObject; Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); @@ -325,7 +325,7 @@ implementation uses - SysUtils, InstantConsts, InstantClasses, + SysUtils, InstantConsts, TypInfo, InstantXMLCatalog, InstantXMLConnectionDefEdit, InstantUtils, {$IFDEF MSWINDOWS} {$IFNDEF D6+} @@ -529,11 +529,13 @@ procedure TInstantXMLResolver.InternalRetrieveMap(AObject: TInstantObject; const AObjectId: string; Map: TInstantAttributeMap; - ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); + ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo; + const AObjectData: TInstantAbstractObjectData); var AInfo: TInstantOperationInfo; LObjectUpdateCount: Integer; begin + // This resolver does not support retrieving from any kind of object data. if not Assigned(Info) then begin Info := @AInfo; Property changes on: trunk/Source/Catalogs/IBFb/DXE ___________________________________________________________________ Added: svn:ignore + *.dcu *.local *.identcache Property changes on: trunk/Source/Catalogs/MSSql/DXE ___________________________________________________________________ Added: svn:ignore + *.dcu *.local *.identcache Property changes on: trunk/Source/Catalogs/MySQL/DXE ___________________________________________________________________ Added: svn:ignore + *.dcu *.local *.identcache Property changes on: trunk/Source/Core/DXE ___________________________________________________________________ Added: svn:ignore + *.dcu *.local *.identcache Modified: trunk/Source/Core/InstantBrokers.pas =================================================================== --- trunk/Source/Core/InstantBrokers.pas 2010-09-16 10:07:33 UTC (rev 917) +++ trunk/Source/Core/InstantBrokers.pas 2010-09-16 10:28:36 UTC (rev 918) @@ -90,11 +90,11 @@ TInstantNavigationalResolverOperation = procedure(AObject: TInstantObject; AttributeMetadata: TInstantAttributeMetadata) of object; - TInstantCustomRelationalBroker = class(TInstantBroker) private FStatementCache: TInstantStatementCache; FStatementCacheCapacity: Integer; + FObjectData: TInstantAbstractObjectData; procedure DisposeMap(AObject: TInstantObject; const AObjectId: string; Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); @@ -113,7 +113,7 @@ protected property StatementCache: TInstantStatementCache read GetStatementCache; function EnsureResolver(Map: TInstantAttributeMap): TInstantCustomResolver; - virtual; abstract; + virtual; abstract; function GetDBMSName: string; virtual; function GetSQLDelimiters: string; virtual; function GetSQLQuote: Char; virtual; @@ -121,8 +121,8 @@ function InternalDisposeObject(AObject: TInstantObject; ConflictAction: TInstantConflictAction): Boolean; override; function InternalRetrieveObject(AObject: TInstantObject; - const AObjectId: string; ConflictAction: TInstantConflictAction): Boolean; - override; + const AObjectId: string; ConflictAction: TInstantConflictAction; + const AObjectData: TInstantAbstractObjectData = nil): Boolean; override; function InternalStoreObject(AObject: TInstantObject; ConflictAction: TInstantConflictAction): Boolean; override; public @@ -262,8 +262,8 @@ Info: PInstantOperationInfo); virtual; procedure InternalRetrieveMap(AObject: TInstantObject; const AObjectId: string; Map: TInstantAttributeMap; - ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); - virtual; + ConflictAction: TInstantConflictAction; AInfo: PInstantOperationInfo; + const AObjectData: TInstantAbstractObjectData = nil); virtual; procedure InternalStoreMap(AObject: TInstantObject; Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); virtual; @@ -280,7 +280,8 @@ TInstantConflictAction); procedure RetrieveMap(AObject: TInstantObject; const AObjectId: string; Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; - Info: PInstantOperationInfo); + Info: PInstantOperationInfo; + const AObjectData: TInstantAbstractObjectData = nil); procedure StoreMap(AObject: TInstantObject; Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); procedure StoreObject(AObject: TInstantObject; Conflict: @@ -350,8 +351,8 @@ Info: PInstantOperationInfo); override; procedure InternalRetrieveMap(AObject: TInstantObject; const AObjectId: string; Map: TInstantAttributeMap; - ConflictAction: TInstantConflictAction; - Info: PInstantOperationInfo); override; + ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo; + const AObjectData: TInstantAbstractObjectData = nil); override; procedure InternalStoreMap(AObject: TInstantObject; Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); @@ -374,8 +375,8 @@ procedure ReadReference(Attribute: TInstantReference); virtual; procedure ReadReferences(Attribute: TInstantReferences); virtual; procedure ReadString(Attribute: TInstantString); virtual; - procedure ResetAttributes(AObject: TInstantObject; - Map: TInstantAttributeMap); + procedure ResetAttributes(const AObject: TInstantObject; + const AMap: TInstantAttributeMap); procedure SetObjectUpdateCount(AObject: TInstantObject; Value: Integer); function TranslateError(AObject: TInstantObject; E: Exception): Exception; virtual; @@ -406,7 +407,7 @@ property TableName: string read FTableName; end; - //Backwards compatibility + // Backward compatibility TInstantResolver = TInstantNavigationalResolver; TInstantSQLResolver = class(TInstantCustomResolver) @@ -444,6 +445,12 @@ function GetSelectExternalPartSQL: string; function GetDeleteExternalSQL: string; function GetInsertExternalSQL: string; + procedure ResetAttributes(const AObject: TInstantObject; + const AMap: TInstantAttributeMap); + procedure RetrieveMapFromDataSet(const AObject: TInstantObject; + const AObjectId: string; const AMap: TInstantAttributeMap; + ConflictAction: TInstantConflictAction; AInfo: PInstantOperationInfo; + const ADataSet: TDataSet); protected procedure AddAttributeParam(Attribute: TInstantAttribute; Params: TParams); virtual; @@ -458,10 +465,10 @@ procedure InternalDisposeMap(AObject: TInstantObject; Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); override; - procedure InternalRetrieveMap(AObject: TInstantObject; + procedure InternalRetrieveMap(AObject: TInstantObject; const AObjectId: string; Map: TInstantAttributeMap; - ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); - override; + ConflictAction: TInstantConflictAction; AInfo: PInstantOperationInfo; + const AObjectData: TInstantAbstractObjectData = nil); override; procedure InternalStoreMap(AObject: TInstantObject; Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); override; @@ -768,7 +775,6 @@ procedure TranslateCommand; override; class function TranslatorClass: TInstantRelationalTranslatorClass; virtual; public - function CreateTranslator: TInstantRelationalTranslator; property Statement: string read GetStatement write SetStatement; property Connector: TInstantRelationalConnector read GetConnector; end; @@ -802,6 +808,8 @@ FTablePathList: TStringList; FParentContext: TInstantTranslationContext; FIdDataType: TInstantDataType; + FRequestedLoadMode: TInstantLoadMode; + FActualLoadMode: TInstantLoadMode; procedure AddJoin(const FromPath, FromField, ToPath, ToField: string); function GetClassTablePath: string; function GetChildContext(const AIndex: Integer): TInstantTranslationContext; @@ -835,16 +843,14 @@ procedure Initialize; procedure MakeJoins(Path: TInstantIQLPath); procedure MakeTablePaths(Path: TInstantIQLPath); - function QuoteString(const Str: string): string; - property CriteriaList: TStringList read GetCriteriaList; property TablePathList: TStringList read GetTablePathList; public constructor Create(const AStatement: TInstantIQLObject; const AQuote: Char; const ADelimiters: string; const AIdDataType: TInstantDataType; + const ARequestedLoadMode: TInstantLoadMode; const AParentContext: TInstantTranslationContext = nil); destructor Destroy; override; - procedure AfterConstruction; override; procedure Clear; function AddChildContext(const AContext: TInstantTranslationContext): Integer; @@ -880,9 +886,19 @@ property TablePathAliases[Index: Integer]: string read GetTablePathAliases; property TablePathCount: Integer read GetTablePathCount; property TablePaths[Index: Integer]: string read GetTablePaths; + function QuoteString(const Str: string): string; + // Use this property to ask for a particular load mode, such as a burst mode + // in which objects are retrieved in batches saving roundtrips to the + // database. Load modes require specific command translation, that's why + // this class is involved. This property is set at creation time. The + // requested mode might not be supported: read ActualLoadMode to know which + // load mode will actually be used for the statement. + property RequestedBurstLoadMode: TInstantLoadMode read FRequestedLoadMode; + // Equals the value of RequestedLoadMode if the mode is supported for the + // particular IQL query. Otherwise it will contain the fallback mode. + property ActualLoadMode: TInstantLoadMode read FActualLoadMode; end; - TInstantRelationalTranslator = class(TInstantQueryTranslator) private FContext: TInstantTranslationContext; @@ -931,7 +947,6 @@ public property Context: TInstantTranslationContext read FContext; destructor Destroy; override; - function QuoteString(const Str: string): string; property Query: TInstantCustomRelationalQuery read GetQuery; end; @@ -975,7 +990,7 @@ property RowNumber: Integer read GetRowNumber write SetRowNumber; end; - //Backwards compatibility + // Backward compatibility TInstantRelationalQuery = TInstantNavigationalQuery; TInstantSQLQuery = class(TInstantCustomRelationalQuery) @@ -987,7 +1002,7 @@ function GetObjectReferenceCount: Integer; function GetObjectReferenceList: TInstantObjectReferenceList; function GetParamsObject: TParams; - procedure InitObjectReferences(DataSet: TDataSet); + procedure InitObjectReferences(const ADataSet: TDataSet); protected function GetActive: Boolean; override; function AcquireDataSet(const AStatement: string; AParams: TParams): @@ -1034,6 +1049,16 @@ default True; end; + // Holds object data in the current record of a dataset specified upon + // creation. Used in burst load mode. + TInstantDataSetObjectData = class(TInstantAbstractObjectData) + private + FDataSet: TDataSet; + public + constructor CreateAndInit(const ADataSet: TDataSet); + property DataSet: TDataSet read FDataSet; + end; + var InstantLogProc: procedure (const AString: string) of object; @@ -1208,10 +1233,19 @@ function TInstantCustomRelationalBroker.InternalRetrieveObject( AObject: TInstantObject; const AObjectId: string; - ConflictAction: TInstantConflictAction): Boolean; + ConflictAction: TInstantConflictAction; + const AObjectData: TInstantAbstractObjectData = nil): Boolean; begin - Result := PerformOperation(AObject, AObjectId, otRetrieve, RetrieveMap, - ConflictAction); + // RetrieveMap will use this as an implicit argument. + // Making it explicit is too cumbersome since no other TInstantBrokerOperation + // needs it. + FObjectData := AObjectData; + try + Result := PerformOperation(AObject, AObjectId, otRetrieve, RetrieveMap, + ConflictAction); + finally + FObjectData := nil; + end; end; function TInstantCustomRelationalBroker.InternalStoreObject( @@ -1280,7 +1314,7 @@ const AObjectId: string; Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); begin - EnsureResolver(Map).RetrieveMap(AObject, AObjectId, Map, ConflictAction, Info); + EnsureResolver(Map).RetrieveMap(AObject, AObjectId, Map, ConflictAction, Info, FObjectData); end; procedure TInstantCustomRelationalBroker.SetStatementCacheCapacity(const Value: Integer); @@ -1776,7 +1810,8 @@ procedure TInstantCustomResolver.InternalRetrieveMap( AObject: TInstantObject; const AObjectId: string; Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; - Info: PInstantOperationInfo); + AInfo: PInstantOperationInfo; + const AObjectData: TInstantAbstractObjectData = nil); begin end; @@ -1801,9 +1836,10 @@ procedure TInstantCustomResolver.RetrieveMap(AObject: TInstantObject; const AObjectId: string; Map: TInstantAttributeMap; - ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); + ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo; + const AObjectData: TInstantAbstractObjectData = nil); begin - InternalRetrieveMap(AObject, AObjectId, Map, ConflictAction, Info); + InternalRetrieveMap(AObject, AObjectId, Map, ConflictAction, Info, AObjectData); end; procedure TInstantCustomResolver.StoreMap(AObject: TInstantObject; @@ -2125,10 +2161,12 @@ procedure TInstantNavigationalResolver.InternalRetrieveMap( AObject: TInstantObject; const AObjectId: string; Map: TInstantAttributeMap; - ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); + ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo; + const AObjectData: TInstantAbstractObjectData = nil); var AInfo: TInstantOperationInfo; begin + // This resolver doesn't support retrieving from any kind of TInstantAbstractObjectData. if not Assigned(Info) then Info := @AInfo; Open; @@ -2142,7 +2180,8 @@ FieldByName(InstantUpdateCountFieldName).AsInteger); end; PerformOperation(AObject, Map, ReadAttribute); - end else + end + else ResetAttributes(AObject, Map); end; @@ -2464,10 +2503,10 @@ AObject.AttributeByName(AttributeMetadata.Name).Reset; end; -procedure TInstantNavigationalResolver.ResetAttributes(AObject: TInstantObject; - Map: TInstantAttributeMap); +procedure TInstantNavigationalResolver.ResetAttributes( + const AObject: TInstantObject; const AMap: TInstantAttributeMap); begin - PerformOperation(AObject, Map, ResetAttribute); + PerformOperation(AObject, AMap, ResetAttribute); end; procedure TInstantNavigationalResolver.SetDataSet(Value: TDataset); @@ -3319,45 +3358,43 @@ end; end; +procedure TInstantSQLResolver.ResetAttributes(const AObject: TInstantObject; + const AMap: TInstantAttributeMap); +var + I: Integer; +begin + for I := 0 to Pred(AMap.Count) do + AObject.AttributeByName(AMap[I].Name).Reset; +end; + procedure TInstantSQLResolver.InternalRetrieveMap(AObject: TInstantObject; const AObjectId: string; Map: TInstantAttributeMap; - ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); - - procedure ResetAttributes; - var - I: Integer; - begin - for I := 0 to Pred(Map.Count) do - AObject.AttributeByName(Map[I].Name).Reset - end; - + ConflictAction: TInstantConflictAction; AInfo: PInstantOperationInfo; + const AObjectData: TInstantAbstractObjectData = nil); var - DataSet: TDataSet; - Params: TParams; - AInfo: TInstantOperationInfo; + LDataSet: TDataSet; + LParams: TParams; begin - if not Assigned(Info) then - Info := @AInfo; - Params := TParams.Create; - try - AddBaseParams(Params, AObject.ClassName, AObjectId); - DataSet := Broker.AcquireDataSet(SelectSQL, Params); + // This resolver supports retrieving data from TInstantDataSetObjectData. + if Assigned(AObjectData) and (AObjectData is TInstantDataSetObjectData) then + RetrieveMapFromDataSet(AObject, AObjectId, Map, ConflictAction, AInfo, + TInstantDataSetObjectData(AObjectData).DataSet) + else + begin + LParams := TParams.Create; try - DataSet.Open; - Info.Success := not DataSet.EOF; - Info.Conflict := not Info.Success; - if Info.Success then - begin - if Map.IsRootMap then - Broker.SetObjectUpdateCount(AObject, DataSet.FieldByName(InstantUpdateCountFieldName).AsInteger); - ReadAttributes(AObject, AObjectId, Map, DataSet); - end else - ResetAttributes; + AddBaseParams(LParams, AObject.ClassName, AObjectId); + LDataSet := Broker.AcquireDataSet(SelectSQL, LParams); + try + LDataSet.Open; + RetrieveMapFromDataSet(AObject, AObjectId, Map, ConflictAction, + AInfo, LDataSet); + finally + Broker.ReleaseDataSet(LDataSet); + end; finally - Broker.ReleaseDataSet(DataSet); + LParams.Free; end; - finally - Params.Free; end; end; @@ -3846,6 +3883,31 @@ Params.Delete(Param.Index); end; +procedure TInstantSQLResolver.RetrieveMapFromDataSet(const AObject: TInstantObject; + const AObjectId: string; const AMap: TInstantAttributeMap; + ConflictAction: TInstantConflictAction; AInfo: PInstantOperationInfo; + const ADataSet: TDataSet); +var + LInfo: TInstantOperationInfo; +begin + Assert(Assigned(AObject)); + Assert(Assigned(ADataSet)); + + if not Assigned(AInfo) then + AInfo := @LInfo; + + AInfo.Success := not ADataSet.Eof; + AInfo.Conflict := not AInfo.Success; + if AInfo.Success then + begin + if AMap.IsRootMap then + Broker.SetObjectUpdateCount(AObject, ADataSet.FieldByName(InstantUpdateCountFieldName).AsInteger); + ReadAttributes(AObject, AObjectId, AMap, ADataSet); + end + else + ResetAttributes(AObject, AMap); +end; + function TInstantSQLResolver.TranslateError(AObject: TInstantObject; E: Exception): Exception; begin @@ -4980,11 +5042,6 @@ { TInstantCustomRelationalQuery } -function TInstantCustomRelationalQuery.CreateTranslator: TInstantRelationalTranslator; -begin - Result := TranslatorClass.Create(Self); -end; - function TInstantCustomRelationalQuery.GetConnector: TInstantRelationalConnector; begin Result := inherited Connector as TInstantRelationalConnector; @@ -5067,8 +5124,10 @@ begin LTranslator := TranslatorClass.Create(Self); try + LTranslator.RequestedLoadMode := RequestedLoadMode; LTranslator.CommandText := Command; Statement := LTranslator.StatementText; + SetActualLoadMode(LTranslator.ActualLoadMode); finally LTranslator.Free; end; @@ -5119,7 +5178,8 @@ Exit; FContext := TInstantTranslationContext.Create(Command, Quote, - Delimiters, Connector.IdDataType); + Delimiters, Connector.IdDataType, RequestedLoadMode); + SetActualLoadMode(FContext.ActualLoadMode); end; procedure TInstantRelationalTranslator.Clear; @@ -5206,11 +5266,6 @@ ((AObject = Command) or (AObject.Owner = Command)); end; -function TInstantRelationalTranslator.QuoteString(const Str: string): string; -begin - Result := InstantQuote(Str, Quote); -end; - function TInstantRelationalTranslator.ReplaceWildcard( const Str: string): string; var @@ -5315,7 +5370,7 @@ begin S := InstantUnquote(S, S[1]); S := ReplaceWildCard(S); - Writer.WriteString(QuoteString(S)); + Writer.WriteString(Context.QuoteString(S)); Result := True; end else Result := False; @@ -5442,10 +5497,43 @@ end; end; + procedure WriteAllFields(Writer: TInstantIQLWriter; + const AContext: TInstantTranslationContext); + var + LMapIndex, LAttrIndex: Integer; + LAttrMeta: TInstantAttributeMetadata; + LTablePath, LFieldName: string; + begin + for LMapIndex := 0 to AContext.ObjectClassMetadata.StorageMaps.Count - 1 do + begin + for LAttrIndex := 0 to AContext.ObjectClassMetadata.StorageMaps[LMapIndex].Count - 1 do + begin + LAttrMeta := AContext.ObjectClassMetadata.StorageMaps[LMapIndex][LAttrIndex]; + if ((LAttrMeta.AttributeType = atPart) and (LAttrMeta.StorageKind = skExternal)) + or (LAttrMeta.AttributeType = atReference) then + begin + // External part and reference attribute are treated akin: + // select Class and Id fields. + if Assigned(AContext.PathToTarget(LAttrMeta.FieldName, LTablePath, LFieldName)) then + Writer.WriteString(Format(', %s, %s', [ + AContext.Qualify(LTablePath, LFieldName + InstantClassFieldName), + AContext.Qualify(LTablePath, LFieldName + InstantIdFieldName)])); + end + else if (LAttrMeta.AttributeType in [atParts, atReferences]) + and (LAttrMeta.StorageKind = skExternal) then + // No fields needed for external containers. + else + // Select all other fields. + Writer.WriteString(Format(', %s', [AContext.QualifyPath(LAttrMeta.FieldName)])); + end; + end; + end; + var ClassQual, IdQual, PathText: string; LContext: TInstantTranslationContext; LSubQuery: TInstantIQLSubquery; + LTablePath, LDummyFieldName: string; begin Result := Assigned(Specifier) and Assigned(Writer); if Result then @@ -5459,17 +5547,30 @@ if Specifier.Operand is TInstantIQLPath then begin + // This branch handles SELECT * FROM PathText := TInstantIQLPath(Specifier.Operand).Text; ClassQual := LContext.QualifyPath(ConcatPath(PathText, InstantClassFieldName)); IdQual := LContext.QualifyPath(ConcatPath(PathText, InstantIdFieldName)); end else begin + // This branch handles SELECT <attribute> FROM ClassQual := LContext.QualifyPath(InstantClassFieldName); IdQual := LContext.QualifyPath(InstantIdFieldName); end; Writer.WriteString(Format('%s AS %s, %s AS %s', [ClassQual, InstantClassFieldName, IdQual, InstantIdFieldName])); - if IncludeOrderFields then + + // Mind that LContext.ActualBurstLoadMode might be different than + // Self.RequestedBurstLoadMode. + if LContext.ActualLoadMode = lmFullBurst then + begin + // Use the Id just to get the table path needed to add the updatecount + // field. We could use anything we know is in the main table. + LContext.PathToTarget(InstantIdFieldName, LTablePath, LDummyFieldName); + Writer.WriteString(Format(', %s', [LContext.Qualify(LTablePath, InstantUpdateCountFieldName)])); + WriteAllFields(Writer, LContext); + end + else if IncludeOrderFields then WriteOrderFields(Writer); end; end; @@ -5875,30 +5976,50 @@ Result := FStatement; end; -procedure TInstantSQLQuery.InitObjectReferences(DataSet: TDataSet); +procedure TInstantSQLQuery.InitObjectReferences(const ADataSet: TDataSet); + + function IsBurstLoadModeDataSet(const ADataSet: TDataSet): Boolean; + begin + // A trick to check if the dataset that came from the broker is actually + // a burst load mode dataset. Requesting burst load mode does not guarantee + // to get it, as not all IQL query types support it yet. + Result := Assigned(ADataSet.FindField(InstantUpdateCountFieldName)); + end; + var - ObjRef: TInstantObjectReference; + LObjRef: TInstantObjectReference; + LObjData: TInstantDataSetObjectData; begin - if Assigned(DataSet) then + LObjData := nil; + if Assigned(ADataSet) then begin - DataSet.DisableControls; + ADataSet.DisableControls; try - while not DataSet.Eof do - begin - ObjRef := ObjectReferenceList.Add; - try - ObjRef.ReferenceObject( - DataSet.FieldByName(InstantClassFieldName).AsString, - DataSet.FieldByName(InstantIdFieldName).AsString); - except - ObjRef.Free; - raise; + if IsBurstLoadModeDataSet(ADataSet) then + LObjData := TInstantDataSetObjectData.CreateAndInit(ADataSet); + try + while not ADataSet.Eof do + begin + LObjRef := ObjectReferenceList.Add; + try + LObjRef.ReferenceObject( + ADataSet.FieldByName(InstantClassFieldName).AsString, + ADataSet.FieldByName(InstantIdFieldName).AsString); + if Assigned(LObjData) then + LObjRef.RetrieveObjectFromObjectData(LObjData); + except + LObjRef.Free; + raise; + end; + if (MaxCount > 0) and (ObjectReferenceList.Count = MaxCount) then + Break; + ADataSet.Next; end; - if (MaxCount > 0) and (ObjectReferenceList.Count = MaxCount) then break; - DataSet.Next; + finally + FreeAndNil(LObjData); end; finally - DataSet.EnableControls; + ADataSet.EnableControls; end; end; end; @@ -6075,6 +6196,7 @@ constructor TInstantTranslationContext.Create( const AStatement: TInstantIQLObject; const AQuote: Char; const ADelimiters: string; const AIdDataType: TInstantDataType; + const ARequestedLoadMode: TInstantLoadMode; const AParentContext: TInstantTranslationContext = nil); begin inherited Create; @@ -6087,6 +6209,7 @@ FQuote := AQuote; FDelimiters := ADelimiters; FIdDataType := AIdDataType; + FRequestedLoadMode := ARequestedLoadMode; Initialize; end; @@ -6094,8 +6217,15 @@ function TInstantTranslationContext.CreateChildContext( const AStatement: TInstantIQLObject): TInstantTranslationContext; begin + // Child contexts (such as subqueries) don't translate queries for + // burst load modes, for the time being. + // That's because subqueries now are only used in the EXISTS() function, + // and for this case there's nothing to be gained (and a performance + // penalty as well) in constructing a burst load mode enabled subquery. + // This decision might be revisited in the future if child contexts + // are used for other things. Result := TInstantTranslationContext.Create(AStatement, Quote, Delimiters, - IdDataType, Self); + IdDataType, lmKeysFirst, Self); end; destructor TInstantTranslationContext.Destroy; @@ -6299,22 +6429,41 @@ end; var - TablePath: string; - Path: TInstantIQLPath; + LTablePath: string; + LPath: TInstantIQLPath; + LClassMeta: TInstantClassMetadata; begin if ClassRef.Any then - TablePath := ObjectClassMetadata.TableName - else begin - Path := FindAttributePath; - if Assigned(Path) then - TablePath := PathToTablePath(Path.Attributes[0]) + LTablePath := ObjectClassMetadata.TableName + else + begin + LPath := FindAttributePath; + if Assigned(LPath) then + LTablePath := PathToTablePath(LPath.Attributes[0]) else - TablePath := ObjectClassMetadata.TableName; + LTablePath := ObjectClassMetadata.TableName; end; - AddTablePath(TablePath); + AddTablePath(LTablePath); + if ActualLoadMode = lmFullBurst then + begin + // Standard mode only adds the main table when needed, and not always. + // A possible optimization would be to add it only if it does actually + // have attributes we select. For now let's add it by default as it + // covers almost all cases. + AddTablePath(TableName); + LClassMeta := ObjectClassMetadata.Parent; + while Assigned(LClassMeta) do + begin + AddTablePath(LClassMeta.TableName); + LClassMeta := LClassMeta.Parent; + end; + end; end; procedure InitCommandCriterias; + var + LClassMeta: TInstantClassMetadata; + LTableName: string; begin if not ClassRef.Any then AddCriteria(Format('%s = %s', @@ -6330,6 +6479,20 @@ AddCriteria(Format('%s <> 0', [QualifyPath(ConcatPath(Specifier.Text, InstantIdFieldName))])); end; + if ActualLoadMode = lmFullBurst then + begin + LClassMeta := ObjectClassMetadata.Parent; + while Assigned(LClassMeta) do + begin + LTableName := LClassMeta.TableName; + if LTableName <> TableName then + begin + AddJoin(TableName, InstantClassFieldName, LTableName, InstantClassFieldName); + AddJoin(TableName, InstantIdFieldName, LTableName, InstantIdFieldName); + end; + LClassMeta := LClassMeta.Parent; + end; + end; end; var @@ -6347,6 +6510,18 @@ Specifier := TInstantIQLSubquery(FStatement).Specifier; end; + { TODO : supporting ANY in burst load mode would mean collect + all descendant classes in the model and left join to all tables, + which is complicated to do and would probably be inefficient as well. + A better approach would be to perform N queries, one for each + concrete class, and combine the resulting sets. This would require + some big refactoring and is left for the future. For now, we don't + support burst load mode for ANY statements. } + if Classref.Any then + FActualLoadMode := lmKeysFirst + else + FActualLoadMode := FRequestedLoadMode; + PathList := TList.Create; try CollectPaths(FStatement, PathList); @@ -6424,8 +6599,7 @@ for I := 0 to Pred(Path.AttributeCount) do begin TablePath := PathToTablePath(Path.SubPath[I]); - if IndexOfTablePath(TablePath) = -1 then - AddTablePath(TablePath); + AddTablePath(TablePath); end; end; @@ -6563,8 +6737,13 @@ function TInstantTranslationContext.TablePathToAlias( const TablePath: string): string; +var + LIndex: Integer; begin - Result := TablePathAliases[IndexOfTablePath(TablePath)]; + LIndex := IndexOfTablePath(TablePath); + if LIndex < 0 then + raise EInstantError.CreateFmt(STablePathNotFound, [TablePath]); + Result := TablePathAliases[LIndex]; end; function TInstantTranslationContext.WriteCriterias(Writer: TInstantIQLWriter; @@ -6601,4 +6780,13 @@ end; end; +{ TInstantDataSetObjectData } + +constructor TInstantDataSetObjectData.CreateAndInit(const ADataSet: TDataSet); +begin + Assert(Assigned(ADataSet)); + Create; + FDataSet := ADataSet; +end; + end. Modified: trunk/Source/Core/InstantClasses.pas =================================================================== --- trunk/Source/Core/InstantClasses.pas 2010-09-16 10:07:33 UTC (rev 917) +++ trunk/Source/Core/InstantClasses.pas 2010-09-16 10:28:36 UTC (rev 918) @@ -399,6 +399,8 @@ TInstantAbstractObjectClass = class of TInstantAbstractObject; + TInstantAbstractObjectData = class(TInstantStreamable); + TInstantAbstractObject = class(TInstantStreamable) private FConnector: TComponent; @@ -407,7 +409,8 @@ procedure SetConnector(AConnector: TComponent); public constructor Retrieve(const AObjectId: string; CreateIfMissing: Boolean = False; - Refresh: Boolean = False; AConnector: TComponent = nil); virtual; abstract; + Refresh: Boolean = False; AConnector: TComponent = nil; + const AObjectData: TInstantAbstractObjectData = nil); virtual; abstract; end; TInstantAbstractAttributeClass = class of TInstantAbstractAttribute; Modified: trunk/Source/Core/InstantCommand.pas =================================================================== --- trunk/Source/Core/InstantCommand.pas 2010-09-16 10:07:33 UTC (rev 917) +++ trunk/Source/Core/InstantCommand.pas 2010-09-16 10:28:36 UTC (rev 918) @@ -39,7 +39,8 @@ interface uses - Classes, SysUtils, Contnrs, InstantClasses, InstantTextFiler, InstantMetadata; + Classes, SysUtils, Contnrs, InstantClasses, InstantTextFiler, InstantMetadata, + InstantTypes; type TInstantIQLObject = class; @@ -440,6 +441,8 @@ private FCommand: TInstantIQLCommand; FCommandText: string; + FRequestedLoadMode: TInstantLoadMode; + FActualLoadMode: TInstantLoadMode; procedure SetCommandText(const Value: string); function GetCommand: TInstantIQLCommand; protected @@ -450,9 +453,19 @@ function CreateCommand: TInstantIQLCommand; virtual; procedure Translate; virtual; property Command: TInstantIQLCommand read GetCommand; + procedure SetActualLoadMode(const AValue: TInstantLoadMode); public + procedure AfterConstruction; override; property CommandText: string read FCommandText write SetCommandText; property ResultClassName: string read GetResultClassName; + // Set this property to request a special load mode for the command. + // Not all modes are supported for all kinds of IQL commands, + // so setting this property is merely a request, and the actual fulfilment + // depends on the particular IQL command. + property RequestedLoadMode: TInstantLoadMode read FRequestedLoadMode + write FRequestedLoadMode default lmKeysFirst; + // Returns the actually used load mode. + property ActualLoadMode: TInstantLoadMode read FActualLoadMode; end; TInstantIQLTranslator = class; @@ -526,7 +539,7 @@ uses StrUtils, - InstantPersistence, InstantUtils, InstantConsts, InstantTypes, InstantBrokers; + InstantPersistence, InstantUtils, InstantConsts, InstantBrokers; const OperatorTokens: array[TInstantIQLOperatorType] of string = ('=', '>', '<', @@ -1628,6 +1641,12 @@ { TInstantIQLTranslator } +procedure TInstantIQLCommandTranslator.AfterConstruction; +begin + inherited; + FRequestedLoadMode := lmKeysFirst; +end; + procedure TInstantIQLCommandTranslator.AfterTranslate; begin end; @@ -1657,6 +1676,12 @@ Result := ''; end; +procedure TInstantIQLCommandTranslator.SetActualLoadMode( + const AValue: TInstantLoadMode); +begin + FActualLoadMode := AValue; +end; + procedure TInstantIQLCommandTranslator.SetCommandText(const Value: string); begin if Value <> FCommandText then @@ -1973,7 +1998,10 @@ if Assigned(FUsingAttribute) then begin WriteSpace; -{ TODO -oAndrea Magni : Maybe it would be better to check also TInstantTranslationContext.CriteriaCount, in order to determine if there is already a where condition used to perform join with other tables } + { TODO -oAndrea Magni : Maybe it would be better to check also + TInstantTranslationContext.CriteriaCount, in order to determine + if there is already a where condition used to perform join with + other tables } if Assigned(FClause) or (not FClassRef.Any) then WriteKeyword('AND') else Modified: trunk/Source/Core/InstantConsts.pas =================================================================== --- trunk/Source/Core/InstantConsts.pas 2010-09-16 10:07:33 UTC (rev 917) +++ trunk/Source/Core/InstantConsts.pas 2010-09-16 10:28:36 UTC (rev 918) @@ -163,6 +163,7 @@ SSplashScreenTitle = 'InstantObjects - Object Persistence Framework'; SSQLStatementIndexOutOfBounds = 'SQL statement index out of bounds.'; SSubqueryMissing = 'Subquery missing'; + STablePathNotFound = 'Table path %s not found'; STransactionInProgress = 'Transaction in progress'; STrueString = 'True'; SUnableToQueryAttribute = 'Unable to query on attribute %s.%s'; Modified: trunk/Source/Core/InstantPersistence.pas =================================================================== --- trunk/Source/Core/InstantPersistence.pas 2010-09-16 10:07:33 UTC (rev 917) +++ trunk/Source/Core/InstantPersistence.pas 2010-09-16 10:28:36 UTC (rev 918) @@ -140,6 +140,9 @@ AObjectId: string); overload; procedure ReferenceObject(AObjectClass: TInstantObjectClass; const AObjectId: string); overload; + // Retrieves the referenced object from the specified data object. + // Used in burst load mode to get the data already fetched in a dataset. + procedure RetrieveObjectFromObjectData(const AObjectData: TInstantAbstractObjectData); procedure WriteAsObject(Writer: TInstantWriter); virtual; property Instance: TInstantObject read GetInstance write SetInstance; property ObjectClass: TInstantObjectClass read GetObjectClass; @@ -905,7 +908,8 @@ AConnector: TInstantConnector = nil); overload; virtual; constructor Create(AConnector: TInstantConnector = nil); virtual; constructor Retrieve(const AObjectId: string; CreateIfMissing: Boolean = False; - Refresh: Boolean = False; AConnector: TComponent = nil); override; + ARefresh: Boolean = False; AConnector: TComponent = nil; + const AObjectData: TInstantAbstractObjectData = nil); override; function AddObject(AObject: TInstantObject): Integer; overload; function AddRef: Integer; procedure Assign(Source: TPersistent); override; @@ -1070,8 +1074,8 @@ function Find(const AObjectId: string): TInstantObject; procedure ObjectDestroyed(AObject: TInstantObject); procedure RefreshObject(AObject: TInstantObject); - function RetrieveObject(const AObjectId: string; AObject: TInstantObject): - Boolean; + function RetrieveObject(const AObjectId: string; const AObject: TInstantObject; + const AObjectData: TInstantAbstractObjectData = nil): Boolean; procedure StoreObject(AObject: TInstantObject; ConflictAction: TInstantConflictAction); property Connector: TInstantConnector read FConnector write FConnector; @@ -1142,6 +1146,9 @@ FCommand: string; FConnector: TInstantConnector; FMaxCount: Integer; + FRequestedLoadMode: TInstantLoadMode; + FActualLoadMode: TInstantLoadMode; + FLoadMode: TInstantLoadMode; function GetConnector: TInstantConnector; function GetObjectCount: Integer; function GetObjects(Index: Integer): TObject; @@ -1167,6 +1174,7 @@ procedure SetParams(Value: TParams); virtual; procedure TranslateCommand; virtual; function InternalGetObjectReferenceId(Index: Integer) : string; virtual; + procedure SetActualLoadMode(const AValue: TInstantLoadMode); public constructor Create(AConnector: TInstantConnector); virtual; function AddObject(AObject: TObject): Integer; @@ -1190,6 +1198,9 @@ property ObjectCount: Integer read GetObjectCount; property Objects[Index: Integer]: TObject read GetObjects; property Params: TParams read GetParams write SetParams; + property RequestedLoadMode: TInstantLoadMode read FLoadMode write FLoadMode + default lmKeysFirst; + property ActualLoadMode: TInstantLoadMode read FActualLoadMode; end; EInstantConflict = class(EInstantError) @@ -1358,8 +1369,8 @@ function InternalDisposeObject(AObject: TInstantObject; ConflictAction: TInstantConflictAction): Boolean; virtual; abstract; function InternalRetrieveObject(AObject: TInstantObject; - const AObjectId: string; ConflictAction: TInstantConflictAction): - Boolean; virtual; abstract; + const AObjectId: string; ConflictAction: TInstantConflictAction; + const AObjectData: TInstantAbstractObjectData = nil): Boolean; virtual; abstract; function InternalStoreObject(AObject: TInstantObject; ConflictAction: TInstantConflictAction): Boolean; virtual; abstract; public @@ -1392,7 +1403,8 @@ // and calling ReadDatabaseSchema will raise an exception. function IsCatalogSupported: Boolean; function RetrieveObject(AObject: TInstantObject; const AObjectId: string; - ConflictAction: TInstantConflictAction): Boolean; + ConflictAction: TInstantConflictAction; + const AObjectData: TInstantAbstractObjectData = nil): Boolean; procedure SetObjectUpdateCount(AObject: TInstantObject; Value: Integer); function StoreObject(AObject: TInstantObject; ConflictAction: TInstantConflictAction): Boolean; @@ -1620,7 +1632,7 @@ {$IFDEF D14+} RTTI, InstantRttiAttributes, {$ENDIF} - InstantUtils, {InstantRtti, }InstantDesignHook, InstantCode; + InstantUtils, InstantDesignHook, InstantCode; var ConnectorClasses: TList; @@ -2116,7 +2128,7 @@ end; procedure TInstantObjectReference.DoAssignInstance(AInstance: TInstantObject; - AOwnsInstance: Boolean); + AOwnsInstance: Boolean); begin if FInstance <> AInstance then begin @@ -2226,6 +2238,21 @@ end; end; +procedure TInstantObjectReference.RetrieveObjectFromObjectData( + const AObjectData: TInstantAbstractObjectData); +var + LObject: TInstantObject; +begin + Assert(Assigned(AObjectData)); + + LObject := ObjectClass.Retrieve(ObjectId, False, False, nil, AObjectData); + DoAssignInstance(LObject, True); + if Assigned(FInstance) then + FInstance.Release + else + Integer(FInstance) := -1; +end; + procedure TInstantObjectReference.ReferenceObject( AObjectClass: TInstantObjectClass; const AObjectId: string); begin @@ -6730,7 +6757,8 @@ {$O-} constructor TInstantObject.Retrieve(const AObjectId: string; CreateIfMissing: - Boolean = False; Refresh: Boolean = False; AConnector: TComponent = nil); + Boolean = False; ARefresh: Boolean = False; AConnector: TComponent = nil; + const AObjectData: TInstantAbstractObjectData = nil); procedure RetrieveDenied; begin @@ -6743,18 +6771,23 @@ VerificationResult: TInstantVerificationResult; begin inherited Create; + InstantCheckConnector(TInstantConnector(AConnector)); SetConnector(TInstantConnector(AConnector)); + Instance := ObjectStore.Find(AObjectId); if Assigned(Instance) then begin inherited FreeInstance; - Self := Instance; + Self := Instance as TInstantObject; AddRef; - end else + if ARefresh then + Refresh; + end + else begin Init; - Exists := ObjectStore.RetrieveObject(AObjectId, Self); + Exists := ObjectStore.RetrieveObject(AObjectId, Self, AObjectData); VerificationResult := VerifyOperation(otRetrieve); case VerificationResult of vrAbort: @@ -7529,7 +7562,8 @@ end; function TInstantObjectStore.RetrieveObject(const AObjectId: string; - AObject: TInstantObject): Boolean; + const AObject: TInstantObject; + const AObjectData: TInstantAbstractObjectData = nil): Boolean; begin Result := Assigned(AObject) and AObject.Metadata.IsStored; if not Result then @@ -7538,7 +7572,7 @@ try AObject.DisableChanges; try - Result := Broker.RetrieveObject(AObject, AObjectId, caFail); + Result := Broker.RetrieveObject(AObject, AObjectId, caFail, AObjectData); if Result then AObject.SetPersistentId(AObjectId) else begin @@ -7877,6 +7911,11 @@ Close; end; +procedure TInstantQuery.SetActualLoadMode(const AValue: TInstantLoadMode); +begin + FActualLoadMode := AValue; +end; + procedure TInstantQuery.SetCommand(const Value: string); begin if Value <> FCommand then @@ -8544,13 +8583,13 @@ function TInstantBroker.IsCatalogSupported: Boolean; var - vCatalog: TInstantCatalog; + LCatalog: TInstantCatalog; begin - vCatalog := CreateCatalog(nil); + LCatalog := CreateCatalog(nil); try - Result := Assigned(vCatalog); + Result := Assigned(LCatalog); finally - vCatalog.Free; + LCatalog.Free; end; end; @@ -8570,9 +8609,10 @@ end; function TInstantBroker.RetrieveObject(AObject: TInstantObject; - const AObjectId: string; ConflictAction: TInstantConflictAction): Boolean; + const AObjectId: string; ConflictAction: TInstantConflictAction; + const AObjectData: TInstantAbstractObjectData = nil): Boolean; begin - Result := InternalRetrieveObject(AObject, AObjectId, ConflictAction); + Result := InternalRetrieveObject(AObject, AObjectId, ConflictAction, AObjectData); end; procedure TInstantBroker.SetObjectUpdateCount(AObject: TInstantObject; Modified: trunk/Source/Core/InstantPresentation.pas =================================================================== --- trunk/Source/Core/InstantPresentation.pas 2010-09-16 10:07:33 UTC (rev 917) +++ trunk/Source/Core/InstantPresentation.pas 2010-09-16 10:28:36 UTC (rev 918) @@ -40,7 +40,7 @@ {$ENDIF} uses - Classes, DB, InstantPersistence, SysUtils, TypInfo, InstantCode, + Classes, DB, InstantPersistence, SysUtils, TypInfo, InstantCode, InstantTypes, InstantMetadata, InstantUtils; type @@ -661,6 +661,7 @@ FParamCheck: Boolean; FParams: TParams; FQuery: TInstantQuery; + FRequestedLoadMode: TInstantLoadMode; procedure CommandChanged(Sender: TObject); procedure DestroyQuery; function GetCommand: TStringList; @@ -673,6 +674,7 @@ procedure SetMaxCount(const Value: Integer); procedure SetParams(Value: TParams); procedure WriteParamData(Writer: TWriter); + function GetActualLoadMode: TInstantLoadMode; protected { IProviderSupport } procedure PSEndTransaction(Commit: Boolean); override; @@ -698,8 +700,11 @@ constructor Create(AOwner: TComponent); override; destructor Destroy; override; property ObjectClass; + property ActualLoadMode: TInstantLoadMode read GetActualLoadMode; published property AutoOpen: Boolean read FAutoOpen write FAutoOpen default False; + property RequestedLoadMode: TInstantLoadMode + read FRequestedLoadMode write FRequestedLoadMode default lmKeysFirst; property Command: TStringList read GetCommand write SetCommand; property Connector: TInstantConnector read GetConnector write SetConnector; property MaxCount: Integer read FMaxCount write SetMaxCount default 0; @@ -772,7 +777,7 @@ FmtBcd, {$ENDIF} InstantClasses, InstantConsts, InstantRtti, InstantDesignHook, InstantAccessors, - InstantTypes, DbConsts; + DbConsts; const SelfFieldName = 'Self'; @@ -4709,6 +4714,7 @@ inherited; NestedDataSetClass := TInstantExposer; ParamCheck := True; + FRequestedLoadMode := lmKeysFirst; end; procedure TInstantSelector.DefineProperties(Filer: TFiler); @@ -4740,6 +4746,11 @@ FreeAndNil(FQuery); end; +function TInstantSelector.GetActualLoadMode: TInstantLoadMode; +begin + Result := Query.ActualLoadMode; +end; + function TInstantSelector.GetCommand: TStringList; begin if not Assigned(FCommand) then @@ -4774,6 +4785,7 @@ else FQuery := Connector.CreateQuery; FQuery.MaxCount := MaxCount; + FQuery.RequestedLoadMode := RequestedLoadMode; if not (csReading in ComponentState) then FQuery.Command := Command.Text; end; Modified: trunk/Source/Core/InstantTypes.pas =================================================================== --- trunk/Source/Core/InstantTypes.pas 2010-09-16 10:07:33 UTC (rev 917) +++ trunk/S... [truncated message content] |
From: <na...@us...> - 2010-09-19 10:23:24
|
Revision: 928 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=928&view=rev Author: nandod Date: 2010-09-19 10:23:17 +0000 (Sun, 19 Sep 2010) Log Message: ----------- + lmPartialBurst mode. * Fixed a bug that would leak memory if a broker's StatementCacheCapacity was changed from 0 to non-zero after one or more queries had been open. * Code cleanup and assorted small optimizations. Modified Paths: -------------- trunk/Demos/PrimerCross/QueryView.dfm trunk/Demos/PrimerCross/QueryView.pas trunk/Demos/PrimerCross/RandomData.pas trunk/Docs/Burst_Load_Modes.txt trunk/Source/Core/InstantBrokers.pas trunk/Source/Core/InstantPersistence.pas trunk/Source/Core/InstantTypes.pas Property Changed: ---------------- trunk/Demos/PrimerCross/ Property changes on: trunk/Demos/PrimerCross ___________________________________________________________________ Modified: svn:ignore - *.dcu *.~* *.ddp *.exe __history *.identcache *.local *.dsk *.MB XMLDB PrimerExternal_D2009.xml + *.dcu *.~* *.ddp *.exe __history *.identcache *.local *.dsk *.MB XMLDB PrimerExternal_D2009.xml Profiling Modified: trunk/Demos/PrimerCross/QueryView.dfm =================================================================== --- trunk/Demos/PrimerCross/QueryView.dfm 2010-09-18 08:36:12 UTC (rev 927) +++ trunk/Demos/PrimerCross/QueryView.dfm 2010-09-19 10:23:17 UTC (rev 928) @@ -105,17 +105,27 @@ Text = 'Keys First' Items.Strings = ( 'Keys First' + 'Partial Burst' 'Full Burst') end object FetchAllCheckBox: TCheckBox Left = 95 - Top = 124 - Width = 58 + Top = 116 + Width = 64 Height = 17 Alignment = taLeftJustify Caption = 'Fetch All' TabOrder = 2 end + object StatementCacheCheckBox: TCheckBox + Left = 95 + Top = 131 + Width = 64 + Height = 17 + Alignment = taLeftJustify + Caption = 'S. Cache' + TabOrder = 6 + end end object ResultPageControl: TPageControl Left = 0 @@ -180,7 +190,6 @@ end end object TestSelector: TInstantSelector - AfterScroll = TestSelectorAfterScroll AfterClose = TestSelectorAfterClose Left = 32 Top = 192 Modified: trunk/Demos/PrimerCross/QueryView.pas =================================================================== --- trunk/Demos/PrimerCross/QueryView.pas 2010-09-18 08:36:12 UTC (rev 927) +++ trunk/Demos/PrimerCross/QueryView.pas 2010-09-19 10:23:17 UTC (rev 928) @@ -45,6 +45,7 @@ StatsTabSheet: TTabSheet; StatsMemo: TMemo; FetchAllCheckBox: TCheckBox; + StatementCacheCheckBox: TCheckBox; procedure ExecuteActionExecute(Sender: TObject); procedure ExampleComboBoxClick(Sender: TObject); procedure TestSelectorAfterScroll(DataSet: TDataSet); @@ -129,13 +130,25 @@ {$ENDIF} with TestSelector do begin + if Connector.Broker is TInstantSQLBroker then + begin + if StatementCacheCheckBox.Checked then + TInstantSQLBroker(Connector.Broker).StatementCacheCapacity := -1 + else + TInstantSQLBroker(Connector.Broker).StatementCacheCapacity := 0; + end; Close; TestSelector.MaxCount := StrToInt(Trim(MaxCountEdit.Text)); Command.Text := CommandEdit.Text; - Open; - if FetchAllCheckBox.Checked then - while not Eof do - Next; + DisableControls; + try + Open; + if FetchAllCheckBox.Checked then + while not Eof do + Next; + finally + EnableControls; + end; ResultPageControl.ActivePage := ResultTabSheet; end; finally Modified: trunk/Demos/PrimerCross/RandomData.pas =================================================================== --- trunk/Demos/PrimerCross/RandomData.pas 2010-09-18 08:36:12 UTC (rev 927) +++ trunk/Demos/PrimerCross/RandomData.pas 2010-09-19 10:23:17 UTC (rev 928) @@ -24,7 +24,7 @@ implementation uses - SysUtils; + SysUtils, InstantUtils; const Letters = ['a'..'z']; @@ -113,14 +113,14 @@ begin repeat Result := RandomLetter; - until Result in Consonants; + until InstantCharInSet(Result, Consonants); end; function RandomVowel: Char; begin repeat Result := RandomLetter; - until Result in Vowels; + until InstantCharInSet(Result, Vowels); end; function RandomName: string; @@ -232,7 +232,7 @@ RandomStr(StreetBeginnings) + RandomStr(StreetEndings) + ' ' + RandomStr(StreetTypes) + ' ' + - IntToStr((Random(499) + 1) div (Random(9) + 1) + 1) + ' ' + '\x80 \xE0\xF2\xE8 aa'; + IntToStr((Random(499) + 1) div (Random(9) + 1) + 1); end; function RandomCity: string; Modified: trunk/Docs/Burst_Load_Modes.txt =================================================================== --- trunk/Docs/Burst_Load_Modes.txt 2010-09-18 08:36:12 UTC (rev 927) +++ trunk/Docs/Burst_Load_Modes.txt 2010-09-19 10:23:17 UTC (rev 928) @@ -1,11 +1,13 @@ -Burst Load Mode -Nando Dessena, 14/09/2010 +Burst Load Modes +Nando Dessena, 19/09/2010 -What is it ----------- -Burst Load Mode is an alternative way of retrieving objects in InstantObjects' SQL brokers. This new mode can be selected on a case by case basis by setting the new RequestedLoadMode property of an InstantSelector or InstantQuery to the value lmFullBurst. +What is burst load +------------------ +Burst Load Modes are alternative ways of retrieving objects in InstantObjects' SQL brokers. These new modes can be selected on a case by case basis by setting the new RequestedLoadMode property of an InstantSelector or InstantQuery to the value lmPartialBurst or lmFullBurst. The value lmKeysFirst means the standard, historical load mode. + + What does it do --------------- @@ -14,60 +16,59 @@ 2) Fetch all records (up to MaxCount). 3) For each record accessed, materialize the object. This implies executing one or more select statements to get all object data (main object query), containers and references (accessory queries). External storage implies more queries. The main query joins all the tables for the given class and ancestors. -Burst Load Mode causes these changes: +Full Burst mode causes these changes: 1) The primary query retrieves all object data, and not just the primary keys. -2) All objects are materialized (up to MaxCount) from the obtained data set; this causes the execution of all accessory and external queries that in the standard case are executed at point 3, minus the main query, which is not needed anymore. +2) lmFullBurst: All objects are materialized (up to MaxCount) from the obtained data set; this causes the execution of all accessory and external queries that in the standard case are executed at point 3, minus the main query, which is not needed anymore. lmPartialBurst: objects are materialized on demand, like in the standard mode, but using data retrieved by the primary query, like in the full burst mode. -This means that Burst Load Mode is much quicker when retrieving a dataset, whereas standard mode is best at getting the first records. +Partial Burst mode works this way: +1) Like Full Burst mode 1). +2) Like standard mode 2). +3) Like standard mode 3), but using data retrieved by the primary query and kept around. -When it is used ---------------- +This means that Full Burst mode is much quicker when retrieving a whole dataset, whereas standard mode is best at getting the first records. Partial Burst mode gives the best of both worlds, as it is almost as quick as Full Burst when fetching an entire dataset, and slightly quicker than standard mode at getting the first records. -Burst Load Mode is well suited for all cases in which objects are selected (typically through an IQL command with a WHERE clause) to be processed. If the entire dataset is going to be fetched and all records visited anyway, then it's much quicker to do it in Burst Load Mode. -The standard way is more of the "lazy load" kind, and as such it is more suited for when a list of objects is displayed for browsing, typically in a DBGrid, and not all objects are needed but just one or a few are selected to work with. In this case displaying the first records in the grid is much quicker in standard mode. +When to use burst load +---------------------- +Full Burst mode is well suited for all cases in which objects are selected (typically through an IQL command with a WHERE clause) to be processed. If the entire dataset is going to be fetched and all records visited anyway, then it's much quicker to do it in Full Burst mode. + +The standard mode is more of the "lazy load" kind, and as such it is more suited for when a list of objects is displayed for browsing, typically in a DBGrid, and not all objects are needed but just one or a few are selected to work with. In this case displaying the first records in the grid is much quicker in standard mode. + +Partial Burst Mode should cover both cases above, and as such is the preferred mode. The only glitch about Partial Burst mode is that it keeps the database connection open for longer than Full Burst mode. If that is a concern, then Full Burst mode should be used instead. + + Performance notes ----------------- -Here are some quick benchmarks done with the example queries of PrimerExternal. Operations timed include Open and Last (to ensure full fetching) on a selector. Datasets are small (a couple dozen records). The database is a local Firebird server and the compiler is Delphi 2010. All caches were flushed at each iteration. Three iterations for each test. Times in seconds. +Here are some quick benchmarks done with one of the example queries of PrimerExternal and a dataset with a couple thousand records. +The database is a local Firebird server and the compiler is Delphi XE. All caches were flushed at each iteration. Three iterations for each test (average value reported). Times in seconds. -SELECT * FROM TCompany +select * from TCompany -Burst Standard -2.1 3.5 -2.0 3.7 -2.4 3.7 - -SELECT * FROM TPerson +No fetch, just open an InstantSelector and fetch some 20 objects for the DBGrid. -Burst Standard -4.8 6.7 -4.6 7.0 -4.7 6.8 +KF PB FB +0,9 0,8 36,1 -A further test that fetches and materializes many more objects (in the thousands) shows where the gains are in Burst Load Mode. In this test all records are visited and materialized upon opening the selector (Open; while not Eof do Next;): +Fetch all records and materialize all objects (while not Eof do Next). -SELECT * FROM TCompany +KF PB FB +65,5 45,4 45,4 -Burst Standard -54.7 104.0 +Same as above, but with statement cache enabled. -Without the fetches, that is just opening the selector and letting some 20 materialized objects populate the DBGrid, the results are: +KF PB FB +38,6 28,9 29,5 -SELECT * FROM TCompany +This confirms that using Full Burst mode when not appropriate can hurt performance, which suggests to keep it disabled by default and only enable it on request. On the other hand, Partial Burst mode appears suitable for most cases. -Burst Standard -35.0 1.2 - -This tells us that using burst mode when not appropriate can hurt performance, which suggests to keep it disabled by default and only enable it on request (property BurstLoad: Boolean default False). - Caveats and future improvements ------------------------------- -- Currently Burst Load Mode is not supported for IQL commands using the ANY keywords. Doing so will require some significant refactorings and was postponed. +- Currently Burst Load modes are not supported for IQL commands using the ANY keyword. Doing so will require some significant refactorings and was postponed. The system will silently fall back to a supported mode, if the requested mode is not supported by the actual query. You can tell by inspecting the value of the ActualLoadMode property. - External atPart and all atReference attributes still need separate queries. It is difficult but not impossible to get them in the first query as well, thus reducing fetch time even more. -- A mixture of standard and Burst Load Mode looks interesting, and the work done on Burst Load Mode makes it easier to implement it. This mixture would be a standard mode in which one or more specified attributes are fetched as well as the primary keys in the main query. This would allow to display a list of objects in a DBGrid, or other multi-record control, without materializing them, as quickly as whendoing direct SQL queries. Thought should be given to design details such as when where and how to specify the attributes that should be loaded together with the primary key. The value lmPartialBurst is reserved for this. +- A mixture of standard and Burst modes looks interesting, and the work done on Burst modes makes it easier to implement it. This mixture would be a standard mode in which one or more specified attributes are fetched as well as the primary keys in the main query. This would allow to display a list of objects in a DBGrid, or other multi-record control, without materializing them, as quickly as when doing direct SQL queries. Thought should be given to design details such as when where and how to specify the attributes that should be loaded together with the primary key, and an attribute-level mechanism to signal incomplete vs complete data would probably be needed. \ No newline at end of file Modified: trunk/Source/Core/InstantBrokers.pas =================================================================== --- trunk/Source/Core/InstantBrokers.pas 2010-09-18 08:36:12 UTC (rev 927) +++ trunk/Source/Core/InstantBrokers.pas 2010-09-19 10:23:17 UTC (rev 928) @@ -109,7 +109,7 @@ Map: TInstantAttributeMap; ConflictAction: TInstantConflictAction; Info: PInstantOperationInfo); function GetStatementCache: TInstantStatementCache; - procedure SetStatementCacheCapacity(const Value: Integer); + procedure SetStatementCacheCapacity(const AValue: Integer); protected property StatementCache: TInstantStatementCache read GetStatementCache; function EnsureResolver(Map: TInstantAttributeMap): TInstantCustomResolver; @@ -535,14 +535,14 @@ procedure InternalClearAttributeLinkRecords; virtual; procedure InternalDisposeDeletedAttributeObjects( Attribute: TInstantContainer); virtual; - procedure InternalReadAttributeObjects(Attribute: TInstantContainer; + 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; + procedure ReadAttributeObjects(Attribute: TInstantContainer; const AObjectId: string); property Broker: TInstantCustomRelationalBroker read GetBroker; property Resolver: TInstantCustomResolver read GetResolver; @@ -621,6 +621,7 @@ property Resolver: TInstantSQLResolver read GetResolver; end; + // An item in the statement cache. TInstantStatement = class private FStatementImplementation: TComponent; @@ -630,6 +631,9 @@ property StatementImplementation: TComponent read FStatementImplementation; end; + // Caches objects that implement command statements in releational brokers. + // Most commonly, they are TDataSet descendants that implement SQL queries. + // brokers cache them to save on prepare/compilation time. TInstantStatementCache = class(TComponent) private FStatements: TStringList; @@ -649,6 +653,7 @@ function AddStatement(const StatementText: string; const StatementImplementation: TComponent): Integer; function RemoveStatement(const StatementText: string): Boolean; + function HasStatementImplementation(const StatementImplementation: TComponent): Boolean; end; // A TInstantCatalog that gathers its info from an existing database (through @@ -993,21 +998,36 @@ // Backward compatibility TInstantRelationalQuery = TInstantNavigationalQuery; + // Holds object data in the current record of a dataset specified upon + // creation. May hold data for several objects, locating the correct + // record each time it copies data to an object. + TInstantDataSetObjectData = class(TInstantAbstractObjectData) + private + FDataSet: TDataSet; + FRecNo: Integer; + FIdField: TField; + public + constructor CreateAndInit(const ADataSet: TDataSet); + property DataSet: TDataSet read FDataSet; + function Locate(const AObjectId: string): Boolean; + end; + TInstantSQLQuery = class(TInstantCustomRelationalQuery) private FObjectReferenceList: TInstantObjectReferenceList; FParamsObject: TParams; FStatement: string; + FDataSet: TDataSet; procedure DestroyObjectReferenceList; function GetObjectReferenceCount: Integer; function GetObjectReferenceList: TInstantObjectReferenceList; function GetParamsObject: TParams; - procedure InitObjectReferences(const ADataSet: TDataSet); + procedure InitObjectReferences; protected function GetActive: Boolean; override; function AcquireDataSet(const AStatement: string; AParams: TParams): TDataSet; virtual; - procedure ReleaseDataSet(const DataSet: TDataSet); + procedure ReleaseDataSet; function GetParams: TParams; override; function GetStatement: string; override; function InternalAddObject(AObject: TObject): Integer; override; @@ -1049,16 +1069,6 @@ default True; end; - // Holds object data in the current record of a dataset specified upon - // creation. Used in burst load mode. - TInstantDataSetObjectData = class(TInstantAbstractObjectData) - private - FDataSet: TDataSet; - public - constructor CreateAndInit(const ADataSet: TDataSet); - property DataSet: TDataSet read FDataSet; - end; - var InstantLogProc: procedure (const AString: string) of object; @@ -1317,13 +1327,16 @@ EnsureResolver(Map).RetrieveMap(AObject, AObjectId, Map, ConflictAction, Info, FObjectData); end; -procedure TInstantCustomRelationalBroker.SetStatementCacheCapacity(const Value: Integer); +procedure TInstantCustomRelationalBroker.SetStatementCacheCapacity(const AValue: Integer); begin - FStatementCacheCapacity := Value; - if FStatementCacheCapacity = 0 then - FreeAndNil(FStatementCache) - else if Assigned(FStatementCache) then - FStatementCache.Capacity := FStatementCacheCapacity; + if FStatementCacheCapacity <> AValue then + begin + FStatementCacheCapacity := AValue; + if FStatementCacheCapacity = 0 then + FreeAndNil(FStatementCache) + else if Assigned(FStatementCache) then + FStatementCache.Capacity := FStatementCacheCapacity; + end; end; procedure TInstantCustomRelationalBroker.StoreMap(AObject: TInstantObject; @@ -1553,7 +1566,7 @@ procedure TInstantSQLBroker.ReleaseDataSet(const ADataSet: TDataSet); begin - if FStatementCacheCapacity <> 0 then + if Assigned(FStatementCache) and FStatementCache.HasStatementImplementation(ADataSet) then ADataSet.Close else ADataSet.Free; @@ -1980,7 +1993,6 @@ procedure TInstantNavigationalResolver.ClearPart(Attribute: TInstantPart); begin if Attribute.Metadata.StorageKind = skExternal then -// Attribute.Value.ObjectStore.DisposeObject(Attribute.Value, caIgnore); DisposeObject(Attribute.Value, caIgnore); end; @@ -1992,7 +2004,6 @@ if Attribute.Metadata.StorageKind = skExternal then begin for I := 0 to Pred(Attribute.Count) do -// Attribute.Items[I].ObjectStore.DisposeObject(Attribute.Items[I], caIgnore); DisposeObject(Attribute.Items[I], caIgnore); LinkDatasetResolver := GetLinkDatasetResolver(Attribute.Metadata.ExternalStorageName); @@ -3063,7 +3074,7 @@ Assert(Assigned(AStream)); // Look in TInstantCustomResolver.CreateEmbeddedObjectOutputStream - // to see the stream type. Change there need to be propagated here. + // to see the stream type. Changes there need to be propagated here. if AConnector.BlobStreamFormat = sfBinary then begin LParam := AddParam(AParams, AParamName, ftBlob); @@ -3274,7 +3285,6 @@ as TInstantObject; try if Assigned(PartObject) then -// PartObject.ObjectStore.DisposeObject(PartObject, caIgnore); DisposeObject(PartObject, caIgnore); finally PartObject.Free; @@ -3325,8 +3335,6 @@ Attribute := TInstantContainer(AObject.AttributeByName( AttributeMetadata.Name)); for j := 0 to Pred(Attribute.Count) do -// Attribute.Items[j].ObjectStore.DisposeObject( -// Attribute.Items[j], caIgnore); DisposeObject(Attribute.Items[j], caIgnore); end; DeleteAllExternalLinks(i); @@ -3376,9 +3384,12 @@ LParams: TParams; begin // This resolver supports retrieving data from TInstantDataSetObjectData. - if Assigned(AObjectData) and (AObjectData is TInstantDataSetObjectData) then + if Assigned(AObjectData) and (AObjectData is TInstantDataSetObjectData) + and TInstantDataSetObjectData(AObjectData).Locate(AObjectId) then + begin RetrieveMapFromDataSet(AObject, AObjectId, Map, ConflictAction, AInfo, - TInstantDataSetObjectData(AObjectData).DataSet) + TInstantDataSetObjectData(AObjectData).DataSet); + end else begin LParams := TParams.Create; @@ -3476,7 +3487,6 @@ AObject.Connector) as TInstantObject; try if Assigned(PartObject) then -// PartObject.ObjectStore.DisposeObject(PartObject, caIgnore); DisposeObject(PartObject, caIgnore); finally PartObject.Free; @@ -3495,7 +3505,6 @@ // Store object PartObject := PartAttribute.Value; PartObject.CheckId; -// PartObject.ObjectStore.StoreObject(PartObject, caIgnore); StoreObject(PartObject, caIgnore); end; end; @@ -3513,7 +3522,6 @@ for I := 0 to Pred(Map.Count) do begin AttributeMetadata := Map[I]; -// if AttributeMetadata.AttributeType = atParts then if AttributeMetadata.AttributeType in [atParts, atReferences] then begin Attribute := TInstantContainer(AObject.AttributeByName( @@ -4080,7 +4088,6 @@ procedure TInstantNavigationalLinkResolver.InternalDisposeDeletedAttributeObjects( Attribute: TInstantContainer); var -// I: Integer; Obj: TInstantObject; AttributeMetadata: TInstantAttributeMetadata; ObjDisposed: Boolean; @@ -4096,43 +4103,14 @@ AttributeMetadata := Attribute.Metadata; while not Eof do begin -// PartDeleted := True; -// for I := 0 to Pred(Attribute.Count) do -// begin -// if InstantSameText(Attribute.Fields[I].Id, ADataSet.Fields[4].AsString, -// True) then -// begin -// PartDeleted := False; -// Break; -// end; -// end; -// if PartDeleted then -// begin -// PartObject := AttributeMetadata.ObjectClass.Retrieve( -// ADataSet.Fields[4].AsString, False, False, Attribute.Connector); -// try -// if Assigned(PartObject) then -// begin -// PartObject.ObjectStore.DisposeObject(PartObject, caIgnore); -// ADataSet.Delete; -// end; -// finally -// PartObject.Free; -// end; -// if not PartDeleted then -// ADataSet.Next; -// end; - ObjDisposed := False; Obj := AttributeMetadata.ObjectClass.Retrieve( - FieldByName(InstantChildIdFieldName).AsString, -// DataSet.Fields[4].AsString, - False, False, Attribute.Connector) as TInstantObject; + FieldByName(InstantChildIdFieldName).AsString, + False, False, Attribute.Connector) as TInstantObject; try if Assigned(Obj) and - (Attribute.IndexOf(Obj) = -1) then + (Attribute.IndexOf(Obj) = -1) then begin -// Obj.ObjectStore.DisposeObject(Obj, caIgnore); Resolver.DisposeObject(Obj, caIgnore); Delete; ObjDisposed := True; @@ -4153,6 +4131,7 @@ Attribute: TInstantContainer; const AObjectId: string); var WasOpen: Boolean; + LChildClassField, LChildIdField: TField; begin WasOpen := Dataset.Active; @@ -4162,13 +4141,11 @@ // Attribute.Owner.Id can be '', so do not use here. SetDatasetParentRange(Attribute.Owner.Classname, AObjectId); First; + LChildClassField := FieldByName(InstantChildClassFieldName); + LChildIdField := FieldByName(InstantChildIdFieldName); while not Eof do begin - Attribute.AddReference( - FieldByName(InstantChildClassFieldName).AsString, - FieldByName(InstantChildIdFieldName).AsString); -// DataSet.Fields[3].AsString, -// DataSet.Fields[4].AsString); + Attribute.AddReference(LChildClassField.AsString, LChildIdField.AsString); Next; end; finally @@ -4197,7 +4174,6 @@ Obj.CheckId; Append; try -// FieldByName(InstantIdFieldName).AsString := Obj.GenerateId; FieldByName(InstantIdFieldName).AsString := Attribute.Connector.GenerateId; FieldByName(InstantParentClassFieldName).AsString := @@ -4206,19 +4182,10 @@ FieldByName(InstantChildClassFieldName).AsString := Obj.ClassName; FieldByName(InstantChildIdFieldName).AsString := Obj.Id; FieldByName(InstantSequenceNoFieldName).AsInteger := Succ(I); -//// DataSet.Fields[0].AsString := Obj.GenerateId; -// DataSet.Fields[0].AsString := Obj.Id; -// DataSet.Fields[1].AsString := -// Attribute.Owner.ClassName; -// DataSet.Fields[2].AsString := Attribute.Owner.Id; -// DataSet.Fields[3].AsString := Obj.ClassName; -// DataSet.Fields[4].AsString := Obj.Id; -// DataSet.Fields[5].AsInteger := Succ(I); Post; except Cancel; end; -// Obj.ObjectStore.StoreObject(Obj, caIgnore); Resolver.StoreObject(Obj, caIgnore); end; finally @@ -4312,13 +4279,11 @@ while not DataSet.Eof do begin Obj := InstantFindClass(DataSet.FieldByName(InstantChildClassFieldName).AsString).Retrieve( -// DataSet.Fields[1].AsString, False, False, AObject.Connector); DataSet.FieldByName(InstantChildIdFieldName).AsString, False, False, Attribute.Connector) as TInstantObject; try if Assigned(Obj) and (Attribute.IndexOf(Obj) = -1) then -// Obj.ObjectStore.DisposeObject(Obj, caIgnore); Resolver.DisposeObject(Obj, caIgnore); finally Obj.Free; @@ -4336,28 +4301,29 @@ end; end; -procedure TInstantSQLLinkResolver.InternalReadAttributeObjects(Attribute: - TInstantContainer; const AObjectId: string); +procedure TInstantSQLLinkResolver.InternalReadAttributeObjects( + Attribute: TInstantContainer; const AObjectId: string); var Statement: string; Params: TParams; - Dataset: TDataset; + Dataset: TDataSet; + LChildClassField, LChildIdField: TField; begin Params := TParams.Create; try Statement := Format(Resolver.SelectExternalSQL, [TableName]); Resolver.AddIdParam(Params, InstantParentIdFieldName, AObjectId); Resolver.AddStringParam(Params, InstantParentClassFieldName, - AttributeOwner.ClassName); + AttributeOwner.ClassName); DataSet := Broker.AcquireDataSet(Statement, Params); try DataSet.Open; try + LChildClassField := DataSet.FieldByName(InstantChildClassFieldName); + LChildIdField := DataSet.FieldByName(InstantChildIdFieldName); while not DataSet.Eof do begin - Attribute.AddReference( - DataSet.FieldByName(InstantChildClassFieldName).AsString, - DataSet.FieldByName(InstantChildIdFieldName).AsString); + Attribute.AddReference(LChildClassField.AsString, LChildIdField.AsString); DataSet.Next; end; finally @@ -4385,7 +4351,6 @@ // Store object Obj := Attribute.Items[I]; Obj.CheckId; -// Obj.ObjectStore.StoreObject(Obj, caIgnore); Resolver.StoreObject(Obj, caIgnore); // Insert link @@ -4393,7 +4358,6 @@ try Statement := Format(Resolver.InsertExternalSQL, [TableName]); -// Resolver.AddIdParam(Params, InstantIdFieldName, AttributeOwner.GenerateId); Resolver.AddIdParam(Params, InstantIdFieldName, Attribute.Connector.GenerateId); Resolver.AddStringParam(Params, InstantParentClassFieldName, @@ -4489,6 +4453,22 @@ Result := nil; end; +function TInstantStatementCache.HasStatementImplementation( + const StatementImplementation: TComponent): Boolean; +var + I: Integer; +begin + Result := False; + for I := 0 to FStatements.Count - 1 do + begin + if TinstantStatement(FStatements.Objects[I]).StatementImplementation = StatementImplementation then + begin + Result := True; + Break; + end; + end; +end; + procedure TInstantStatementCache.Notification(AComponent: TComponent; Operation: TOperation); var I: Integer; @@ -5564,7 +5544,7 @@ // Mind that LContext.ActualBurstLoadMode might be different than // Self.RequestedBurstLoadMode. - if LContext.ActualLoadMode = lmFullBurst then + if IsBurstLoadMode(LContext.ActualLoadMode) then begin // Use the Id just to get the table path needed to add the updatecount // field. We could use anything we know is in the main table. @@ -5922,13 +5902,6 @@ end; end; -destructor TInstantSQLQuery.Destroy; -begin - DestroyObjectReferenceList; - FParamsObject.Free; - inherited; -end; - { TInstantSQLQuery } function TInstantSQLQuery.AcquireDataSet(const AStatement: string; @@ -5938,6 +5911,14 @@ AParams); end; +destructor TInstantSQLQuery.Destroy; +begin + DestroyObjectReferenceList; + ReleaseDataSet; + FParamsObject.Free; + inherited; +end; + procedure TInstantSQLQuery.DestroyObjectReferenceList; begin FreeAndNil(FObjectReferenceList); @@ -5978,50 +5959,45 @@ Result := FStatement; end; -procedure TInstantSQLQuery.InitObjectReferences(const ADataSet: TDataSet); - - function IsBurstLoadModeDataSet(const ADataSet: TDataSet): Boolean; - begin - // A trick to check if the dataset that came from the broker is actually - // a burst load mode dataset. Requesting burst load mode does not guarantee - // to get it, as not all IQL query types support it yet. - Result := Assigned(ADataSet.FindField(InstantUpdateCountFieldName)); - end; - +procedure TInstantSQLQuery.InitObjectReferences; var LObjRef: TInstantObjectReference; - LObjData: TInstantDataSetObjectData; + LClassField, LIdField: TField; begin - LObjData := nil; - if Assigned(ADataSet) then + Assert(Assigned(Connector)); + + if Assigned(FDataSet) then begin - ADataSet.DisableControls; try - if IsBurstLoadModeDataSet(ADataSet) then - LObjData := TInstantDataSetObjectData.CreateAndInit(ADataSet); + FDataSet.DisableControls; try - while not ADataSet.Eof do + LClassField := FDataSet.FieldByName(InstantClassFieldName); + LIdField := FDataSet.FieldByName(InstantIdFieldName); + while not FDataSet.Eof do begin LObjRef := ObjectReferenceList.Add; try - LObjRef.ReferenceObject( - ADataSet.FieldByName(InstantClassFieldName).AsString, - ADataSet.FieldByName(InstantIdFieldName).AsString); - if Assigned(LObjData) then - LObjRef.RetrieveObjectFromObjectData(LObjData); + if IsBurstLoadMode(ActualLoadMode) then + LObjRef.ReferenceObject(LClassField.AsString, LIdField.AsString, + TInstantDataSetObjectData.CreateAndInit(FDataSet)) + else + LObjRef.ReferenceObject(LClassField.AsString, LIdField.AsString); + if ActualLoadMode = lmFullBurst then + LObjRef.RetrieveObjectFromObjectData; except LObjRef.Free; raise; end; if (MaxCount > 0) and (ObjectReferenceList.Count = MaxCount) then Break; - ADataSet.Next; + FDataSet.Next; end; finally - FreeAndNil(LObjData); + FDataSet.EnableControls; end; finally - ADataSet.EnableControls; + if ActualLoadMode = lmFullBurst then + ReleaseDataSet; end; end; end; @@ -6034,6 +6010,7 @@ procedure TInstantSQLQuery.InternalClose; begin DestroyObjectReferenceList; + ReleaseDataSet; inherited; end; @@ -6072,18 +6049,18 @@ end; procedure TInstantSQLQuery.InternalOpen; -var - DataSet: TDataSet; begin inherited; - DataSet := AcquireDataSet(Statement, ParamsObject); - if Assigned(DataSet) then + ReleaseDataSet; + FDataSet := AcquireDataSet(Statement, ParamsObject); + if Assigned(FDataSet) then try - if not DataSet.Active then - DataSet.Open; - InitObjectReferences(DataSet); - finally - ReleaseDataSet(DataSet); + if not FDataSet.Active then + FDataSet.Open; + InitObjectReferences; + except + ReleaseDataSet; + raise; end; end; @@ -6106,9 +6083,13 @@ Result := ObjectReferenceList.RefItems[Index].HasInstance; end; -procedure TInstantSQLQuery.ReleaseDataSet(const DataSet: TDataSet); +procedure TInstantSQLQuery.ReleaseDataSet; begin - (Connector.Broker as TInstantSQLBroker).ReleaseDataSet(DataSet); + if Assigned(FDataSet) and Assigned(Connector) and Assigned(Connector.Broker) then + begin + (Connector.Broker as TInstantSQLBroker).ReleaseDataSet(FDataSet); + FDataSet := nil; + end; end; procedure TInstantSQLQuery.SetParams(Value: TParams); @@ -6446,7 +6427,7 @@ LTablePath := ObjectClassMetadata.TableName; end; AddTablePath(LTablePath); - if ActualLoadMode = lmFullBurst then + if IsBurstLoadMode(ActualLoadMode) then begin // Standard mode only adds the main table when needed, and not always. // A possible optimization would be to add it only if it does actually @@ -6482,7 +6463,7 @@ AddCriteria(Format('%s <> 0', [QualifyPath(ConcatPath(Specifier.Text, InstantIdFieldName))])); end; - if ActualLoadMode = lmFullBurst then + if IsBurstLoadMode(ActualLoadMode) then begin LClassMeta := ObjectClassMetadata.Parent; while Assigned(LClassMeta) do @@ -6793,6 +6774,14 @@ Assert(Assigned(ADataSet)); Create; FDataSet := ADataSet; + FRecNo := ADataSet.RecNo; + FIdField := ADataSet.FieldByName(InstantIdFieldName); end; +function TInstantDataSetObjectData.Locate(const AObjectId: string): Boolean; +begin + FDataSet.RecNo := FRecNo; + Result := FIdField.AsString = AObjectId; +end; + end. Modified: trunk/Source/Core/InstantPersistence.pas =================================================================== --- trunk/Source/Core/InstantPersistence.pas 2010-09-18 08:36:12 UTC (rev 927) +++ trunk/Source/Core/InstantPersistence.pas 2010-09-19 10:23:17 UTC (rev 928) @@ -105,6 +105,7 @@ FObjectId: string; FOwner: TInstantComplex; FOwnsInstance: Boolean; + FObjectData: TInstantAbstractObjectData; procedure ClearReference; procedure DoAssignInstance(AInstance: TInstantObject; AOwnsInstance: Boolean); function GetInstance: TInstantObject; @@ -136,13 +137,12 @@ function IsBroken: Boolean; procedure ReadAsObject(Reader: TInstantReader); virtual; procedure Reset; - procedure ReferenceObject(const AObjectClassName, - AObjectId: string); overload; - procedure ReferenceObject(AObjectClass: TInstantObjectClass; - const AObjectId: string); overload; - // Retrieves the referenced object from the specified data object. - // Used in burst load mode to get the data already fetched in a dataset. - procedure RetrieveObjectFromObjectData(const AObjectData: TInstantAbstractObjectData); + procedure ReferenceObject(const AObjectClassName, AObjectId: string; + const AObjectData: TInstantAbstractObjectData = nil); overload; + procedure ReferenceObject(const AObjectClass: TInstantObjectClass; + const AObjectId: string; const AObjectData: TInstantAbstractObjectData = nil); overload; + // Retrieves the referenced object from internal data object, if available. + procedure RetrieveObjectFromObjectData; procedure WriteAsObject(Writer: TInstantWriter); virtual; property Instance: TInstantObject read GetInstance write SetInstance; property ObjectClass: TInstantObjectClass read GetObjectClass; @@ -2036,15 +2036,18 @@ { TInstantObjectReference } procedure TInstantObjectReference.Assign(Source: TPersistent); +var + LSource: TInstantObjectReference; begin inherited; if Source is TInstantObjectReference then - with TInstantObjectReference(Source) do - begin - Self.FObjectClassName := FObjectClassName; - Self.FObjectId := FObjectId; - Self.Instance := Instance; - end; + begin + LSource := TInstantObjectReference(Source); + FObjectClassName := LSource.FObjectClassName; + FObjectId := LSource.FObjectId; + Instance := LSource.Instance; + FObjectData := LSource.FObjectData; + end; end; procedure TInstantObjectReference.AssignInstance(AInstance: TInstantObject); @@ -2056,6 +2059,7 @@ begin FObjectClassName := ''; FObjectId := ''; + FreeAndNil(FObjectData); end; constructor TInstantObjectReference.Clone(Source: TInstantObjectReference; @@ -2091,7 +2095,7 @@ InstantCheckConnector(Connector); if HasReference then begin - Obj := ObjectClass.Retrieve(ObjectId, False, False, Connector); + Obj := ObjectClass.Retrieve(ObjectId, False, False, Connector, FObjectData); DoAssignInstance(Obj, AOwnsInstance); end; if Assigned(FInstance) then @@ -2104,6 +2108,7 @@ destructor TInstantObjectReference.Destroy; begin + FreeAndNil(FObjectData); DestroyInstance; inherited; end; @@ -2224,27 +2229,36 @@ Reader.ReadStr; FObjectClassName := Reader.ReadStr; FObjectId := Reader.ReadStr; + FObjectData := nil; end; procedure TInstantObjectReference.ReferenceObject(const AObjectClassName, - AObjectId: string); + AObjectId: string; const AObjectData: TInstantAbstractObjectData = nil); begin if not Equals(AObjectClassName, AObjectId) then begin + FreeAndNil(FObjectData); DestroyInstance; FObjectClassName := AObjectClassName; FObjectId := AObjectId; + FObjectData := AObjectData; end; end; -procedure TInstantObjectReference.RetrieveObjectFromObjectData( - const AObjectData: TInstantAbstractObjectData); +procedure TInstantObjectReference.ReferenceObject( + const AObjectClass: TInstantObjectClass; const AObjectId: string; + const AObjectData: TInstantAbstractObjectData = nil); +begin + ReferenceObject(AObjectClass.ClassName, AObjectId, AObjectData); +end; + +procedure TInstantObjectReference.RetrieveObjectFromObjectData; var LObject: TInstantObject; begin - Assert(Assigned(AObjectData)); + Assert(Assigned(FObjectData)); - LObject := ObjectClass.Retrieve(ObjectId, False, False, nil, AObjectData); + LObject := ObjectClass.Retrieve(ObjectId, False, False, nil, FObjectData); DoAssignInstance(LObject, True); if Assigned(FInstance) then FInstance.Release @@ -2252,12 +2266,6 @@ Integer(FInstance) := -1; end; -procedure TInstantObjectReference.ReferenceObject( - AObjectClass: TInstantObjectClass; const AObjectId: string); -begin - ReferenceObject(AObjectClass.ClassName, AObjectId); -end; - procedure TInstantObjectReference.Reset; begin DestroyInstance; @@ -7567,6 +7575,7 @@ Result := Assigned(AObject) and AObject.Metadata.IsStored; if not Result then Exit; + CheckBroker(Broker); try AObject.DisableChanges; Modified: trunk/Source/Core/InstantTypes.pas =================================================================== --- trunk/Source/Core/InstantTypes.pas 2010-09-18 08:36:12 UTC (rev 927) +++ trunk/Source/Core/InstantTypes.pas 2010-09-19 10:23:17 UTC (rev 928) @@ -104,17 +104,25 @@ // working with a SQL broker. See documentation for implication of using the // different modes. TInstantLoadMode = ( - // Loads primary keys first, everything else on demand. + // Loads primary keys first, materializes objects on demand by loading + // all object data from the database. lmKeysFirst, - // Loads selected attributes first - not yet implemented. - // Falls back to lmKeysFirst. - //lmPartialBurst, + // Loads all simple attributes first, materializes objects on demand using + // loaded data from simple attributes and accessing the database for the + // rest. + lmPartialBurst, // Loads all simple attributes and internal containers in the first pass. - // In the future this might trigger loading of external atPart attributes - // as well. + // Materializes all objects when the cursor is open. lmFullBurst ); +function IsBurstLoadMode(const ALoadMode: TInstantLoadMode): Boolean; {$IFDEF D10+}inline;{$ENDIF} + implementation +function IsBurstLoadMode(const ALoadMode: TInstantLoadMode): Boolean; {$IFDEF D10+}inline;{$ENDIF} +begin + Result := ALoadMode in [lmPartialBurst, lmFullBurst]; +end; + end. |
From: <dav...@us...> - 2012-01-14 02:59:19
|
Revision: 953 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=953&view=rev Author: davidvtaylor Date: 2012-01-14 02:59:12 +0000 (Sat, 14 Jan 2012) Log Message: ----------- + Implement support for setting the Display Label for model attributes Modified Paths: -------------- trunk/Source/Core/InstantCode.pas trunk/Source/Core/InstantMetadata.pas trunk/Source/Core/InstantPresentation.pas trunk/Source/Design/InstantAttributeEditor.dfm trunk/Source/Design/InstantAttributeEditor.pas trunk/Source/ObjectFoundry/OFClasses.pas trunk/Tests/TestInstantAttributeMetadata.pas Modified: trunk/Source/Core/InstantCode.pas =================================================================== --- trunk/Source/Core/InstantCode.pas 2012-01-09 23:06:34 UTC (rev 952) +++ trunk/Source/Core/InstantCode.pas 2012-01-14 02:59:12 UTC (rev 953) @@ -1594,6 +1594,7 @@ MetaKeyEmbedded = 'embedded'; MetaKeyValid = 'valid'; MetaKeyWidth = 'width'; + MetaKeyLabel = 'label'; ModuleTypeNames: array[TInstantCodeModuleType] of string = ('program', 'unit', 'library'); @@ -4133,6 +4134,8 @@ Metadata.ValidCharsString := Reader.ReadStringValue else if Token = MetaKeyWidth then Metadata.DisplayWidth := Reader.ReadInteger + else if Token = MetaKeyLabel then + Metadata.Displaylabel := Reader.ReadStringValue else Reader.ErrorMessage('Unknown parameter: ' + Token); end; @@ -4172,6 +4175,8 @@ if Metadata.HasValidChars then WriteStr(MetaKeyValid, Metadata.ValidCharsString); WriteInt(MetaKeyWidth, Metadata.DisplayWidth); + if Metadata.HasDisplayLabel then + WriteStr(MetaKeyLabel, Metadata.DisplayLabel); if IsIndexed then Writer.Write(' ' + MetaKeyIndex); if IsRequired then Modified: trunk/Source/Core/InstantMetadata.pas =================================================================== --- trunk/Source/Core/InstantMetadata.pas 2012-01-09 23:06:34 UTC (rev 952) +++ trunk/Source/Core/InstantMetadata.pas 2012-01-14 02:59:12 UTC (rev 953) @@ -465,6 +465,7 @@ FDefaultValue: string; FUseNull: Boolean; FDisplayWidth: Integer; + FDisplayLabel: string; FEditMask: string; FIsIndexed: Boolean; FIsRequired: Boolean; @@ -485,6 +486,7 @@ function GetCollection: TInstantAttributeMetadatas; function GetFieldName: string; function GetHasValidChars: Boolean; + function GetHasDisplayLabel: Boolean; function GetIsDefault: Boolean; function GetObjectClass: TInstantAbstractObjectClass; function GetObjectClassMetadata: TInstantClassMetadata; @@ -526,6 +528,7 @@ read GetObjectClassMetadata; property FieldName: string read GetFieldName write SetFieldName; property HasValidChars: Boolean read GetHasValidChars; + property HasDisplayLabel: Boolean read GetHasDisplayLabel; property TableName: string read GetTableName; procedure ValidateAttribute(const AAttribute: TInstantAbstractAttribute; const AValue: string); @@ -539,6 +542,7 @@ property UseNull: Boolean read FUseNull write FUseNull default False; property DisplayWidth: Integer read FDisplayWidth write FDisplayWidth default 0; + property DisplayLabel: string read FDisplayLabel write FDisplayLabel; property EditMask: string read FEditMask write FEditMask; property ExternalStorageName: string read FExternalStorageName write FExternalStorageName; @@ -1725,6 +1729,7 @@ FAttributeType := LSource.AttributeType; FDefaultValue := LSource.DefaultValue; FDisplayWidth := LSource.DisplayWidth; + FDisplayLabel := LSource.DisplayLabel; FEditMask := LSource.EditMask; FIsIndexed := LSource.IsIndexed; FIsRequired := LSource.IsRequired; @@ -1860,6 +1865,11 @@ Result := FValidCharsString <> ''; end; +function TInstantAttributeMetadata.GetHasDisplayLabel: Boolean; +begin + Result := FDisplayLabel <> ''; +end; + function TInstantAttributeMetadata.GetIsDefault: Boolean; begin Result := Assigned(ClassMetadata) and Modified: trunk/Source/Core/InstantPresentation.pas =================================================================== --- trunk/Source/Core/InstantPresentation.pas 2012-01-09 23:06:34 UTC (rev 952) +++ trunk/Source/Core/InstantPresentation.pas 2012-01-14 02:59:12 UTC (rev 953) @@ -24,7 +24,7 @@ * the Initial Developer. All Rights Reserved. * * Contributor(s): - * Carlo Barazzetta, Andrea Petrelli, Nando Dessena, Joao Morais, + * Carlo Barazzetta, Andrea Petrelli, Nando Dessena, Joao Morais, * Steven Mitchell, Brian Andersen, David Taylor * * ***** END LICENSE BLOCK ***** *) @@ -3192,6 +3192,8 @@ begin (Field as TBCDField).Currency := True; end; + if Assigned(Metadata) and (Metadata.HasDisplayLabel) then + Field.DisplayLabel := Metadata.DisplayLabel; if Assigned(FOnInitField) then FOnInitField(Self, Field); end; Modified: trunk/Source/Design/InstantAttributeEditor.dfm =================================================================== --- trunk/Source/Design/InstantAttributeEditor.dfm 2012-01-09 23:06:34 UTC (rev 952) +++ trunk/Source/Design/InstantAttributeEditor.dfm 2012-01-14 02:59:12 UTC (rev 953) @@ -351,6 +351,14 @@ Caption = 'Display &Width' FocusControl = DisplayWidthEdit end + object DisplayLabelLabel: TLabel + Left = 8 + Top = 128 + Width = 64 + Height = 13 + Caption = 'Display &Label' + FocusControl = DisplayLabelEdit + end object ValidCharsLabel: TLabel Left = 8 Top = 48 @@ -361,7 +369,7 @@ end object DefaultValueLabel: TLabel Left = 8 - Top = 128 + Top = 168 Width = 64 Height = 13 Caption = '&Default Value' @@ -385,6 +393,15 @@ DataSource = SubjectSource TabOrder = 2 end + object DisplayLabelEdit: TDBEdit + Left = 8 + Top = 144 + Width = 209 + Height = 21 + DataField = 'Metadata.DisplayLabel' + DataSource = SubjectSource + TabOrder = 3 + end object ValidCharsEdit: TDBEdit Left = 8 Top = 64 @@ -396,12 +413,12 @@ end object DefaultValueEdit: TDBEdit Left = 8 - Top = 144 + Top = 184 Width = 209 Height = 21 DataField = 'Metadata.DefaultValue' DataSource = SubjectSource - TabOrder = 3 + TabOrder = 4 end end end Modified: trunk/Source/Design/InstantAttributeEditor.pas =================================================================== --- trunk/Source/Design/InstantAttributeEditor.pas 2012-01-09 23:06:34 UTC (rev 952) +++ trunk/Source/Design/InstantAttributeEditor.pas 2012-01-14 02:59:12 UTC (rev 953) @@ -77,6 +77,8 @@ DefinitionSheet: TTabSheet; DisplayWidthEdit: TDBEdit; DisplayWidthLabel: TLabel; + DisplayLabelEdit: TDBEdit; + DisplayLabelLabel: TLabel; EditMaskEdit: TDBEdit; EdtMaskLabel: TLabel; MethodAddCheckBox: TCheckBox; Modified: trunk/Source/ObjectFoundry/OFClasses.pas =================================================================== --- trunk/Source/ObjectFoundry/OFClasses.pas 2012-01-09 23:06:34 UTC (rev 952) +++ trunk/Source/ObjectFoundry/OFClasses.pas 2012-01-14 02:59:12 UTC (rev 953) @@ -345,6 +345,7 @@ TaggedStrings['EditMask'] := Metadata.EditMask; TaggedStrings['ValidChars'] := Metadata.ValidCharsString; TaggedIntegers['DisplayWidth'] := Metadata.DisplayWidth; + TaggedString['DisplayLabel'] := Metadata.DisplayLabel; TaggedStrings['DefaultValue'] := Metadata.DefaultValue; WasReadOnly := Prop.WriteAccess = rwNone; if ReadOnly <> WasReadOnly then @@ -549,6 +550,7 @@ Metadata.EditMask := TaggedStrings['EditMask']; Metadata.ValidCharsString := TaggedStrings['ValidChars']; Metadata.DisplayWidth := TaggedIntegers['DisplayWidth']; + Metadata.DisplayLabel := TaggedStrings['DisplayLabel']; Metadata.DefaultValue := TaggedStrings['DefaultValue']; DetectContainerMethods; FOldName := Name; Modified: trunk/Tests/TestInstantAttributeMetadata.pas =================================================================== --- trunk/Tests/TestInstantAttributeMetadata.pas 2012-01-09 23:06:34 UTC (rev 952) +++ trunk/Tests/TestInstantAttributeMetadata.pas 2012-01-14 02:59:12 UTC (rev 953) @@ -231,6 +231,7 @@ FInstantAttributeMetadata.AttributeType := atString; FInstantAttributeMetadata.DefaultValue := 'Default'; FInstantAttributeMetadata.DisplayWidth := 10; + FInstantAttributeMetadata.DisplayLabel := ''; FInstantAttributeMetadata.EditMask := ''; FInstantAttributeMetadata.IsIndexed := False; FInstantAttributeMetadata.IsRequired := True; @@ -262,6 +263,7 @@ vSource.AttributeType := atString; vSource.DefaultValue := 'Default'; vSource.DisplayWidth := 10; + vSource.DisplayLabel := 'FieldLabel'; vSource.EditMask := ''; vSource.IsIndexed := False; vSource.IsRequired := True; @@ -278,6 +280,7 @@ AssertEquals('AttributeType incorrect', 'atString', vStr); AssertEquals('DefaultValue incorrect', 'Default', vDest.DefaultValue); AssertEquals('DisplayWidth incorrect', 10, vDest.DisplayWidth); + AssertEquals('DisplayLabel incorrect', 'FieldLabel', vDest.DisplayLabel); AssertEquals('EditMask incorrect', '', vDest.EditMask); AssertEquals('IsIndexed incorrect', False, vDest.IsIndexed); AssertEquals('IsRequired incorrect', True, vDest.IsRequired); |
From: <na...@us...> - 2012-10-29 20:44:49
|
Revision: 961 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=961&view=rev Author: nandod Date: 2012-10-29 20:44:39 +0000 (Mon, 29 Oct 2012) Log Message: ----------- + Assorted files for older Delphi versions. Modified Paths: -------------- trunk/Demos/PrimerCross/PrimerExternal_DXE.dproj trunk/Demos/PrimerCross/PrimerExternal_DXE.res trunk/Source/Brokers/ADO/D2007/DclIOADO.dproj trunk/Source/Brokers/ADO/DXE2/DclIOADO.res trunk/Source/Brokers/ADO/DXE2/IOADO.res trunk/Source/Brokers/BDE/D2007/DclIOBDE.dproj trunk/Source/Brokers/BDE/DXE2/DclIOBDE.res trunk/Source/Brokers/BDE/DXE2/IOBDE.res trunk/Source/Brokers/DBX/D2007/DclIODBX.dproj trunk/Source/Brokers/DBX/DXE2/DclIODBX.res trunk/Source/Brokers/DBX/DXE2/IODBX.res trunk/Source/Brokers/IBX/D2007/DclIOIBX.dproj trunk/Source/Brokers/IBX/DXE2/DclIOIBX.res trunk/Source/Brokers/IBX/DXE2/IOIBX.res trunk/Source/Brokers/XML/D2007/DclIOXML.dproj trunk/Source/Brokers/XML/DXE2/DclIOXML.res trunk/Source/Brokers/XML/DXE2/IOXML.res trunk/Source/Catalogs/IBFb/DXE2/IOIBFbCatalog.res trunk/Source/Catalogs/MSSql/DXE2/IOMSSqlCatalog.res trunk/Source/Catalogs/MySQL/DXE2/IOMySQLCatalog.res trunk/Source/Core/DXE2/IOCore.res trunk/Source/Design/D2007/DclIOCore.dproj trunk/Source/Design/DXE2/DclIOCore.res trunk/Tests/TestIO_DXE2.dpr trunk/Tests/TestIO_DXE2.dproj trunk/Tests/TestIO_DXE2.mdrt trunk/Tests/TestIO_DXE2.mdx trunk/Tests/TestIO_DXE2.mdxt trunk/Tests/TestIO_DXE2.res Added Paths: ----------- trunk/Demos/PrimerCross/Primer_DXE2.dpr trunk/Demos/PrimerCross/Primer_DXE2.dproj trunk/Demos/PrimerCross/Primer_DXE2.mdr trunk/Demos/PrimerCross/Primer_DXE2.res trunk/Demos/PrimerCross/Primer_DXE2.xml trunk/Demos/PrimerCross/Primer_DXE2_Icon.ico trunk/Source/Brokers/NexusDb/D2007/ trunk/Source/Brokers/NexusDb/D2007/DclIONexusDB.dpk trunk/Source/Brokers/NexusDb/D2007/DclIONexusDB.dproj trunk/Source/Brokers/NexusDb/D2007/DclIONexusDB.res trunk/Source/Brokers/NexusDb/D2007/IONexusDB.dpk trunk/Source/Brokers/NexusDb/D2007/IONexusDB.dproj trunk/Source/Brokers/NexusDb/D2007/IONexusDB.res trunk/Source/Brokers/NexusDb/D2009/ trunk/Source/Brokers/NexusDb/D2009/DclIONexusDB.dpk trunk/Source/Brokers/NexusDb/D2009/DclIONexusDB.dproj trunk/Source/Brokers/NexusDb/D2009/DclIONexusDB.res trunk/Source/Brokers/NexusDb/D2009/IONexusDB.dpk trunk/Source/Brokers/NexusDb/D2009/IONexusDB.dproj trunk/Source/Brokers/NexusDb/D2009/IONexusDB.res trunk/Source/Brokers/UIB/D2007/ trunk/Source/Brokers/UIB/D2007/DclIOUIB.dpk trunk/Source/Brokers/UIB/D2007/DclIOUIB.dproj trunk/Source/Brokers/UIB/D2007/DclIOUIB.res trunk/Source/Brokers/UIB/D2007/IOUIB.dpk trunk/Source/Brokers/UIB/D2007/IOUIB.dproj trunk/Source/Brokers/UIB/D2007/IOUIB.res Modified: trunk/Demos/PrimerCross/PrimerExternal_DXE.dproj =================================================================== --- trunk/Demos/PrimerCross/PrimerExternal_DXE.dproj 2012-10-29 20:37:39 UTC (rev 960) +++ trunk/Demos/PrimerCross/PrimerExternal_DXE.dproj 2012-10-29 20:44:39 UTC (rev 961) @@ -5,16 +5,27 @@ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> <DCC_DependencyCheckOutputName>PrimerExternal.exe</DCC_DependencyCheckOutputName> - <ProjectVersion>12.2</ProjectVersion> + <ProjectVersion>13.4</ProjectVersion> <Config Condition="'$(Config)'==''">Debug</Config> <Base>True</Base> - <Platform>Win32</Platform> <AppType>Application</AppType> <FrameworkType>VCL</FrameworkType> + <Platform Condition="'$(Platform)'==''">Win32</Platform> + <TargetedPlatforms>1</TargetedPlatforms> </PropertyGroup> <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> <Base>true</Base> </PropertyGroup> + <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> + <Base_Win64>true</Base_Win64> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> + <Base_Win32>true</Base_Win32> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> <Cfg_1>true</Cfg_1> <CfgParent>Base</CfgParent> @@ -26,10 +37,25 @@ <Base>true</Base> </PropertyGroup> <PropertyGroup Condition="'$(Base)'!=''"> - <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias)</DCC_UnitAlias> + <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> + <VerInfo_MajorVer>2</VerInfo_MajorVer> + <DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;VCLTee;$(DCC_Namespace)</DCC_Namespace> + <VerInfo_Keys>CompanyName=InstantObjects.org;FileDescription=Primer Demo;FileVersion=2.0.0.0;InternalName=;LegalCopyright=MPL public license;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=2.0;Comments=</VerInfo_Keys> + <VerInfo_Locale>1030</VerInfo_Locale> <DCC_Define>IO_STATEMENT_LOGGING;$(DCC_Define)</DCC_Define> <DCC_DependencyCheckOutputName>PrimerExternal_D2009.exe</DCC_DependencyCheckOutputName> </PropertyGroup> + <PropertyGroup Condition="'$(Base_Win64)'!=''"> + <Icon_MainIcon>PrimerExternal_DXE_Icon1.ico</Icon_MainIcon> + </PropertyGroup> + <PropertyGroup Condition="'$(Base_Win32)'!=''"> + <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> + <Icon_MainIcon>PrimerExternal_DXE_Icon1.ico</Icon_MainIcon> + <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> + <VerInfo_Locale>1033</VerInfo_Locale> + <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File> + <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> + </PropertyGroup> <PropertyGroup Condition="'$(Cfg_1)'!=''"> <Version>7.0</Version> <DCC_DebugInformation>False</DCC_DebugInformation> @@ -93,13 +119,14 @@ </Source> </Delphi.Personality> <Platforms> + <Platform value="Win64">False</Platform> <Platform value="Win32">True</Platform> </Platforms> </BorlandProject> <ProjectFileVersion>12</ProjectFileVersion> </ProjectExtensions> <ItemGroup> - <DelphiCompile Include="PrimerExternal_DXE.dpr"> + <DelphiCompile Include="$(MainSource)"> <MainSource>MainSource</MainSource> </DelphiCompile> <DCCReference Include="Main.pas"> @@ -189,5 +216,5 @@ </BuildConfiguration> </ItemGroup> <Import Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')" Project="$(BDS)\Bin\CodeGear.Delphi.Targets"/> - <Import Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\8.0\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\8.0\UserTools.proj"/> + <Import Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj"/> </Project> Modified: trunk/Demos/PrimerCross/PrimerExternal_DXE.res =================================================================== (Binary files differ) Added: trunk/Demos/PrimerCross/Primer_DXE2.dpr =================================================================== --- trunk/Demos/PrimerCross/Primer_DXE2.dpr (rev 0) +++ trunk/Demos/PrimerCross/Primer_DXE2.dpr 2012-10-29 20:44:39 UTC (rev 961) @@ -0,0 +1,80 @@ +(* + * InstantObjects + * Primer Demo - with "internal storage" of Part and Parts + * Model.pas unit is located in Model folder + * + *) + +(* ***** 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, Nando Dessena + * + * ***** END LICENSE BLOCK ***** *) + +program Primer_DXE2; + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + + +uses + Forms, + Main in 'Main.pas' {MainForm}, + Model in 'Model\Model.pas', + ContactView in 'ContactView.pas' {ContactViewForm: TFrame}, + BasicView in 'BasicView.pas' {BasicViewForm: TFrame}, + BasicEdit in 'BasicEdit.pas' {BasicEditForm}, + ContactEdit in 'ContactEdit.pas' {ContactEditForm}, + PersonEdit in 'PersonEdit.pas' {PersonEditForm}, + CompanyEdit in 'CompanyEdit.pas' {CompanyEditForm}, + DemoData in 'DemoData.pas', + ContactFilterEdit in 'ContactFilterEdit.pas' {ContactFilterEditForm}, + MainData in 'MainData.pas' {MainDataModule: TDataModule}, + ContactBrowse in 'ContactBrowse.pas' {ContactBrowseForm}, + CompanyBrowse in 'CompanyBrowse.pas' {CompanyBrowseForm}, + PerformanceView in 'PerformanceView.pas' {PerformanceViewForm: TFrame}, + Welcome in 'Welcome.pas' {WelcomeForm}, + PersonBrowse in 'PersonBrowse.pas' {PersonBrowseForm}, + BasicBrowse in 'BasicBrowse.pas' {BasicBrowseForm}, + CountryBrowse in 'CountryBrowse.pas' {CountryBrowseForm}, + DemoDataRequest in 'DemoDataRequest.pas' {DemoDataRequestForm}, + ContactSort in 'ContactSort.pas' {ContactSortForm}, + CategoryBrowse in 'CategoryBrowse.pas' {CategoryBrowseForm}, + HelpView in 'HelpView.pas' {HelpViewForm: TFrame}, + QueryView in 'QueryView.pas' {QueryViewForm: TFrame}, + RandomData in 'RandomData.pas', + Stopwatch in 'Stopwatch.pas', + Utility in 'Utility.pas'; + +{$R *.res} +{$R *.mdr} {Model} + +begin + Application.Initialize; + Application.Title := 'InstantObjects Primer Demo (Delphi XE2 version)'; + Application.CreateForm(TMainForm, MainForm); + Application.CreateForm(TMainDataModule, MainDataModule); + Application.Run; +end. Property changes on: trunk/Demos/PrimerCross/Primer_DXE2.dpr ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Demos/PrimerCross/Primer_DXE2.dproj =================================================================== --- trunk/Demos/PrimerCross/Primer_DXE2.dproj (rev 0) +++ trunk/Demos/PrimerCross/Primer_DXE2.dproj 2012-10-29 20:44:39 UTC (rev 961) @@ -0,0 +1,227 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{d197a2d4-31b9-43b1-8070-3f804d86e53f}</ProjectGuid> + <MainSource>Primer_DXE2.dpr</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>Primer.exe</DCC_DependencyCheckOutputName> + <ProjectVersion>13.4</ProjectVersion> + <Config Condition="'$(Config)'==''">Debug</Config> + <Base>True</Base> + <AppType>Application</AppType> + <FrameworkType>VCL</FrameworkType> + <Platform Condition="'$(Platform)'==''">Win32</Platform> + <TargetedPlatforms>1</TargetedPlatforms> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> + <Base_Win64>true</Base_Win64> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> + <Base_Win32>true</Base_Win32> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''"> + <Cfg_2_Win32>true</Cfg_2_Win32> + <CfgParent>Cfg_2</CfgParent> + <Cfg_2>true</Cfg_2> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;VCLTee;$(DCC_Namespace)</DCC_Namespace> + <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> + <VerInfo_MajorVer>2</VerInfo_MajorVer> + <VerInfo_Locale>1030</VerInfo_Locale> + <VerInfo_Keys>CompanyName=InstantObjects.org;FileDescription=Primer Demo;FileVersion=2.0.0.0;InternalName=;LegalCopyright=MPL public license;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=2.0;Comments=</VerInfo_Keys> + <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> + <DCC_UsePackage>vcl;rtl;vclx;dbrtl;vcldb;bdertl;vclimg;vclactnband;adortl;vcldbx;dbexpress;DbxCommonDriver;DataSnapIndy10ServerTransport;DataSnapProviderClient;vclie;xmlrtl;inet;dsnap;inetdb;IndySystem;IndyCore;IndyProtocols;DbxClientDriver;inetdbxpress;inetdbbde;DataSnapServer;dbxcds;DBXInterBaseDriver;DBXMySQLDriver;DBXFirebirdDriver;DBXSybaseASEDriver;DBXSybaseASADriver;DBXOracleDriver;DBXMSSQLDriver;DBXInformixDriver;DBXDb2Driver;vclib;ibxpress;intrawebdb_100_140;Intraweb_100_140;dsnapcon;vclribbon;VclSmp;soaprtl;TeeUI;TeeDB;Tee;vcltouch;webdsnap;websnap;rbRIDE1114;rbIDE1114;rbRAP1114;rbRCL1114;dclRBADO1114;rbADO1114;rbDB1114;rbDAD1114;dclRBBDE1114;rbDBDE1114;rbBDE1114;dclRBDBE1114;rbDBE1114;dclRBE1114;rbCIDE1114;dclRBIBE1114;rbIBE1114;rbUSERDesign1114;rbUSER1114;ActionBandExtensionsD2010;UniSynEdit_R2010;wPDF3_D2010;WPViewPDF_D2010;IOCore;Jcl;JclVcl;JvCoreD14R;JvSystemD14R;JvStdCtrlsD14R;JvAppFrmD14R;JvBandsD14R;JvDBD14R;JvDlgsD14R;JvBDED14R;JvCmpD14R;JvCryptD14R;JvCtrlsD14R;JvCustomD14R;JvDockingD14R;JvDotNetCtrlsD14R;JvEDID14R;JvGlobusD14R;JvHMID14R;JvInterpreterD14R;JvJansD14R;JvManagedThreadsD14R;JvMMD14R;JvNetD14R;JvPageCompsD14R;JvPluginD14R;JvPrintPreviewD14R;JvRuntimeDesignD14R;JvTimeFrameworkD14R;JvValidatorsD14R;JvWizardD14R;JvXPCtrlsD14R;rbDIDE1114;IOIBX;IOXML;IODBX;IOBDE;IOADO;ISRtl5;ISVcl5;ISOpenOffice5;ISFLib5;$(DCC_UsePackage)</DCC_UsePackage> + <DCC_DependencyCheckOutputName>Primer_DXE.exe</DCC_DependencyCheckOutputName> + </PropertyGroup> + <PropertyGroup Condition="'$(Base_Win64)'!=''"> + </PropertyGroup> + <PropertyGroup Condition="'$(Base_Win32)'!=''"> + <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> + <DCC_Namespace>System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> + <VerInfo_Locale>1033</VerInfo_Locale> + <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File> + <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <Version>7.0</Version> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ResourcePath)</DCC_ResourcePath> + <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ObjPath)</DCC_ObjPath> + <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_IncludePath)</DCC_IncludePath> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <DCC_DebugDCUs>true</DCC_DebugDCUs> + <Version>7.0</Version> + <DCC_Define>DEBUG;IO_STATEMENT_LOGGING;$(DCC_Define)</DCC_Define> + <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ResourcePath)</DCC_ResourcePath> + <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ObjPath)</DCC_ObjPath> + <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_IncludePath)</DCC_IncludePath> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> + <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> + <VerInfo_Locale>1033</VerInfo_Locale> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>VCLApplication</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Parameters/> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">2</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">1030</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName">InstantObjects.org</VersionInfoKeys> + <VersionInfoKeys Name="FileDescription">Primer Demo</VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">2.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright">MPL public license</VersionInfoKeys> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName"/> + <VersionInfoKeys Name="ProductVersion">2.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Source> + <Source Name="MainSource">Primer_DXE2.dpr</Source> + </Source> + <Excluded_Packages> + <Excluded_Packages Name="$(BDSBIN)\dcloffice2k160.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> + <Excluded_Packages Name="$(BDSBIN)\dclofficexp160.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> + </Excluded_Packages> + </Delphi.Personality> + <ModelSupport>False</ModelSupport> + <Platforms> + <Platform value="Win64">False</Platform> + <Platform value="Win32">True</Platform> + </Platforms> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + <ItemGroup> + <DelphiCompile Include="$(MainSource)"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="Main.pas"> + <Form>MainForm</Form> + </DCCReference> + <DCCReference Include="Model\Model.pas"/> + <DCCReference Include="ContactView.pas"> + <Form>ContactViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="BasicView.pas"> + <Form>BasicViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="BasicEdit.pas"> + <Form>BasicEditForm</Form> + </DCCReference> + <DCCReference Include="ContactEdit.pas"> + <Form>ContactEditForm</Form> + </DCCReference> + <DCCReference Include="PersonEdit.pas"> + <Form>PersonEditForm</Form> + </DCCReference> + <DCCReference Include="CompanyEdit.pas"> + <Form>CompanyEditForm</Form> + </DCCReference> + <DCCReference Include="DemoData.pas"/> + <DCCReference Include="ContactFilterEdit.pas"> + <Form>ContactFilterEditForm</Form> + </DCCReference> + <DCCReference Include="MainData.pas"> + <Form>MainDataModule</Form> + <DesignClass>TDataModule</DesignClass> + </DCCReference> + <DCCReference Include="ContactBrowse.pas"> + <Form>ContactBrowseForm</Form> + </DCCReference> + <DCCReference Include="CompanyBrowse.pas"> + <Form>CompanyBrowseForm</Form> + </DCCReference> + <DCCReference Include="PerformanceView.pas"> + <Form>PerformanceViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="Welcome.pas"> + <Form>WelcomeForm</Form> + </DCCReference> + <DCCReference Include="PersonBrowse.pas"> + <Form>PersonBrowseForm</Form> + </DCCReference> + <DCCReference Include="BasicBrowse.pas"> + <Form>BasicBrowseForm</Form> + </DCCReference> + <DCCReference Include="CountryBrowse.pas"> + <Form>CountryBrowseForm</Form> + </DCCReference> + <DCCReference Include="DemoDataRequest.pas"> + <Form>DemoDataRequestForm</Form> + </DCCReference> + <DCCReference Include="ContactSort.pas"> + <Form>ContactSortForm</Form> + </DCCReference> + <DCCReference Include="CategoryBrowse.pas"> + <Form>CategoryBrowseForm</Form> + </DCCReference> + <DCCReference Include="HelpView.pas"> + <Form>HelpViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="QueryView.pas"> + <Form>QueryViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="RandomData.pas"/> + <DCCReference Include="Stopwatch.pas"/> + <DCCReference Include="Utility.pas"/> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')" Project="$(BDS)\Bin\CodeGear.Delphi.Targets"/> + <Import Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj"/> + </Project> Property changes on: trunk/Demos/PrimerCross/Primer_DXE2.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Demos/PrimerCross/Primer_DXE2.mdr =================================================================== (Binary files differ) Property changes on: trunk/Demos/PrimerCross/Primer_DXE2.mdr ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Demos/PrimerCross/Primer_DXE2.res =================================================================== (Binary files differ) Property changes on: trunk/Demos/PrimerCross/Primer_DXE2.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Demos/PrimerCross/Primer_DXE2.xml =================================================================== --- trunk/Demos/PrimerCross/Primer_DXE2.xml (rev 0) +++ trunk/Demos/PrimerCross/Primer_DXE2.xml 2012-10-29 20:44:39 UTC (rev 961) @@ -0,0 +1,29 @@ +<TInstantConnectionDefs> + <TInstantBDEConnectionDef> + <Name>ParadoxDB</Name> + <IsBuilt>TRUE</IsBuilt> + <BlobStreamFormat>sfXML</BlobStreamFormat> + <LoginPrompt>FALSE</LoginPrompt> + <DriverName>STANDARD</DriverName> + <Parameters>PATH=.\ParadoxDB +DEFAULT DRIVER=PARADOX +ENABLE BCD=TRUE +</Parameters> + </TInstantBDEConnectionDef> + <TInstantIBXConnectionDef> + <Name>FirebirdDB</Name> + <IsBuilt>TRUE</IsBuilt> + <BlobStreamFormat>sfXML</BlobStreamFormat> + <LoginPrompt>FALSE</LoginPrompt> + <ConnectionString>.\FirebirdDB\PRIMERDB.FDB</ConnectionString> + <Options></Options> + <Params>user_name=SYSDBA +password=masterkey +lc_ctype=ISO8859_1</Params> + </TInstantIBXConnectionDef> + <TInstantXMLConnectionDef> + <Name>XmlDB</Name> + <IsBuilt>TRUE</IsBuilt> + <RootFolder>.\XmlDB</RootFolder> + </TInstantXMLConnectionDef> +</TInstantConnectionDefs> Property changes on: trunk/Demos/PrimerCross/Primer_DXE2.xml ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Demos/PrimerCross/Primer_DXE2_Icon.ico =================================================================== (Binary files differ) Property changes on: trunk/Demos/PrimerCross/Primer_DXE2_Icon.ico ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/Source/Brokers/ADO/D2007/DclIOADO.dproj =================================================================== --- trunk/Source/Brokers/ADO/D2007/DclIOADO.dproj 2012-10-29 20:37:39 UTC (rev 960) +++ trunk/Source/Brokers/ADO/D2007/DclIOADO.dproj 2012-10-29 20:44:39 UTC (rev 961) @@ -5,7 +5,7 @@ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> - <DCC_DependencyCheckOutputName>..\..\..\..\..\..\..\..\Documents\RAD Studio\5.0\Bpl\DclIOADO_D11.bpl</DCC_DependencyCheckOutputName> + <DCC_DependencyCheckOutputName>..\..\..\..\..\..\..\..\Public\Documents\RAD Studio\5.0\Bpl\DclIOADO_D11.bpl</DCC_DependencyCheckOutputName> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <Version>7.0</Version> Modified: trunk/Source/Brokers/ADO/DXE2/DclIOADO.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/ADO/DXE2/IOADO.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/BDE/D2007/DclIOBDE.dproj =================================================================== --- trunk/Source/Brokers/BDE/D2007/DclIOBDE.dproj 2012-10-29 20:37:39 UTC (rev 960) +++ trunk/Source/Brokers/BDE/D2007/DclIOBDE.dproj 2012-10-29 20:44:39 UTC (rev 961) @@ -5,7 +5,7 @@ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> - <DCC_DependencyCheckOutputName>..\..\..\..\..\..\..\..\Documents\RAD Studio\5.0\Bpl\DclIOBDE_D11.bpl</DCC_DependencyCheckOutputName> + <DCC_DependencyCheckOutputName>..\..\..\..\..\..\..\..\Public\Documents\RAD Studio\5.0\Bpl\DclIOBDE_D11.bpl</DCC_DependencyCheckOutputName> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <Version>7.0</Version> Modified: trunk/Source/Brokers/BDE/DXE2/DclIOBDE.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/BDE/DXE2/IOBDE.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/DBX/D2007/DclIODBX.dproj =================================================================== --- trunk/Source/Brokers/DBX/D2007/DclIODBX.dproj 2012-10-29 20:37:39 UTC (rev 960) +++ trunk/Source/Brokers/DBX/D2007/DclIODBX.dproj 2012-10-29 20:44:39 UTC (rev 961) @@ -5,7 +5,7 @@ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> - <DCC_DependencyCheckOutputName>..\..\..\..\..\..\..\..\Documents\RAD Studio\5.0\Bpl\DclIODBX_D11.bpl</DCC_DependencyCheckOutputName> + <DCC_DependencyCheckOutputName>..\..\..\..\..\..\..\..\Public\Documents\RAD Studio\5.0\Bpl\DclIODBX_D11.bpl</DCC_DependencyCheckOutputName> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <Version>7.0</Version> Modified: trunk/Source/Brokers/DBX/DXE2/DclIODBX.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/DBX/DXE2/IODBX.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/IBX/D2007/DclIOIBX.dproj =================================================================== --- trunk/Source/Brokers/IBX/D2007/DclIOIBX.dproj 2012-10-29 20:37:39 UTC (rev 960) +++ trunk/Source/Brokers/IBX/D2007/DclIOIBX.dproj 2012-10-29 20:44:39 UTC (rev 961) @@ -5,7 +5,7 @@ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> - <DCC_DependencyCheckOutputName>..\..\..\..\..\..\..\..\Documents\RAD Studio\5.0\Bpl\DclIOIBX_D11.bpl</DCC_DependencyCheckOutputName> + <DCC_DependencyCheckOutputName>..\..\..\..\..\..\..\..\Public\Documents\RAD Studio\5.0\Bpl\DclIOIBX_D11.bpl</DCC_DependencyCheckOutputName> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <Version>7.0</Version> Modified: trunk/Source/Brokers/IBX/DXE2/DclIOIBX.res =================================================================== (Binary files differ) Modified: trunk/Source/Brokers/IBX/DXE2/IOIBX.res =================================================================== (Binary files differ) Added: trunk/Source/Brokers/NexusDb/D2007/DclIONexusDB.dpk =================================================================== --- trunk/Source/Brokers/NexusDb/D2007/DclIONexusDB.dpk (rev 0) +++ trunk/Source/Brokers/NexusDb/D2007/DclIONexusDB.dpk 2012-10-29 20:44:39 UTC (rev 961) @@ -0,0 +1,40 @@ +package DclIONexusDB; + +{$R *.res} +{$R '..\InstantNexusDB.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS ON} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects NexusDB Design-Time Support (Delphi 2007)'} +{$LIBSUFFIX '_D11'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + vcl, + vcldb, + IOCore, + IONexusDB; + +contains + InstantNexusDBReg in '..\InstantNexusDBReg.pas'; + +end. Property changes on: trunk/Source/Brokers/NexusDb/D2007/DclIONexusDB.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/NexusDb/D2007/DclIONexusDB.dproj =================================================================== --- trunk/Source/Brokers/NexusDb/D2007/DclIONexusDB.dproj (rev 0) +++ trunk/Source/Brokers/NexusDb/D2007/DclIONexusDB.dproj 2012-10-29 20:44:39 UTC (rev 961) @@ -0,0 +1,91 @@ +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{a31cfa5e-557a-458d-9886-cb0f00055264}</ProjectGuid> + <MainSource>DclIONexusDB.dpk</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\5.0\Bpl\DclIONexusDB_D11.bpl</DCC_DependencyCheckOutputName> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <Version>7.0</Version> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_TypedAtParameter>True</DCC_TypedAtParameter> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE</DCC_Define> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <Version>7.0</Version> + <DCC_TypedAtParameter>True</DCC_TypedAtParameter> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> +<BorlandProject xmlns=""> <Delphi.Personality> <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <Package_Options> + <Package_Options Name="PackageDescription">InstantObjects NexusDB Design-Time Support (Delphi 2007)</Package_Options> + <Package_Options Name="ImplicitBuild">False</Package_Options> + <Package_Options Name="DesigntimeOnly">True</Package_Options> + <Package_Options Name="RuntimeOnly">False</Package_Options> + <Package_Options Name="LibSuffix">_D11</Package_Options> + </Package_Options> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">2</VersionInfo> + <VersionInfo Name="MinorVer">1</VersionInfo> + <VersionInfo Name="Release">0</VersionInfo> + <VersionInfo Name="Build">0</VersionInfo> + <VersionInfo Name="Debug">False</VersionInfo> + <VersionInfo Name="PreRelease">True</VersionInfo> + <VersionInfo Name="Special">False</VersionInfo> + <VersionInfo Name="Private">False</VersionInfo> + <VersionInfo Name="DLL">False</VersionInfo> + <VersionInfo Name="Locale">1040</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="ProductVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="CompanyName">www.instantobjects.org</VersionInfoKeys> + <VersionInfoKeys Name="FileDescription">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"></VersionInfoKeys> + <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys> + <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> + <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys> + <VersionInfoKeys Name="ProductName">InstantObjects</VersionInfoKeys> + </VersionInfoKeys> + <Excluded_Packages> + + + + + + <Excluded_Packages Name="C:\Documents and Settings\carlo.PCCIBISOFT.001\Documenti\Borland Studio Projects\Bpl\ZComponent.bpl">Zeos Database Components</Excluded_Packages> + </Excluded_Packages> + <Source> + <Source Name="MainSource">DclIONexusDB.dpk</Source> + </Source> + </Delphi.Personality> </BorlandProject></BorlandProject> + </ProjectExtensions> + <ItemGroup /> + <ItemGroup> + <DelphiCompile Include="DclIONexusDB.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="..\InstantNexusDB.dcr" /> + <DCCReference Include="..\InstantNexusDB.dcr" /> + <DCCReference Include="..\InstantNexusDBReg.pas" /> + <DCCReference Include="IOCore.dcp" /> + <DCCReference Include="IONexusDB.dcp" /> + <DCCReference Include="vcl.dcp" /> + <DCCReference Include="vcldb.dcp" /> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" /> +</Project> \ No newline at end of file Property changes on: trunk/Source/Brokers/NexusDb/D2007/DclIONexusDB.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/NexusDb/D2007/DclIONexusDB.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/NexusDb/D2007/DclIONexusDB.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/NexusDb/D2007/IONexusDB.dpk =================================================================== --- trunk/Source/Brokers/NexusDb/D2007/IONexusDB.dpk (rev 0) +++ trunk/Source/Brokers/NexusDb/D2007/IONexusDB.dpk 2012-10-29 20:44:39 UTC (rev 961) @@ -0,0 +1,46 @@ +package IONexusDB; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS ON} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects NexusDB Run-Time Support (Delphi 2007)'} +{$LIBSUFFIX '_D11'} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + vcl, + vclx, + dbrtl, + rtl, + vcldb, + IOCore; + +contains + InstantNexusDBCatalog in '..\InstantNexusDBCatalog.pas', + InstantNexusDBConnectionDefEdit in '..\InstantNexusDBConnectionDefEdit.pas' {InstantNexusDBConnectionDefEditForm}, + InstantNexusDB in '..\InstantNexusDB.pas', + InstantNexusDBConsts in '..\InstantNexusDBConsts.pas', + InstantNexusDBEmbeddedConnectionDefEdit in '..\InstantNexusDBEmbeddedConnectionDefEdit.pas' {InstantNexusDBEmbeddedConnectionDefEditForm}, + InstantNexusDBEmbedded in '..\InstantNexusDBEmbedded.pas'; + +end. Property changes on: trunk/Source/Brokers/NexusDb/D2007/IONexusDB.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/NexusDb/D2007/IONexusDB.dproj =================================================================== --- trunk/Source/Brokers/NexusDb/D2007/IONexusDB.dproj (rev 0) +++ trunk/Source/Brokers/NexusDb/D2007/IONexusDB.dproj 2012-10-29 20:44:39 UTC (rev 961) @@ -0,0 +1,98 @@ +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{12721f04-79f4-43a7-8bd3-6b28edcc949c}</ProjectGuid> + <MainSource>IONexusDB.dpk</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\5.0\Bpl\IONexusDB_D11.bpl</DCC_DependencyCheckOutputName> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <Version>7.0</Version> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_TypedAtParameter>True</DCC_TypedAtParameter> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE</DCC_Define> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <Version>7.0</Version> + <DCC_TypedAtParameter>True</DCC_TypedAtParameter> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> +<BorlandProject xmlns=""> <Delphi.Personality> <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <Package_Options> + <Package_Options Name="PackageDescription">InstantObjects NexusDB Run-Time Support (Delphi 2007)</Package_Options> + <Package_Options Name="ImplicitBuild">False</Package_Options> + <Package_Options Name="DesigntimeOnly">False</Package_Options> + <Package_Options Name="RuntimeOnly">True</Package_Options> + <Package_Options Name="LibSuffix">_D11</Package_Options> + </Package_Options> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">2</VersionInfo> + <VersionInfo Name="MinorVer">1</VersionInfo> + <VersionInfo Name="Release">0</VersionInfo> + <VersionInfo Name="Build">0</VersionInfo> + <VersionInfo Name="Debug">False</VersionInfo> + <VersionInfo Name="PreRelease">True</VersionInfo> + <VersionInfo Name="Special">False</VersionInfo> + <VersionInfo Name="Private">False</VersionInfo> + <VersionInfo Name="DLL">False</VersionInfo> + <VersionInfo Name="Locale">1040</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="ProductVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="CompanyName">www.instantobjects.org</VersionInfoKeys> + <VersionInfoKeys Name="FileDescription">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"></VersionInfoKeys> + <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys> + <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> + <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys> + <VersionInfoKeys Name="ProductName">InstantObjects</VersionInfoKeys> + </VersionInfoKeys> + <Excluded_Packages> + + + + + </Excluded_Packages> + <Source> + <Source Name="MainSource">IONexusDB.dpk</Source> + </Source> + </Delphi.Personality> </BorlandProject></BorlandProject> + </ProjectExtensions> + <ItemGroup /> + <ItemGroup> + <DelphiCompile Include="IONexusDB.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="..\InstantNexusDB.pas" /> + <DCCReference Include="..\InstantNexusDBCatalog.pas" /> + <DCCReference Include="..\InstantNexusDBConnectionDefEdit.pas"> + <Form>InstantNexusDBConnectionDefEditForm</Form> + </DCCReference> + <DCCReference Include="..\InstantNexusDBConsts.pas" /> + <DCCReference Include="..\InstantNexusDBEmbedded.pas" /> + <DCCReference Include="..\InstantNexusDBEmbeddedConnectionDefEdit.pas"> + <Form>InstantNexusDBEmbeddedConnectionDefEditForm</Form> + </DCCReference> + <DCCReference Include="dbrtl.dcp" /> + <DCCReference Include="IOCore.dcp" /> + <DCCReference Include="rtl.dcp" /> + <DCCReference Include="vcl.dcp" /> + <DCCReference Include="vcldb.dcp" /> + <DCCReference Include="vclx.dcp" /> + </ItemGroup> + <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" /> +</Project> \ No newline at end of file Property changes on: trunk/Source/Brokers/NexusDb/D2007/IONexusDB.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/NexusDb/D2007/IONexusDB.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/NexusDb/D2007/IONexusDB.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/NexusDb/D2009/DclIONexusDB.dpk =================================================================== --- trunk/Source/Brokers/NexusDb/D2009/DclIONexusDB.dpk (rev 0) +++ trunk/Source/Brokers/NexusDb/D2009/DclIONexusDB.dpk 2012-10-29 20:44:39 UTC (rev 961) @@ -0,0 +1,40 @@ +package DclIONexusDB; + +{$R *.res} +{$R '..\InstantNexusDB.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS ON} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects NexusDB Design-Time Support (Delphi 2009)'} +{$LIBSUFFIX '_D12'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + vcl, + vcldb, + IOCore, + IONexusDB; + +contains + InstantNexusDBReg in '..\InstantNexusDBReg.pas'; + +end. Property changes on: trunk/Source/Brokers/NexusDb/D2009/DclIONexusDB.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/NexusDb/D2009/DclIONexusDB.dproj =================================================================== --- trunk/Source/Brokers/NexusDb/D2009/DclIONexusDB.dproj (rev 0) +++ trunk/Source/Brokers/NexusDb/D2009/DclIONexusDB.dproj 2012-10-29 20:44:39 UTC (rev 961) @@ -0,0 +1,120 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{a31cfa5e-557a-458d-9886-cb0f00055264}</ProjectGuid> + <MainSource>DclIONexusDB.dpk</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\5.0\Bpl\DclIONexusDB_D11.bpl</DCC_DependencyCheckOutputName> + <ProjectVersion>12.0</ProjectVersion> + <Config Condition="'$(Config)'==''">Debug</Config> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DesignOnlyPackage>true</DesignOnlyPackage> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\6.0\Bpl\DclIONexusDB_D12.bpl</DCC_DependencyCheckOutputName> + <DCC_TypedAtParameter>true</DCC_TypedAtParameter> + <DCC_Description>InstantObjects NexusDB Design-Time Support (Delphi 2009)</DCC_Description> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <GenPackage>true</GenPackage> + <DllSuffix>_D12</DllSuffix> + <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <Version>7.0</Version> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_TypedAtParameter>True</DCC_TypedAtParameter> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <Version>7.0</Version> + <DCC_TypedAtParameter>True</DCC_TypedAtParameter> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">2</VersionInfo> + <VersionInfo Name="MinorVer">1</VersionInfo> + <VersionInfo Name="Release">0</VersionInfo> + <VersionInfo Name="Build">0</VersionInfo> + <VersionInfo Name="Debug">False</VersionInfo> + <VersionInfo Name="PreRelease">True</VersionInfo> + <VersionInfo Name="Special">False</VersionInfo> + <VersionInfo Name="Private">False</VersionInfo> + <VersionInfo Name="DLL">False</VersionInfo> + <VersionInfo Name="Locale">1040</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="ProductVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="CompanyName">www.instantobjects.org</VersionInfoKeys> + <VersionInfoKeys Name="FileDescription">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName">InstantObjects</VersionInfoKeys> + </VersionInfoKeys> + <Excluded_Packages> + <Excluded_Packages Name="C:\Documents and Settings\carlo.PCCIBISOFT.001\Documenti\Borland Studio Projects\Bpl\ZComponent.bpl">Zeos Database Components</Excluded_Packages> + </Excluded_Packages> + <Source> + <Source Name="MainSource">DclIONexusDB.dpk</Source> + </Source> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + <ItemGroup> + <DelphiCompile Include="DclIONexusDB.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="..\InstantNexusDB.dcr"/> + <DCCReference Include="vcl.dcp"/> + <DCCReference Include="vcldb.dcp"/> + <DCCReference Include="IOCore.dcp"/> + <DCCReference Include="IONexusDB.dcp"/> + <DCCReference Include="..\InstantNexusDBReg.pas"/> + <DCCReference Include="..\InstantNexusDB.dcr"/> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <ItemGroup/> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> + </Project> Property changes on: trunk/Source/Brokers/NexusDb/D2009/DclIONexusDB.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/NexusDb/D2009/DclIONexusDB.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/NexusDb/D2009/DclIONexusDB.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/NexusDb/D2009/IONexusDB.dpk =================================================================== --- trunk/Source/Brokers/NexusDb/D2009/IONexusDB.dpk (rev 0) +++ trunk/Source/Brokers/NexusDb/D2009/IONexusDB.dpk 2012-10-29 20:44:39 UTC (rev 961) @@ -0,0 +1,46 @@ +package IONexusDB; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS ON} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'InstantObjects NexusDB Run-Time Support (Delphi 2009)'} +{$LIBSUFFIX '_D12'} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + vcl, + vclx, + dbrtl, + rtl, + vcldb, + IOCore; + +contains + InstantNexusDBCatalog in '..\InstantNexusDBCatalog.pas', + InstantNexusDBConnectionDefEdit in '..\InstantNexusDBConnectionDefEdit.pas' {InstantNexusDBConnectionDefEditForm}, + InstantNexusDB in '..\InstantNexusDB.pas', + InstantNexusDBConsts in '..\InstantNexusDBConsts.pas', + InstantNexusDBEmbeddedConnectionDefEdit in '..\InstantNexusDBEmbeddedConnectionDefEdit.pas' {InstantNexusDBEmbeddedConnectionDefEditForm}, + InstantNexusDBEmbedded in '..\InstantNexusDBEmbedded.pas'; + +end. Property changes on: trunk/Source/Brokers/NexusDb/D2009/IONexusDB.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/NexusDb/D2009/IONexusDB.dproj =================================================================== --- trunk/Source/Brokers/NexusDb/D2009/IONexusDB.dproj (rev 0) +++ trunk/Source/Brokers/NexusDb/D2009/IONexusDB.dproj 2012-10-29 20:44:39 UTC (rev 961) @@ -0,0 +1,128 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{12721f04-79f4-43a7-8bd3-6b28edcc949c}</ProjectGuid> + <MainSource>IONexusDB.dpk</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\5.0\Bpl\IONexusDB_D11.bpl</DCC_DependencyCheckOutputName> + <ProjectVersion>12.0</ProjectVersion> + <Config Condition="'$(Config)'==''">Debug</Config> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\6.0\Bpl\IONexusDB_D12.bpl</DCC_DependencyCheckOutputName> + <DCC_ImageBase>00400000</DCC_ImageBase> + <RuntimeOnlyPackage>true</RuntimeOnlyPackage> + <DCC_TypedAtParameter>true</DCC_TypedAtParameter> + <DCC_Description>InstantObjects NexusDB Run-Time Support (Delphi 2009)</DCC_Description> + <DesignOnlyPackage>false</DesignOnlyPackage> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <GenPackage>true</GenPackage> + <DllSuffix>_D12</DllSuffix> + <DCC_SymbolReferenceInfo>1</DCC_SymbolReferenceInfo> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <Version>7.0</Version> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_TypedAtParameter>True</DCC_TypedAtParameter> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <Version>7.0</Version> + <DCC_TypedAtParameter>True</DCC_TypedAtParameter> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">2</VersionInfo> + <VersionInfo Name="MinorVer">1</VersionInfo> + <VersionInfo Name="Release">0</VersionInfo> + <VersionInfo Name="Build">0</VersionInfo> + <VersionInfo Name="Debug">False</VersionInfo> + <VersionInfo Name="PreRelease">True</VersionInfo> + <VersionInfo Name="Special">False</VersionInfo> + <VersionInfo Name="Private">False</VersionInfo> + <VersionInfo Name="DLL">False</VersionInfo> + <VersionInfo Name="Locale">1040</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="ProductVersion">2.1.0.0</VersionInfoKeys> + <VersionInfoKeys Name="CompanyName">www.instantobjects.org</VersionInfoKeys> + <VersionInfoKeys Name="FileDescription">InstantObjects</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName">InstantObjects</VersionInfoKeys> + </VersionInfoKeys> + <Excluded_Packages/> + <Source> + <Source Name="MainSource">IONexusDB.dpk</Source> + </Source> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + <ItemGroup> + <DelphiCompile Include="IONexusDB.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="vcl.dcp"/> + <DCCReference Include="vclx.dcp"/> + <DCCReference Include="dbrtl.dcp"/> + <DCCReference Include="rtl.dcp"/> + <DCCReference Include="vcldb.dcp"/> + <DCCReference Include="IOCore.dcp"/> + <DCCReference Include="..\InstantNexusDBCatalog.pas"/> + <DCCReference Include="..\InstantNexusDBConnectionDefEdit.pas"> + <Form>InstantNexusDBConnectionDefEditForm</Form> + </DCCReference> + <DCCReference Include="..\InstantNexusDB.pas"/> + <DCCReference Include="..\InstantNexusDBConsts.pas"/> + <DCCReference Include="..\InstantNexusDBEmbeddedConnectionDefEdit.pas"> + <Form>InstantNexusDBEmbeddedConnectionDefEditForm</Form> + </DCCReference> + <DCCReference Include="..\InstantNexusDBEmbedded.pas"/> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <ItemGroup/> + <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(... [truncated message content] |
From: <na...@us...> - 2012-10-29 21:31:04
|
Revision: 962 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=962&view=rev Author: nandod Date: 2012-10-29 21:30:50 +0000 (Mon, 29 Oct 2012) Log Message: ----------- + DXE3 packages. * DXE3 changes. + InstantPersistence test unit with test for a DXE3 related bug. * Small fixes/enhancements. Modified Paths: -------------- trunk/Demos/PrimerCross/ContactView.pas trunk/Demos/PrimerCross/Main.pas trunk/Demos/PrimerCross/Utility.pas trunk/Source/Core/InstantAccessors.pas trunk/Source/Core/InstantCode.pas trunk/Source/Core/InstantCommand.pas trunk/Source/Core/InstantConnectionManager.pas trunk/Source/Core/InstantConnectionManagerFormUnit.pas trunk/Source/Core/InstantConsts.pas trunk/Source/Core/InstantCustomDBEvolverFormUnit.pas trunk/Source/Core/InstantExplorer.pas trunk/Source/Core/InstantMetadata.pas trunk/Source/Core/InstantPersistence.pas trunk/Source/Core/InstantPresentation.pas trunk/Source/Core/InstantValidation.pas trunk/Source/Design/InstantModelExpert.pas trunk/Source/InstantDefines.inc trunk/Tests/TestInstantAttribute.pas trunk/Tests/TestInstantBoolean.pas trunk/Tests/TestInstantCache.pas trunk/Tests/TestInstantClassMetadata.pas trunk/Tests/TestInstantComplex.pas trunk/Tests/TestInstantCurrency.pas trunk/Tests/TestInstantDate.pas trunk/Tests/TestInstantDateTime.pas trunk/Tests/TestInstantFieldMetadata.pas trunk/Tests/TestInstantFloat.pas trunk/Tests/TestInstantIndexMetadata.pas trunk/Tests/TestInstantInteger.pas trunk/Tests/TestInstantNumeric.pas trunk/Tests/TestInstantObjectStore.pas trunk/Tests/TestInstantScheme.pas trunk/Tests/TestInstantString.pas trunk/Tests/TestInstantTableMetadata.pas trunk/Tests/TestInstantTime.pas trunk/Tests/TestMinimalModel.pas trunk/Tests/TestXMLBroker.pas Added Paths: ----------- trunk/Demos/PrimerCross/Primer_DXE3.dpr trunk/Demos/PrimerCross/Primer_DXE3.dproj trunk/Demos/PrimerCross/Primer_DXE3.mdr trunk/Demos/PrimerCross/Primer_DXE3.res trunk/Demos/PrimerCross/Primer_DXE3.xml trunk/Source/Brokers/ADO/DXE3/ trunk/Source/Brokers/ADO/DXE3/DclIOADO.dpk trunk/Source/Brokers/ADO/DXE3/DclIOADO.dproj trunk/Source/Brokers/ADO/DXE3/DclIOADO.res trunk/Source/Brokers/ADO/DXE3/IOADO.dpk trunk/Source/Brokers/ADO/DXE3/IOADO.dproj trunk/Source/Brokers/ADO/DXE3/IOADO.res trunk/Source/Brokers/BDE/DXE3/ trunk/Source/Brokers/BDE/DXE3/DclIOBDE.dpk trunk/Source/Brokers/BDE/DXE3/DclIOBDE.dproj trunk/Source/Brokers/BDE/DXE3/DclIOBDE.res trunk/Source/Brokers/BDE/DXE3/IOBDE.dpk trunk/Source/Brokers/BDE/DXE3/IOBDE.dproj trunk/Source/Brokers/BDE/DXE3/IOBDE.res trunk/Source/Brokers/DBX/DXE3/ trunk/Source/Brokers/DBX/DXE3/DclIODBX.dpk trunk/Source/Brokers/DBX/DXE3/DclIODBX.dproj trunk/Source/Brokers/DBX/DXE3/DclIODBX.res trunk/Source/Brokers/DBX/DXE3/IODBX.dpk trunk/Source/Brokers/DBX/DXE3/IODBX.dproj trunk/Source/Brokers/DBX/DXE3/IODBX.res trunk/Source/Brokers/IBX/DXE3/ trunk/Source/Brokers/IBX/DXE3/DclIOIBX.dpk trunk/Source/Brokers/IBX/DXE3/DclIOIBX.dproj trunk/Source/Brokers/IBX/DXE3/DclIOIBX.res trunk/Source/Brokers/IBX/DXE3/IOIBX.dpk trunk/Source/Brokers/IBX/DXE3/IOIBX.dproj trunk/Source/Brokers/IBX/DXE3/IOIBX.res trunk/Source/Brokers/XML/DXE3/ trunk/Source/Brokers/XML/DXE3/DclIOXML.dpk trunk/Source/Brokers/XML/DXE3/DclIOXML.dproj trunk/Source/Brokers/XML/DXE3/DclIOXML.res trunk/Source/Brokers/XML/DXE3/IOXML.dpk trunk/Source/Brokers/XML/DXE3/IOXML.dproj trunk/Source/Brokers/XML/DXE3/IOXML.res trunk/Source/Catalogs/IBFb/DXE3/ trunk/Source/Catalogs/IBFb/DXE3/IOIBFbCatalog.dpk trunk/Source/Catalogs/IBFb/DXE3/IOIBFbCatalog.dproj trunk/Source/Catalogs/IBFb/DXE3/IOIBFbCatalog.res trunk/Source/Catalogs/MSSql/DXE3/ trunk/Source/Catalogs/MSSql/DXE3/IOMSSqlCatalog.dpk trunk/Source/Catalogs/MSSql/DXE3/IOMSSqlCatalog.dproj trunk/Source/Catalogs/MSSql/DXE3/IOMSSqlCatalog.res trunk/Source/Catalogs/MySQL/DXE3/ trunk/Source/Catalogs/MySQL/DXE3/IOMySQLCatalog.dpk trunk/Source/Catalogs/MySQL/DXE3/IOMySQLCatalog.dproj trunk/Source/Catalogs/MySQL/DXE3/IOMySQLCatalog.res trunk/Source/Core/DXE3/ trunk/Source/Core/DXE3/IOCore.dpk trunk/Source/Core/DXE3/IOCore.dproj trunk/Source/Core/DXE3/IOCore.res trunk/Source/Design/DXE3/ trunk/Source/Design/DXE3/DclIOCore.dpk trunk/Source/Design/DXE3/DclIOCore.dproj trunk/Source/Design/DXE3/DclIOCore.identcache trunk/Source/Design/DXE3/DclIOCore.res trunk/Source/PackageGroups/DXE3/ trunk/Source/PackageGroups/DXE3/DesignTimePackages.groupproj trunk/Source/PackageGroups/DXE3/RunTimePackages.groupproj trunk/Tests/TestIO_DXE3.dpr trunk/Tests/TestIO_DXE3.dproj trunk/Tests/TestIO_DXE3.mdr trunk/Tests/TestIO_DXE3.mdrt trunk/Tests/TestIO_DXE3.mdx trunk/Tests/TestIO_DXE3.mdxt trunk/Tests/TestIO_DXE3.res trunk/Tests/TestInstantPresentation.pas Modified: trunk/Demos/PrimerCross/ContactView.pas =================================================================== --- trunk/Demos/PrimerCross/ContactView.pas 2012-10-29 20:44:39 UTC (rev 961) +++ trunk/Demos/PrimerCross/ContactView.pas 2012-10-29 21:30:50 UTC (rev 962) @@ -20,6 +20,7 @@ QComCtrls, QGrids, QDBGrids, QExtCtrls, QButtons, QStdCtrls, QActnList, QImgList, QMenus, Types, {$ENDIF} + {$IFDEF D17+}Actions,{$ENDIF} BasicView, Model, InstantPresentation, InstantExplorer; type Modified: trunk/Demos/PrimerCross/Main.pas =================================================================== --- trunk/Demos/PrimerCross/Main.pas 2012-10-29 20:44:39 UTC (rev 961) +++ trunk/Demos/PrimerCross/Main.pas 2012-10-29 21:30:50 UTC (rev 962) @@ -19,7 +19,8 @@ QMenus, QExtCtrls, QComCtrls, QGrids, QDBGrids, QImgList, QActnList, {$ENDIF} InstantPersistence, BasicView, Stopwatch, - InstantConnectionManagerFormUnit, InstantConnectionManager; + InstantConnectionManagerFormUnit, InstantConnectionManager + {$IFDEF D17+}, System.Actions{$ENDIF}; type TMainForm = class(TForm) @@ -153,7 +154,8 @@ // versions of Delphi. If you get a compilation error it means you // don't have an Enterprise version of Delphi - just remove them. DBXFirebird, DBXInterBase, DBXDB2, DBXMSSql, DBXOracle, - {$ENDIF}{$ENDIF} + {$ENDIF} +{$ENDIF} {$IFDEF LINUX} InstantDBX, {$ENDIF} Added: trunk/Demos/PrimerCross/Primer_DXE3.dpr =================================================================== --- trunk/Demos/PrimerCross/Primer_DXE3.dpr (rev 0) +++ trunk/Demos/PrimerCross/Primer_DXE3.dpr 2012-10-29 21:30:50 UTC (rev 962) @@ -0,0 +1,80 @@ +(* + * InstantObjects + * Primer Demo - with "internal storage" of Part and Parts + * Model.pas unit is located in Model folder + * + *) + +(* ***** 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, Nando Dessena + * + * ***** END LICENSE BLOCK ***** *) + +program Primer_DXE3; + +{$IFDEF LINUX} +{$I '../../Source/InstantDefines.inc'} +{$ELSE} +{$I '..\..\Source\InstantDefines.inc'} +{$ENDIF} + + +uses + Forms, + Main in 'Main.pas' {MainForm}, + Model in 'Model\Model.pas', + ContactView in 'ContactView.pas' {ContactViewForm: TFrame}, + BasicView in 'BasicView.pas' {BasicViewForm: TFrame}, + BasicEdit in 'BasicEdit.pas' {BasicEditForm}, + ContactEdit in 'ContactEdit.pas' {ContactEditForm}, + PersonEdit in 'PersonEdit.pas' {PersonEditForm}, + CompanyEdit in 'CompanyEdit.pas' {CompanyEditForm}, + DemoData in 'DemoData.pas', + ContactFilterEdit in 'ContactFilterEdit.pas' {ContactFilterEditForm}, + MainData in 'MainData.pas' {MainDataModule: TDataModule}, + ContactBrowse in 'ContactBrowse.pas' {ContactBrowseForm}, + CompanyBrowse in 'CompanyBrowse.pas' {CompanyBrowseForm}, + PerformanceView in 'PerformanceView.pas' {PerformanceViewForm: TFrame}, + Welcome in 'Welcome.pas' {WelcomeForm}, + PersonBrowse in 'PersonBrowse.pas' {PersonBrowseForm}, + BasicBrowse in 'BasicBrowse.pas' {BasicBrowseForm}, + CountryBrowse in 'CountryBrowse.pas' {CountryBrowseForm}, + DemoDataRequest in 'DemoDataRequest.pas' {DemoDataRequestForm}, + ContactSort in 'ContactSort.pas' {ContactSortForm}, + CategoryBrowse in 'CategoryBrowse.pas' {CategoryBrowseForm}, + HelpView in 'HelpView.pas' {HelpViewForm: TFrame}, + QueryView in 'QueryView.pas' {QueryViewForm: TFrame}, + RandomData in 'RandomData.pas', + Stopwatch in 'Stopwatch.pas', + Utility in 'Utility.pas'; + +{$R *.res} +{$R *.mdr} {Model} + +begin + Application.Initialize; + Application.Title := 'InstantObjects Primer Demo (Delphi XE3 version)'; + Application.CreateForm(TMainForm, MainForm); + Application.CreateForm(TMainDataModule, MainDataModule); + Application.Run; +end. Property changes on: trunk/Demos/PrimerCross/Primer_DXE3.dpr ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Demos/PrimerCross/Primer_DXE3.dproj =================================================================== --- trunk/Demos/PrimerCross/Primer_DXE3.dproj (rev 0) +++ trunk/Demos/PrimerCross/Primer_DXE3.dproj 2012-10-29 21:30:50 UTC (rev 962) @@ -0,0 +1,223 @@ +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{d197a2d4-31b9-43b1-8070-3f804d86e53f}</ProjectGuid> + <MainSource>Primer_DXE3.dpr</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>Primer.exe</DCC_DependencyCheckOutputName> + <ProjectVersion>14.3</ProjectVersion> + <Config Condition="'$(Config)'==''">Debug</Config> + <Base>True</Base> + <AppType>Application</AppType> + <FrameworkType>VCL</FrameworkType> + <Platform Condition="'$(Platform)'==''">Win32</Platform> + <TargetedPlatforms>1</TargetedPlatforms> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> + <Base_Win32>true</Base_Win32> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''"> + <Cfg_2_Win32>true</Cfg_2_Win32> + <CfgParent>Cfg_2</CfgParent> + <Cfg_2>true</Cfg_2> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <Icon_MainIcon>Primer_DXE3_Icon.ico</Icon_MainIcon> + <Manifest_File>None</Manifest_File> + <DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;VCLTee;$(DCC_Namespace)</DCC_Namespace> + <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> + <VerInfo_MajorVer>2</VerInfo_MajorVer> + <VerInfo_Locale>1030</VerInfo_Locale> + <VerInfo_Keys>CompanyName=InstantObjects.org;FileDescription=Primer Demo;FileVersion=2.0.0.0;InternalName=;LegalCopyright=MPL public license;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=2.0;Comments=</VerInfo_Keys> + <DCC_UnitSearchPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> + <DCC_UsePackage>vcl;rtl;vclx;dbrtl;vcldb;bdertl;vclimg;vclactnband;adortl;vcldbx;dbexpress;DbxCommonDriver;DataSnapIndy10ServerTransport;DataSnapProviderClient;vclie;xmlrtl;inet;dsnap;inetdb;IndySystem;IndyCore;IndyProtocols;DbxClientDriver;inetdbxpress;inetdbbde;DataSnapServer;dbxcds;DBXInterBaseDriver;DBXMySQLDriver;DBXFirebirdDriver;DBXSybaseASEDriver;DBXSybaseASADriver;DBXOracleDriver;DBXMSSQLDriver;DBXInformixDriver;DBXDb2Driver;vclib;ibxpress;intrawebdb_100_140;Intraweb_100_140;dsnapcon;vclribbon;VclSmp;soaprtl;TeeUI;TeeDB;Tee;vcltouch;webdsnap;websnap;rbRIDE1114;rbIDE1114;rbRAP1114;rbRCL1114;dclRBADO1114;rbADO1114;rbDB1114;rbDAD1114;dclRBBDE1114;rbDBDE1114;rbBDE1114;dclRBDBE1114;rbDBE1114;dclRBE1114;rbCIDE1114;dclRBIBE1114;rbIBE1114;rbUSERDesign1114;rbUSER1114;ActionBandExtensionsD2010;UniSynEdit_R2010;wPDF3_D2010;WPViewPDF_D2010;IOCore;Jcl;JclVcl;JvCoreD14R;JvSystemD14R;JvStdCtrlsD14R;JvAppFrmD14R;JvBandsD14R;JvDBD14R;JvDlgsD14R;JvBDED14R;JvCmpD14R;JvCryptD14R;JvCtrlsD14R;JvCustomD14R;JvDockingD14R;JvDotNetCtrlsD14R;JvEDID14R;JvGlobusD14R;JvHMID14R;JvInterpreterD14R;JvJansD14R;JvManagedThreadsD14R;JvMMD14R;JvNetD14R;JvPageCompsD14R;JvPluginD14R;JvPrintPreviewD14R;JvRuntimeDesignD14R;JvTimeFrameworkD14R;JvValidatorsD14R;JvWizardD14R;JvXPCtrlsD14R;rbDIDE1114;IOIBX;IOXML;IODBX;IOBDE;IOADO;ISRtl5;ISVcl5;ISOpenOffice5;ISFLib5;$(DCC_UsePackage)</DCC_UsePackage> + <DCC_DependencyCheckOutputName>Primer_DXE.exe</DCC_DependencyCheckOutputName> + </PropertyGroup> + <PropertyGroup Condition="'$(Base_Win32)'!=''"> + <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> + <DCC_Namespace>System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> + <VerInfo_Locale>1033</VerInfo_Locale> + <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File> + <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <Version>7.0</Version> + <DCC_DebugInformation>False</DCC_DebugInformation> + <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ResourcePath)</DCC_ResourcePath> + <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ObjPath)</DCC_ObjPath> + <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_IncludePath)</DCC_IncludePath> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <DCC_DebugDCUs>true</DCC_DebugDCUs> + <Version>7.0</Version> + <DCC_Define>DEBUG;IO_STATEMENT_LOGGING;$(DCC_Define)</DCC_Define> + <DCC_ResourcePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ResourcePath)</DCC_ResourcePath> + <DCC_ObjPath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_ObjPath)</DCC_ObjPath> + <DCC_IncludePath>..\..\Source\Core;..\..\Source\Brokers\ADO;..\..\Source\Brokers\BDE;..\..\Source\Brokers\DBX;..\..\Source\Brokers\IBX;..\..\Source\Brokers\XML;..\..\Source\Catalogs\IBFb;..\..\Source\Catalogs\MSSql;..\..\Source\Catalogs\MySql;$(DCC_IncludePath)</DCC_IncludePath> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> + <VerInfo_MajorVer>1</VerInfo_MajorVer> + <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> + <VerInfo_Locale>1033</VerInfo_Locale> + </PropertyGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>VCLApplication</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Parameters/> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">2</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">1030</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName">InstantObjects.org</VersionInfoKeys> + <VersionInfoKeys Name="FileDescription">Primer Demo</VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">2.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright">MPL public license</VersionInfoKeys> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName"/> + <VersionInfoKeys Name="ProductVersion">2.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Source> + <Source Name="MainSource">Primer_DXE3.dpr</Source> + </Source> + <Excluded_Packages> + <Excluded_Packages Name="$(BDSBIN)\dcloffice2k170.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> + <Excluded_Packages Name="$(BDSBIN)\dclofficexp170.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> + </Excluded_Packages> + </Delphi.Personality> + <ModelSupport>False</ModelSupport> + <Platforms> + <Platform value="Win32">True</Platform> + <Platform value="Win64">False</Platform> + </Platforms> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + <ItemGroup> + <DelphiCompile Include="$(MainSource)"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="Main.pas"> + <Form>MainForm</Form> + </DCCReference> + <DCCReference Include="Model\Model.pas"/> + <DCCReference Include="ContactView.pas"> + <Form>ContactViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="BasicView.pas"> + <Form>BasicViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="BasicEdit.pas"> + <Form>BasicEditForm</Form> + </DCCReference> + <DCCReference Include="ContactEdit.pas"> + <Form>ContactEditForm</Form> + </DCCReference> + <DCCReference Include="PersonEdit.pas"> + <Form>PersonEditForm</Form> + </DCCReference> + <DCCReference Include="CompanyEdit.pas"> + <Form>CompanyEditForm</Form> + </DCCReference> + <DCCReference Include="DemoData.pas"/> + <DCCReference Include="ContactFilterEdit.pas"> + <Form>ContactFilterEditForm</Form> + </DCCReference> + <DCCReference Include="MainData.pas"> + <Form>MainDataModule</Form> + <DesignClass>TDataModule</DesignClass> + </DCCReference> + <DCCReference Include="ContactBrowse.pas"> + <Form>ContactBrowseForm</Form> + </DCCReference> + <DCCReference Include="CompanyBrowse.pas"> + <Form>CompanyBrowseForm</Form> + </DCCReference> + <DCCReference Include="PerformanceView.pas"> + <Form>PerformanceViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="Welcome.pas"> + <Form>WelcomeForm</Form> + </DCCReference> + <DCCReference Include="PersonBrowse.pas"> + <Form>PersonBrowseForm</Form> + </DCCReference> + <DCCReference Include="BasicBrowse.pas"> + <Form>BasicBrowseForm</Form> + </DCCReference> + <DCCReference Include="CountryBrowse.pas"> + <Form>CountryBrowseForm</Form> + </DCCReference> + <DCCReference Include="DemoDataRequest.pas"> + <Form>DemoDataRequestForm</Form> + </DCCReference> + <DCCReference Include="ContactSort.pas"> + <Form>ContactSortForm</Form> + </DCCReference> + <DCCReference Include="CategoryBrowse.pas"> + <Form>CategoryBrowseForm</Form> + </DCCReference> + <DCCReference Include="HelpView.pas"> + <Form>HelpViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="QueryView.pas"> + <Form>QueryViewForm</Form> + <DesignClass>TFrame</DesignClass> + </DCCReference> + <DCCReference Include="RandomData.pas"/> + <DCCReference Include="Stopwatch.pas"/> + <DCCReference Include="Utility.pas"/> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <Import Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')" Project="$(BDS)\Bin\CodeGear.Delphi.Targets"/> + <Import Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj"/> +</Project> Property changes on: trunk/Demos/PrimerCross/Primer_DXE3.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Demos/PrimerCross/Primer_DXE3.mdr =================================================================== (Binary files differ) Property changes on: trunk/Demos/PrimerCross/Primer_DXE3.mdr ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Demos/PrimerCross/Primer_DXE3.res =================================================================== (Binary files differ) Property changes on: trunk/Demos/PrimerCross/Primer_DXE3.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Demos/PrimerCross/Primer_DXE3.xml =================================================================== --- trunk/Demos/PrimerCross/Primer_DXE3.xml (rev 0) +++ trunk/Demos/PrimerCross/Primer_DXE3.xml 2012-10-29 21:30:50 UTC (rev 962) @@ -0,0 +1,29 @@ +<TInstantConnectionDefs> + <TInstantBDEConnectionDef> + <Name>ParadoxDB</Name> + <IsBuilt>TRUE</IsBuilt> + <BlobStreamFormat>sfXML</BlobStreamFormat> + <LoginPrompt>FALSE</LoginPrompt> + <DriverName>STANDARD</DriverName> + <Parameters>PATH=.\ParadoxDB +DEFAULT DRIVER=PARADOX +ENABLE BCD=TRUE +</Parameters> + </TInstantBDEConnectionDef> + <TInstantIBXConnectionDef> + <Name>FirebirdDB</Name> + <IsBuilt>TRUE</IsBuilt> + <BlobStreamFormat>sfXML</BlobStreamFormat> + <LoginPrompt>FALSE</LoginPrompt> + <ConnectionString>localhost:c:\db\primercrossutf8.fdb</ConnectionString> + <Options></Options> + <Params>user_name=SYSDBA +password=masterkey +lc_ctype=UTF8</Params> + </TInstantIBXConnectionDef> + <TInstantXMLConnectionDef> + <Name>XmlDB</Name> + <IsBuilt>TRUE</IsBuilt> + <RootFolder>.\XmlDB</RootFolder> + </TInstantXMLConnectionDef> +</TInstantConnectionDefs> Property changes on: trunk/Demos/PrimerCross/Primer_DXE3.xml ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Modified: trunk/Demos/PrimerCross/Utility.pas =================================================================== --- trunk/Demos/PrimerCross/Utility.pas 2012-10-29 20:44:39 UTC (rev 961) +++ trunk/Demos/PrimerCross/Utility.pas 2012-10-29 21:30:50 UTC (rev 962) @@ -21,6 +21,9 @@ {$IFDEF LINUX} QForms, QDialogs, QControls, {$ENDIF} +{$IFDEF D17+} + System.UITypes, +{$ENDIF} SysUtils; var Added: trunk/Source/Brokers/ADO/DXE3/DclIOADO.dpk =================================================================== --- trunk/Source/Brokers/ADO/DXE3/DclIOADO.dpk (rev 0) +++ trunk/Source/Brokers/ADO/DXE3/DclIOADO.dpk 2012-10-29 21:30:50 UTC (rev 962) @@ -0,0 +1,41 @@ +package DclIOADO; + +{$R *.res} +{$R '..\InstantADO.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS ON} +{$RANGECHECKS ON} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'InstantObjects ADO Design-Time Support (Delphi XE3)'} +{$LIBSUFFIX '_D17'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + rtl, + IOADO; + +contains + InstantADOReg in '..\InstantADOReg.pas'; + +end. Property changes on: trunk/Source/Brokers/ADO/DXE3/DclIOADO.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/ADO/DXE3/DclIOADO.dproj =================================================================== --- trunk/Source/Brokers/ADO/DXE3/DclIOADO.dproj (rev 0) +++ trunk/Source/Brokers/ADO/DXE3/DclIOADO.dproj 2012-10-29 21:30:50 UTC (rev 962) @@ -0,0 +1,148 @@ +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{25086FF7-139E-40BB-9278-EDE3F344302B}</ProjectGuid> + <MainSource>DclIOADO.dpk</MainSource> + <Base>True</Base> + <Config Condition="'$(Config)'==''">Debug</Config> + <TargetedPlatforms>1</TargetedPlatforms> + <AppType>Package</AppType> + <FrameworkType>None</FrameworkType> + <ProjectVersion>14.3</ProjectVersion> + <Platform Condition="'$(Platform)'==''">Win32</Platform> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> + <Base_Win32>true</Base_Win32> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''"> + <Cfg_2_Win32>true</Cfg_2_Win32> + <CfgParent>Cfg_2</CfgParent> + <Cfg_2>true</Cfg_2> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DesignOnlyPackage>true</DesignOnlyPackage> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DCC_UsePackage>rtl;$(DCC_UsePackage)</DCC_UsePackage> + <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace> + <DCC_Description>InstantObjects ADO Design-Time Support (Delphi XE3)</DCC_Description> + <DCC_IntegerOverflowCheck>true</DCC_IntegerOverflowCheck> + <DCC_RangeChecking>true</DCC_RangeChecking> + <DCC_N>false</DCC_N> + <DCC_K>false</DCC_K> + <GenDll>true</GenDll> + <DCC_S>false</DCC_S> + <DCC_F>false</DCC_F> + <GenPackage>true</GenPackage> + <DllSuffix>_D17</DllSuffix> + <DCC_E>false</DCC_E> + <VerInfo_Locale>1033</VerInfo_Locale> + </PropertyGroup> + <PropertyGroup Condition="'$(Base_Win32)'!=''"> + <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> + <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> + <VerInfo_Locale>1033</VerInfo_Locale> + <DCC_UsePackage>IOADO;$(DCC_UsePackage)</DCC_UsePackage> + <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> + <DCC_DebugInformation>false</DCC_DebugInformation> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> + <DCC_Optimize>false</DCC_Optimize> + <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> + <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> + </PropertyGroup> + <ItemGroup> + <DelphiCompile Include="$(MainSource)"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="..\InstantADO.dcr"/> + <DCCReference Include="rtl.dcp"/> + <DCCReference Include="IOADO.dcp"/> + <DCCReference Include="..\InstantADOReg.pas"/> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Source> + <Source Name="MainSource">DclIOADO.dpk</Source> + </Source> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</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">1033</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName"/> + <VersionInfoKeys Name="FileDescription"/> + <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName"/> + <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Excluded_Packages> + <Excluded_Packages Name="$(BDSBIN)\dcloffice2k170.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> + <Excluded_Packages Name="$(BDSBIN)\dclofficexp170.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> + </Excluded_Packages> + </Delphi.Personality> + <Platforms> + <Platform value="OSX32">False</Platform> + <Platform value="Win32">True</Platform> + <Platform value="Win64">False</Platform> + </Platforms> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + <Import Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')" Project="$(BDS)\Bin\CodeGear.Delphi.Targets"/> + <Import Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj"/> +</Project> Property changes on: trunk/Source/Brokers/ADO/DXE3/DclIOADO.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/ADO/DXE3/DclIOADO.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/ADO/DXE3/DclIOADO.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/ADO/DXE3/IOADO.dpk =================================================================== --- trunk/Source/Brokers/ADO/DXE3/IOADO.dpk (rev 0) +++ trunk/Source/Brokers/ADO/DXE3/IOADO.dpk 2012-10-29 21:30:50 UTC (rev 962) @@ -0,0 +1,47 @@ +package IOADO; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'InstantObjects ADO Run-Time Support (Delphi XE3)'} +{$LIBSUFFIX '_D17'} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + vcl, + vcldb, + adortl, + IOCore, + IOMSSqlCatalog; + +contains + InstantADOX in '..\InstantADOX.pas', + InstantADOJRO in '..\InstantADOJRO.pas', + InstantADOTools in '..\InstantADOTools.pas', + InstantADOConnectionDefEdit in '..\InstantADOConnectionDefEdit.pas' {InstantADOConnectionDefEditForm}, + InstantADO in '..\InstantADO.pas'; + +end. Property changes on: trunk/Source/Brokers/ADO/DXE3/IOADO.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/ADO/DXE3/IOADO.dproj =================================================================== --- trunk/Source/Brokers/ADO/DXE3/IOADO.dproj (rev 0) +++ trunk/Source/Brokers/ADO/DXE3/IOADO.dproj 2012-10-29 21:30:50 UTC (rev 962) @@ -0,0 +1,159 @@ +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{A15C8D03-E537-4203-982B-A812DB31354A}</ProjectGuid> + <MainSource>IOADO.dpk</MainSource> + <Base>True</Base> + <Config Condition="'$(Config)'==''">Debug</Config> + <TargetedPlatforms>1</TargetedPlatforms> + <AppType>Package</AppType> + <FrameworkType>VCL</FrameworkType> + <ProjectVersion>14.3</ProjectVersion> + <Platform Condition="'$(Platform)'==''">Win32</Platform> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> + <Base_Win32>true</Base_Win32> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''"> + <Cfg_1_Win32>true</Cfg_1_Win32> + <CfgParent>Cfg_1</CfgParent> + <Cfg_1>true</Cfg_1> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''"> + <Cfg_2_Win32>true</Cfg_2_Win32> + <CfgParent>Cfg_2</CfgParent> + <Cfg_2>true</Cfg_2> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <DllSuffix>_D17</DllSuffix> + <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> + <DCC_Description>InstantObjects ADO Run-Time Support (Delphi XE3)</DCC_Description> + <DCC_WriteableConstants>true</DCC_WriteableConstants> + <RuntimeOnlyPackage>true</RuntimeOnlyPackage> + <DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;System.Win;Data.Win;$(DCC_Namespace)</DCC_Namespace> + <DCC_N>false</DCC_N> + <DCC_K>false</DCC_K> + <GenDll>true</GenDll> + <DCC_S>false</DCC_S> + <VerInfo_Locale>1033</VerInfo_Locale> + <GenPackage>true</GenPackage> + <DCC_F>false</DCC_F> + <DCC_E>false</DCC_E> + </PropertyGroup> + <PropertyGroup Condition="'$(Base_Win32)'!=''"> + <DCC_Namespace>Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> + <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> + <DCC_DebugInformation>false</DCC_DebugInformation> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''"> + <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> + <DCC_Optimize>false</DCC_Optimize> + <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> + <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> + </PropertyGroup> + <ItemGroup> + <DelphiCompile Include="$(MainSource)"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="vcl.dcp"/> + <DCCReference Include="vcldb.dcp"/> + <DCCReference Include="adortl.dcp"/> + <DCCReference Include="IOCore.dcp"/> + <DCCReference Include="IOMSSqlCatalog.dcp"/> + <DCCReference Include="..\InstantADOX.pas"/> + <DCCReference Include="..\InstantADOJRO.pas"/> + <DCCReference Include="..\InstantADOTools.pas"/> + <DCCReference Include="..\InstantADOConnectionDefEdit.pas"> + <Form>InstantADOConnectionDefEditForm</Form> + </DCCReference> + <DCCReference Include="..\InstantADO.pas"/> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Source> + <Source Name="MainSource">IOADO.dpk</Source> + </Source> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</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">1033</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName"/> + <VersionInfoKeys Name="FileDescription"/> + <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName"/> + <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Excluded_Packages> + <Excluded_Packages Name="$(BDSBIN)\dcloffice2k170.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> + <Excluded_Packages Name="$(BDSBIN)\dclofficexp170.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> + </Excluded_Packages> + </Delphi.Personality> + <Platforms> + <Platform value="Win32">True</Platform> + <Platform value="Win64">False</Platform> + </Platforms> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + <Import Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')" Project="$(BDS)\Bin\CodeGear.Delphi.Targets"/> + <Import Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj"/> +</Project> Property changes on: trunk/Source/Brokers/ADO/DXE3/IOADO.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/ADO/DXE3/IOADO.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/ADO/DXE3/IOADO.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/BDE/DXE3/DclIOBDE.dpk =================================================================== --- trunk/Source/Brokers/BDE/DXE3/DclIOBDE.dpk (rev 0) +++ trunk/Source/Brokers/BDE/DXE3/DclIOBDE.dpk 2012-10-29 21:30:50 UTC (rev 962) @@ -0,0 +1,44 @@ +package DclIOBDE; + +{$R *.res} +{$R '..\InstantBDE.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS ON} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'InstantObjects BDE Design-Time Support (Delphi XE3)'} +{$LIBSUFFIX '_D17'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + vcl, + vcldb, + bdertl, + IOCore, + IOBDE; + +contains + InstantBDEReg in '..\InstantBDEReg.pas'; + +end. Property changes on: trunk/Source/Brokers/BDE/DXE3/DclIOBDE.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/BDE/DXE3/DclIOBDE.dproj =================================================================== --- trunk/Source/Brokers/BDE/DXE3/DclIOBDE.dproj (rev 0) +++ trunk/Source/Brokers/BDE/DXE3/DclIOBDE.dproj 2012-10-29 21:30:50 UTC (rev 962) @@ -0,0 +1,156 @@ +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{9E226AEF-6EE8-445D-A0C4-59B39B5B77CD}</ProjectGuid> + <MainSource>DclIOBDE.dpk</MainSource> + <Base>True</Base> + <Config Condition="'$(Config)'==''">Debug</Config> + <TargetedPlatforms>1</TargetedPlatforms> + <AppType>Package</AppType> + <FrameworkType>VCL</FrameworkType> + <ProjectVersion>14.3</ProjectVersion> + <Platform Condition="'$(Platform)'==''">Win32</Platform> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> + <Base_Win32>true</Base_Win32> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''"> + <Base_Win64>true</Base_Win64> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Cfg_2>true</Cfg_2> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''"> + <Cfg_2_Win32>true</Cfg_2_Win32> + <CfgParent>Cfg_2</CfgParent> + <Cfg_2>true</Cfg_2> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Base)'!=''"> + <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> + <DesignOnlyPackage>true</DesignOnlyPackage> + <DCC_TypedAtParameter>true</DCC_TypedAtParameter> + <DllSuffix>_D17</DllSuffix> + <DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace> + <DCC_Description>InstantObjects BDE Design-Time Support (Delphi XE3)</DCC_Description> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <DCC_N>false</DCC_N> + <DCC_K>false</DCC_K> + <GenDll>true</GenDll> + <DCC_S>false</DCC_S> + <VerInfo_Locale>1033</VerInfo_Locale> + <GenPackage>true</GenPackage> + <DCC_F>false</DCC_F> + <DCC_E>false</DCC_E> + </PropertyGroup> + <PropertyGroup Condition="'$(Base_Win32)'!=''"> + <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> + <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> + <VerInfo_Locale>1033</VerInfo_Locale> + <DCC_UsePackage>vcl;bdertl;vcldb;IOCore;IOBDE;$(DCC_UsePackage)</DCC_UsePackage> + <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> + </PropertyGroup> + <PropertyGroup Condition="'$(Base_Win64)'!=''"> + <DCC_UsePackage>vcl;vcldb;$(DCC_UsePackage)</DCC_UsePackage> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_1)'!=''"> + <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> + <DCC_DebugInformation>false</DCC_DebugInformation> + <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> + <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2)'!=''"> + <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> + <DCC_Optimize>false</DCC_Optimize> + <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> + </PropertyGroup> + <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> + <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> + </PropertyGroup> + <ItemGroup> + <DelphiCompile Include="$(MainSource)"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="..\InstantBDE.dcr"/> + <DCCReference Include="vcl.dcp"/> + <DCCReference Include="vcldb.dcp"/> + <DCCReference Include="bdertl.dcp"/> + <DCCReference Include="IOCore.dcp"/> + <DCCReference Include="IOBDE.dcp"/> + <DCCReference Include="..\InstantBDEReg.pas"/> + <BuildConfiguration Include="Debug"> + <Key>Cfg_2</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + <BuildConfiguration Include="Base"> + <Key>Base</Key> + </BuildConfiguration> + <BuildConfiguration Include="Release"> + <Key>Cfg_1</Key> + <CfgParent>Base</CfgParent> + </BuildConfiguration> + </ItemGroup> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Source> + <Source Name="MainSource">DclIOBDE.dpk</Source> + </Source> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">True</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">1033</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName"/> + <VersionInfoKeys Name="FileDescription"/> + <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"/> + <VersionInfoKeys Name="LegalCopyright"/> + <VersionInfoKeys Name="LegalTrademarks"/> + <VersionInfoKeys Name="OriginalFilename"/> + <VersionInfoKeys Name="ProductName"/> + <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"/> + </VersionInfoKeys> + <Excluded_Packages> + <Excluded_Packages Name="$(BDSBIN)\dcloffice2k170.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> + <Excluded_Packages Name="$(BDSBIN)\dclofficexp170.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> + </Excluded_Packages> + </Delphi.Personality> + <Platforms> + <Platform value="Win32">True</Platform> + <Platform value="Win64">False</Platform> + </Platforms> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + <Import Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')" Project="$(BDS)\Bin\CodeGear.Delphi.Targets"/> + <Import Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj"/> +</Project> Property changes on: trunk/Source/Brokers/BDE/DXE3/DclIOBDE.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/BDE/DXE3/DclIOBDE.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/BDE/DXE3/DclIOBDE.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/BDE/DXE3/IOBDE.dpk =================================================================== --- trunk/Source/Brokers/BDE/DXE3/IOBDE.dpk (rev 0) +++ trunk/Source/Brokers/BDE/DXE3/IOBDE.dpk 2012-10-29 21:30:50 UTC (rev 962) @@ -0,0 +1,44 @@ +package IOBDE; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS ON} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'InstantObjects BDE Run-Time Support (Delphi XE3)'} +{$LIBSUFFIX '_D17'} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + vcl, + vcldb, + bdertl, + IOCore; + +contains + InstantBDECatalog in '..\InstantBDECatalog.pas', + InstantBDEConnectionDefEdit in '..\InstantBDEConnectionDefEdit.pas' {InstantBDEConnectionDefEditForm}, + InstantBDE in '..\InstantBDE.pas'; + +end. Property changes on: trunk/Source/Brokers/BDE/DXE3/IOBDE.dpk ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/BDE/DXE3/IOBDE.dproj =================================================================== --- trunk/Source/Brokers/BDE/DXE3/IOBDE.dproj (rev 0) +++ trunk/Source/Brokers/BDE/DXE3/IOBDE.dproj 2012-10-29 21:30:50 UTC (rev 962) @@ -0,0 +1,149 @@ +<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{BC7A03A0-6158-49B0-A344-E150F5E9AC94}</ProjectGuid> + <MainSource>IOBDE.dpk</MainSource> + <Base>True</Base> + <Config Condition="'$(Config)'==''">Debug</Config> + <TargetedPlatforms>1</TargetedPlatforms> + <AppType>Package</AppType> + <FrameworkType>VCL</FrameworkType> + <ProjectVersion>14.3</ProjectVersion> + <Platform Condition="'$(Platform)'==''">Win32</Platform> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> + <Base_Win32>true</Base_Win32> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Cfg_1>true</Cfg_1> + <CfgParent>Base</CfgParent> + <Base>true</Base> + </PropertyGroup> + ... [truncated message content] |
From: <na...@us...> - 2013-03-06 18:20:25
|
Revision: 965 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=965&view=rev Author: nandod Date: 2013-03-06 18:20:16 +0000 (Wed, 06 Mar 2013) Log Message: ----------- * Fixed DXE3 bug (see TestFieldSetValue). Modified Paths: -------------- trunk/Source/Core/InstantPresentation.pas trunk/Tests/TestIO.dpr trunk/Tests/TestIO.dproj trunk/Tests/TestIO.mdr trunk/Tests/TestIO.mdrt trunk/Tests/TestIO.mdx trunk/Tests/TestIO.mdxt trunk/Tests/TestIO_DXE3.dproj trunk/Tests/TestIO_DXE3.mdr trunk/Tests/TestInstantPresentation.pas Property Changed: ---------------- trunk/Tests/XMLDB/ Modified: trunk/Source/Core/InstantPresentation.pas =================================================================== --- trunk/Source/Core/InstantPresentation.pas 2012-12-05 03:36:25 UTC (rev 964) +++ trunk/Source/Core/InstantPresentation.pas 2013-03-06 18:20:16 UTC (rev 965) @@ -474,7 +474,12 @@ procedure SaveField(Field: TField); virtual; procedure SaveFieldValue(Field: TField; Buffer: Pointer; AObject: TObject); procedure SetActive(Value: Boolean); override; - procedure SetFieldData(Field: TField; Buffer: Pointer); override; +{$IFDEF D12+} + procedure SetFieldData(Field: TField; Buffer: TValueBuffer); overload; override; +{$ENDIF} +{$IFNDEF NEXTGEN} + procedure SetFieldData(Field: TField; Buffer: Pointer); overload; override; {$IFDEF D12+}deprecated 'Use overloaded method instead';{$ENDIF} +{$ENDIF} procedure SetFiltered(Value: Boolean); override; procedure SetRecNo(Value: Integer); override; procedure Undo; virtual; @@ -4221,6 +4226,7 @@ end; end; +{$IFNDEF NEXTGEN} procedure TInstantCustomExposer.SetFieldData(Field: TField; Buffer: Pointer); begin if Assigned(Buffer) then @@ -4239,7 +4245,30 @@ end; end; end; +{$ENDIF} +{$IFDEF D12+} +procedure TInstantCustomExposer.SetFieldData(Field: TField; + Buffer: TValueBuffer); +begin + if Assigned(Buffer) then + Move(Buffer[0], CurrentBuffer[GetFieldOffset(Field)], FieldDataSize(Field)) + else + FillChar(CurrentBuffer[GetFieldOffset(Field)], FieldDataSize(Field), 0); + if not (State in [dsCalcFields, dsInternalCalc, dsFilter, dsNewValue]) and + not FInSetFieldData then + begin + FInSetFieldData := True; + try + PostField(Field); + DataEvent(deFieldChange, Longint(Field)); + finally + FInSetFieldData := False; + end; + end; +end; +{$ENDIF} + procedure TInstantCustomExposer.SetFieldOptions(Value: TInstantFieldOptions); begin if Value <> FFieldOptions then Modified: trunk/Tests/TestIO.dpr =================================================================== --- trunk/Tests/TestIO.dpr 2012-12-05 03:36:25 UTC (rev 964) +++ trunk/Tests/TestIO.dpr 2013-03-06 18:20:16 UTC (rev 965) @@ -59,7 +59,8 @@ TestInstantObjectReference in 'TestInstantObjectReference.pas', MinimalModel in 'MinimalModel.pas', TestXMLBroker in 'TestXMLBroker.pas', - TestInstantCode in 'TestInstantCode.pas'; + TestInstantCode in 'TestInstantCode.pas', + TestInstantPresentation in 'TestInstantPresentation.pas'; {$R *.res} {$R *.mdr} {TestModel} Modified: trunk/Tests/TestIO.dproj =================================================================== --- trunk/Tests/TestIO.dproj 2012-12-05 03:36:25 UTC (rev 964) +++ trunk/Tests/TestIO.dproj 2013-03-06 18:20:16 UTC (rev 965) @@ -37,8 +37,7 @@ <Borland.Personality>Delphi.Personality</Borland.Personality> <Borland.ProjectType>VCLApplication</Borland.ProjectType> <BorlandProject> -<BorlandProject><Delphi.Personality><Compiler><Compiler Name="UsePackages">False</Compiler><Compiler 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</Compiler></Compiler><Parameters><Parameters Name="DebugSourceDirs">..\Source\Core</Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><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><Source><Source Name="MainSource">TestIO.dpr</Source></Source></Delphi.Personality> <ModelSupport>False</ModelSupport> -</BorlandProject></BorlandProject> +<BorlandProject><Delphi.Personality><Compiler><Compiler Name="UsePackages">False</Compiler><Compiler 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</Compiler></Compiler><Parameters><Parameters Name="DebugSourceDirs">..\Source\Core</Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><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><Source><Source Name="MainSource">TestIO.dpr</Source></Source></Delphi.Personality><ModelSupport>False</ModelSupport></BorlandProject></BorlandProject> </ProjectExtensions> <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" /> <ItemGroup> @@ -73,6 +72,7 @@ <DCCReference Include="TestInstantObjectStore.pas" /> <DCCReference Include="TestInstantPart.pas" /> <DCCReference Include="TestInstantParts.pas" /> + <DCCReference Include="TestInstantPresentation.pas" /> <DCCReference Include="TestInstantReference.pas" /> <DCCReference Include="TestInstantReferences.pas" /> <DCCReference Include="TestInstantRtti.pas" /> Modified: trunk/Tests/TestIO.mdr =================================================================== (Binary files differ) Modified: trunk/Tests/TestIO.mdrt =================================================================== (Binary files differ) Modified: trunk/Tests/TestIO.mdx =================================================================== --- trunk/Tests/TestIO.mdx 2012-12-05 03:36:25 UTC (rev 964) +++ trunk/Tests/TestIO.mdx 2013-03-06 18:20:16 UTC (rev 965) @@ -9,6 +9,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>TRUE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>30</Size> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -16,6 +17,7 @@ <AttributeType>atReference</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TCountry</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -23,6 +25,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>4</Size> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -30,12 +33,14 @@ <AttributeType>atMemo</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> </TInstantAttributeMetadata> <TInstantAttributeMetadata> <Name>Zip</Name> <AttributeType>atString</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>10</Size> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> @@ -51,6 +56,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>30</Size> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> @@ -66,6 +72,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>20</Size> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -73,6 +80,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>30</Size> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -81,6 +89,7 @@ <EditMask>(000) 000-0000;0;_</EditMask> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>20</Size> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> @@ -96,6 +105,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>100</Size> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> @@ -112,6 +122,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>30</Size> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> @@ -127,6 +138,7 @@ <AttributeType>atPart</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TAddress</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -134,6 +146,7 @@ <AttributeType>atReference</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TCategory</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -141,6 +154,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>TRUE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>30</Size> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -148,6 +162,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>TRUE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>50</Size> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -155,6 +170,7 @@ <AttributeType>atParts</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TPhone</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -164,6 +180,7 @@ <StorageKind>skExternal</StorageKind> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TProject</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -172,6 +189,7 @@ <StorageKind>skExternal</StorageKind> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TExternalAddress</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -181,6 +199,7 @@ <StorageKind>skExternal</StorageKind> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TExternalPhone</ObjectClassName> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> @@ -204,12 +223,14 @@ <AttributeType>atDateTime</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> </TInstantAttributeMetadata> <TInstantAttributeMetadata> <Name>Emails</Name> <AttributeType>atParts</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TEmail</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -217,6 +238,7 @@ <AttributeType>atReference</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TCompany</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -224,37 +246,43 @@ <AttributeType>atBlob</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> </TInstantAttributeMetadata> <TInstantAttributeMetadata> <Name>Salary</Name> <AttributeType>atCurrency</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> - <ValidCharsString>,.0..9\x82\xAC\xE2</ValidCharsString> + <IsUnique>FALSE</IsUnique> + <ValidCharsString>,.0..9€</ValidCharsString> </TInstantAttributeMetadata> <TInstantAttributeMetadata> <Name>Employed</Name> <AttributeType>atBoolean</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> </TInstantAttributeMetadata> <TInstantAttributeMetadata> <Name>AL_hours</Name> <AttributeType>atFloat</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> </TInstantAttributeMetadata> <TInstantAttributeMetadata> <Name>EmploymentDate</Name> <AttributeType>atDate</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> </TInstantAttributeMetadata> <TInstantAttributeMetadata> <Name>BirthTime</Name> <AttributeType>atTime</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> </AttributeMetadatas> @@ -270,6 +298,7 @@ <AttributeType>atReferences</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TPerson</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -277,12 +306,14 @@ <AttributeType>atInteger</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> </TInstantAttributeMetadata> <TInstantAttributeMetadata> <Name>Subsidiaries</Name> <AttributeType>atReferences</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TCompany</ObjectClassName> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> @@ -299,6 +330,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>30</Size> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -308,6 +340,7 @@ <StorageKind>skExternal</StorageKind> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TProject</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -317,6 +350,7 @@ <StorageKind>skExternal</StorageKind> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TExternalAddress</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -324,6 +358,7 @@ <AttributeType>atReference</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TContact</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -333,6 +368,7 @@ <StorageKind>skExternal</StorageKind> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TContact</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -340,6 +376,7 @@ <AttributeType>atPart</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TProjectItems</ObjectClassName> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> @@ -356,6 +393,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>30</Size> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -363,6 +401,7 @@ <AttributeType>atReference</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TCategory</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -370,6 +409,7 @@ <AttributeType>atReference</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TPerson</ObjectClassName> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> @@ -386,6 +426,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>20</Size> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -394,6 +435,7 @@ <EditMask>(000) 000-0000;0;_</EditMask> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>20</Size> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> @@ -409,6 +451,7 @@ <AttributeType>atPart</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TProject</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -416,6 +459,7 @@ <AttributeType>atReferences</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TProjectBox</ObjectClassName> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> @@ -431,6 +475,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>50</Size> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -438,6 +483,7 @@ <AttributeType>atReference</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TCountry</ObjectClassName> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> @@ -453,6 +499,7 @@ <AttributeType>atParts</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TProjectItem</ObjectClassName> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> Modified: trunk/Tests/TestIO.mdxt =================================================================== --- trunk/Tests/TestIO.mdxt 2012-12-05 03:36:25 UTC (rev 964) +++ trunk/Tests/TestIO.mdxt 2013-03-06 18:20:16 UTC (rev 965) @@ -9,6 +9,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>TRUE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>30</Size> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -16,6 +17,7 @@ <AttributeType>atReference</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TCountry</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -23,6 +25,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>4</Size> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -30,12 +33,14 @@ <AttributeType>atMemo</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> </TInstantAttributeMetadata> <TInstantAttributeMetadata> <Name>Zip</Name> <AttributeType>atString</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>10</Size> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> @@ -51,6 +56,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>30</Size> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> @@ -66,6 +72,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>20</Size> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -73,6 +80,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>30</Size> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -81,6 +89,7 @@ <EditMask>(000) 000-0000;0;_</EditMask> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>20</Size> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> @@ -96,6 +105,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>100</Size> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> @@ -111,6 +121,7 @@ <AttributeType>atPart</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TAddress</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -118,6 +129,7 @@ <AttributeType>atReference</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TCategory</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -125,6 +137,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>TRUE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>30</Size> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -132,6 +145,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>TRUE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>50</Size> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -139,6 +153,7 @@ <AttributeType>atParts</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TPhone</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -148,6 +163,7 @@ <StorageKind>skExternal</StorageKind> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TProject</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -156,6 +172,7 @@ <StorageKind>skExternal</StorageKind> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TExternalAddress</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -165,6 +182,7 @@ <StorageKind>skExternal</StorageKind> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TExternalPhone</ObjectClassName> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> @@ -188,12 +206,14 @@ <AttributeType>atDateTime</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> </TInstantAttributeMetadata> <TInstantAttributeMetadata> <Name>Emails</Name> <AttributeType>atParts</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TEmail</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -201,6 +221,7 @@ <AttributeType>atReference</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TCompany</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -208,37 +229,43 @@ <AttributeType>atBlob</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> </TInstantAttributeMetadata> <TInstantAttributeMetadata> <Name>Salary</Name> <AttributeType>atCurrency</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> - <ValidCharsString>,.0..9\x82\xAC\xE2</ValidCharsString> + <IsUnique>FALSE</IsUnique> + <ValidCharsString>,.0..9€</ValidCharsString> </TInstantAttributeMetadata> <TInstantAttributeMetadata> <Name>Employed</Name> <AttributeType>atBoolean</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> </TInstantAttributeMetadata> <TInstantAttributeMetadata> <Name>AL_hours</Name> <AttributeType>atFloat</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> </TInstantAttributeMetadata> <TInstantAttributeMetadata> <Name>EmploymentDate</Name> <AttributeType>atDate</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> </TInstantAttributeMetadata> <TInstantAttributeMetadata> <Name>BirthTime</Name> <AttributeType>atTime</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> </AttributeMetadatas> @@ -254,6 +281,7 @@ <AttributeType>atReferences</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TPerson</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -261,12 +289,14 @@ <AttributeType>atInteger</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> </TInstantAttributeMetadata> <TInstantAttributeMetadata> <Name>Subsidiaries</Name> <AttributeType>atReferences</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TCompany</ObjectClassName> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> @@ -283,6 +313,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>30</Size> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -292,6 +323,7 @@ <StorageKind>skExternal</StorageKind> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TProject</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -301,6 +333,7 @@ <StorageKind>skExternal</StorageKind> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TExternalAddress</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -308,6 +341,7 @@ <AttributeType>atReference</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TContact</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -317,6 +351,7 @@ <StorageKind>skExternal</StorageKind> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TContact</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -324,6 +359,7 @@ <AttributeType>atPart</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TProjectItems</ObjectClassName> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> @@ -340,6 +376,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>30</Size> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -347,6 +384,7 @@ <AttributeType>atReference</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TCategory</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -354,6 +392,7 @@ <AttributeType>atReference</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TPerson</ObjectClassName> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> @@ -370,6 +409,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>20</Size> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -378,6 +418,7 @@ <EditMask>(000) 000-0000;0;_</EditMask> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>20</Size> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> @@ -393,6 +434,7 @@ <AttributeType>atPart</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TProject</ObjectClassName> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -400,6 +442,7 @@ <AttributeType>atReferences</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TProjectBox</ObjectClassName> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> @@ -415,6 +458,7 @@ <AttributeType>atString</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <Size>50</Size> </TInstantAttributeMetadata> <TInstantAttributeMetadata> @@ -422,6 +466,7 @@ <AttributeType>atReference</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TCountry</ObjectClassName> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> @@ -437,6 +482,7 @@ <AttributeType>atParts</AttributeType> <IsIndexed>FALSE</IsIndexed> <IsRequired>FALSE</IsRequired> + <IsUnique>FALSE</IsUnique> <ObjectClassName>TProjectItem</ObjectClassName> </TInstantAttributeMetadata> </TInstantAttributeMetadatas> Modified: trunk/Tests/TestIO_DXE3.dproj =================================================================== --- trunk/Tests/TestIO_DXE3.dproj 2012-12-05 03:36:25 UTC (rev 964) +++ trunk/Tests/TestIO_DXE3.dproj 2013-03-06 18:20:16 UTC (rev 965) @@ -5,7 +5,7 @@ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> <DCC_DependencyCheckOutputName>TestIO_DXE2.exe</DCC_DependencyCheckOutputName> - <ProjectVersion>14.3</ProjectVersion> + <ProjectVersion>14.4</ProjectVersion> <Config Condition="'$(Config)'==''">Debug</Config> <Base>True</Base> <AppType>Application</AppType> @@ -114,6 +114,7 @@ <DCCReference Include="MinimalModel.pas"/> <DCCReference Include="TestXMLBroker.pas"/> <DCCReference Include="TestInstantCode.pas"/> + <DCCReference Include="TestInstantPresentation.pas"/> <BuildConfiguration Include="Debug"> <Key>Cfg_2</Key> <CfgParent>Base</CfgParent> Modified: trunk/Tests/TestIO_DXE3.mdr =================================================================== (Binary files differ) Modified: trunk/Tests/TestInstantPresentation.pas =================================================================== --- trunk/Tests/TestInstantPresentation.pas 2012-12-05 03:36:25 UTC (rev 964) +++ trunk/Tests/TestInstantPresentation.pas 2013-03-06 18:20:16 UTC (rev 965) @@ -53,6 +53,8 @@ procedure TearDown; override; published procedure TestFieldGetValue; + procedure TestFieldSetValue; + procedure TestEditPost; end; implementation @@ -93,6 +95,23 @@ AssertEquals('John Doe', FInstantExposer.FieldByName('Name').AsString); end; +procedure TestTInstantExposer.TestFieldSetValue; +begin + FInstantExposer.FieldByName('Name').AsString := 'Jane Doe'; + AssertEquals('Jane Doe', FInstantExposer.FieldByName('Name').AsString); +end; + +procedure TestTInstantExposer.TestEditPost; +begin + FInstantExposer.Edit; + FInstantExposer.FieldByName('Name').AsString := 'Jane Doe'; + AssertEquals('Jane Doe', FInstantExposer.FieldByName('Name').AsString); + AssertEquals('Jane Doe', FPerson.Name); + FInstantExposer.Post; + AssertEquals('Jane Doe', FInstantExposer.FieldByName('Name').AsString); + AssertEquals('Jane Doe', FPerson.Name); +end; + initialization // Register any test cases with the test runner {$IFNDEF CURR_TESTS} Property changes on: trunk/Tests/XMLDB ___________________________________________________________________ Added: svn:ignore + Contact |