You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(13) |
Sep
(25) |
Oct
(10) |
Nov
(19) |
Dec
(20) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
|
Feb
(206) |
Mar
(43) |
Apr
(25) |
May
(20) |
Jun
(69) |
Jul
(121) |
Aug
(95) |
Sep
(122) |
Oct
(213) |
Nov
(46) |
Dec
(39) |
2006 |
Jan
(28) |
Feb
(57) |
Mar
(21) |
Apr
(7) |
May
(11) |
Jun
(2) |
Jul
(8) |
Aug
(13) |
Sep
(2) |
Oct
(2) |
Nov
(20) |
Dec
(16) |
2007 |
Jan
(9) |
Feb
(15) |
Mar
|
Apr
(4) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(3) |
Aug
(1) |
Sep
(9) |
Oct
|
Nov
(1) |
Dec
|
2009 |
Jan
|
Feb
|
Mar
(8) |
Apr
(1) |
May
|
Jun
|
Jul
(11) |
Aug
(57) |
Sep
(2) |
Oct
(6) |
Nov
|
Dec
(7) |
2010 |
Jan
(11) |
Feb
(1) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
(1) |
Aug
(2) |
Sep
(27) |
Oct
(3) |
Nov
(7) |
Dec
(1) |
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(10) |
Oct
|
Nov
|
Dec
|
2012 |
Jan
(8) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
(3) |
Nov
(1) |
Dec
(1) |
2013 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
(4) |
Dec
|
2015 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
(1) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
(4) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
(3) |
Oct
|
Nov
(4) |
Dec
|
2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
From: <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-16 10:07:40
|
Revision: 917 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=917&view=rev Author: nandod Date: 2010-09-16 10:07:33 +0000 (Thu, 16 Sep 2010) Log Message: ----------- * Fixed some annoying glitches in Primer demos. + PrimerExternal project from Delphi XE. Modified Paths: -------------- trunk/Demos/PrimerCross/ContactView.dfm trunk/Demos/PrimerCross/ContactView.pas trunk/Demos/PrimerCross/Primer.xml trunk/Demos/PrimerCross/PrimerExternal.xml trunk/Demos/PrimerCross/Primer_D2009.xml Added Paths: ----------- trunk/Demos/PrimerCross/PrimerExternal_DXE.dpr trunk/Demos/PrimerCross/PrimerExternal_DXE.dproj trunk/Demos/PrimerCross/PrimerExternal_DXE.mdr trunk/Demos/PrimerCross/PrimerExternal_DXE.res trunk/Demos/PrimerCross/PrimerExternal_DXE.xml Modified: trunk/Demos/PrimerCross/ContactView.dfm =================================================================== --- trunk/Demos/PrimerCross/ContactView.dfm 2010-09-15 10:23:27 UTC (rev 916) +++ trunk/Demos/PrimerCross/ContactView.dfm 2010-09-16 10:07:33 UTC (rev 917) @@ -47,7 +47,6 @@ Top = 2 Width = 145 Height = 21 - ItemHeight = 13 TabOrder = 0 OnClick = FindEditClick end @@ -317,6 +316,7 @@ end object ActionList: TActionList Images = ActionImages + State = asSuspended OnUpdate = ActionListUpdate Left = 16 Top = 256 Modified: trunk/Demos/PrimerCross/ContactView.pas =================================================================== --- trunk/Demos/PrimerCross/ContactView.pas 2010-09-15 10:23:27 UTC (rev 916) +++ trunk/Demos/PrimerCross/ContactView.pas 2010-09-16 10:07:33 UTC (rev 917) @@ -134,6 +134,8 @@ procedure Connect; override; procedure Disconnect; override; procedure Reset; override; + procedure FormHide(Sender: TObject); override; + procedure FormShow(Sender: TObject); override; end; implementation @@ -438,6 +440,18 @@ end; end; +procedure TContactViewForm.FormHide(Sender: TObject); +begin + inherited; + ActionList.State := asSuspended; +end; + +procedure TContactViewForm.FormShow(Sender: TObject); +begin + inherited; + ActionList.State := asNormal; +end; + function TContactViewForm.GetContactFilter: TContactFilter; begin if not Assigned(FContactFilter) then Modified: trunk/Demos/PrimerCross/Primer.xml =================================================================== --- trunk/Demos/PrimerCross/Primer.xml 2010-09-15 10:23:27 UTC (rev 916) +++ trunk/Demos/PrimerCross/Primer.xml 2010-09-16 10:07:33 UTC (rev 917) @@ -1,5 +1,23 @@ -<TInstantConnectionDefs><TInstantBDEConnectionDef><Name>ParadoxDB</Name><IsBuilt>TRUE</IsBuilt><BlobStreamFormat>sfXML</BlobStreamFormat><LoginPrompt>FALSE</LoginPrompt><DriverName>STANDARD</DriverName><Parameters>PATH=.\ParadoxDB +<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>ibxUseDelimitedIdents</Options><Params>User_Name=SYSDBA -Password=masterkey</Params></TInstantIBXConnectionDef></TInstantConnectionDefs> \ No newline at end of file +</Parameters> + </TInstantBDEConnectionDef> + <TInstantIBXConnectionDef> + <Name>FirebirdDB</Name> + <IsBuilt>TRUE</IsBuilt> + <BlobStreamFormat>sfXML</BlobStreamFormat> + <LoginPrompt>FALSE</LoginPrompt> + <ConnectionString>.\FirebirdDB\PRIMERDB.FDB</ConnectionString> + <Options>ibxUseDelimitedIdents</Options> + <Params>User_Name=SYSDBA +Password=masterkey</Params> + </TInstantIBXConnectionDef> +</TInstantConnectionDefs> Modified: trunk/Demos/PrimerCross/PrimerExternal.xml =================================================================== --- trunk/Demos/PrimerCross/PrimerExternal.xml 2010-09-15 10:23:27 UTC (rev 916) +++ trunk/Demos/PrimerCross/PrimerExternal.xml 2010-09-16 10:07:33 UTC (rev 917) @@ -1,2 +1,17 @@ -<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>.\XMLDB\</RootFolder></TInstantXMLConnectionDef></TInstantConnectionDefs> \ No newline at end of file +<TInstantConnectionDefs> + <TInstantIBXConnectionDef> + <Name>FirebirdDBExternal</Name> + <IsBuilt>TRUE</IsBuilt> + <BlobStreamFormat>sfXML</BlobStreamFormat> + <LoginPrompt>FALSE</LoginPrompt> + <ConnectionString>C:\DB\PrimerExt.fdb</ConnectionString> + <Options></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> Added: trunk/Demos/PrimerCross/PrimerExternal_DXE.dpr =================================================================== --- trunk/Demos/PrimerCross/PrimerExternal_DXE.dpr (rev 0) +++ trunk/Demos/PrimerCross/PrimerExternal_DXE.dpr 2010-09-16 10:07:33 UTC (rev 917) @@ -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_DXE; + +{$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_DXE.dpr ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Demos/PrimerCross/PrimerExternal_DXE.dproj =================================================================== --- trunk/Demos/PrimerCross/PrimerExternal_DXE.dproj (rev 0) +++ trunk/Demos/PrimerCross/PrimerExternal_DXE.dproj 2010-09-16 10:07:33 UTC (rev 917) @@ -0,0 +1,193 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{0d607f9b-9c2b-445d-84fd-7072bc53deff}</ProjectGuid> + <MainSource>PrimerExternal_DXE.dpr</MainSource> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <DCC_DependencyCheckOutputName>PrimerExternal.exe</DCC_DependencyCheckOutputName> + <ProjectVersion>12.2</ProjectVersion> + <Config Condition="'$(Config)'==''">Debug</Config> + <Base>True</Base> + <Platform>Win32</Platform> + <AppType>Application</AppType> + <FrameworkType>VCL</FrameworkType> + </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_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;$(DCC_UnitAlias)</DCC_UnitAlias> + <DCC_Define>IO_STATEMENT_LOGGING;$(DCC_Define)</DCC_Define> + <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;$(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_Optimize>false</DCC_Optimize> + <DCC_DebugDCUs>true</DCC_DebugDCUs> + <Version>7.0</Version> + <DCC_Define>DEBUG;$(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/> + <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_DXE.dpr</Source> + </Source> + </Delphi.Personality> + <Platforms> + <Platform value="Win32">True</Platform> + </Platforms> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + <ItemGroup> + <DelphiCompile Include="PrimerExternal_DXE.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="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)\8.0\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\8.0\UserTools.proj"/> + </Project> Property changes on: trunk/Demos/PrimerCross/PrimerExternal_DXE.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Demos/PrimerCross/PrimerExternal_DXE.mdr =================================================================== (Binary files differ) Property changes on: trunk/Demos/PrimerCross/PrimerExternal_DXE.mdr ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Demos/PrimerCross/PrimerExternal_DXE.res =================================================================== (Binary files differ) Property changes on: trunk/Demos/PrimerCross/PrimerExternal_DXE.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Demos/PrimerCross/PrimerExternal_DXE.xml =================================================================== --- trunk/Demos/PrimerCross/PrimerExternal_DXE.xml (rev 0) +++ trunk/Demos/PrimerCross/PrimerExternal_DXE.xml 2010-09-16 10:07:33 UTC (rev 917) @@ -0,0 +1,14 @@ +<TInstantConnectionDefs> + <TInstantIBXConnectionDef> + <Name>FirebirdExtDB</Name> + <IsBuilt>TRUE</IsBuilt> + <BlobStreamFormat>sfXML</BlobStreamFormat> + <LoginPrompt>FALSE</LoginPrompt> + <ConnectionString>localhost:C:\DB\PrimerExt.fdb</ConnectionString> + <Options></Options> + <Params>user_name=SYSDBA +password=masterkey +lc_ctype=ISO8859_1 +</Params> + </TInstantIBXConnectionDef> +</TInstantConnectionDefs> Property changes on: trunk/Demos/PrimerCross/PrimerExternal_DXE.xml ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Modified: trunk/Demos/PrimerCross/Primer_D2009.xml =================================================================== --- trunk/Demos/PrimerCross/Primer_D2009.xml 2010-09-15 10:23:27 UTC (rev 916) +++ trunk/Demos/PrimerCross/Primer_D2009.xml 2010-09-16 10:07:33 UTC (rev 917) @@ -1 +1,17 @@ -<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 +<TInstantConnectionDefs> + <TInstantXMLConnectionDef> + <Name>XMLDB</Name> + <IsBuilt>TRUE</IsBuilt> + <RootFolder>C:\Users\nandod\Work\Projects\instantobjects\Demos\PrimerCross\XMLDB</RootFolder> + </TInstantXMLConnectionDef> + <TInstantBDEConnectionDef> + <Name>ParadoxDB</Name> + <IsBuilt>TRUE</IsBuilt> + <BlobStreamFormat>sfXML</BlobStreamFormat> + <DriverName>STANDARD</DriverName> + <Parameters>PATH=.\ParadoxDB +DEFAULT DRIVER=PARADOX +ENABLE BCD=FALSE +</Parameters> + </TInstantBDEConnectionDef> +</TInstantConnectionDefs> |
From: <na...@us...> - 2010-09-15 10:23:33
|
Revision: 916 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=916&view=rev Author: nandod Date: 2010-09-15 10:23:27 +0000 (Wed, 15 Sep 2010) Log Message: ----------- * Renamed Delphi XE folders for consistency (part 2). Added Paths: ----------- trunk/Source/Catalogs/IBFb/DXE/ trunk/Source/Catalogs/MSSql/DXE/ trunk/Source/Catalogs/MySQL/DXE/ Removed Paths: ------------- trunk/Source/Catalogs/IBFb/D2011/ trunk/Source/Catalogs/MSSql/D2011/ trunk/Source/Catalogs/MySQL/D2011/ |
From: <na...@us...> - 2010-09-15 10:05:46
|
Revision: 915 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=915&view=rev Author: nandod Date: 2010-09-15 10:05:36 +0000 (Wed, 15 Sep 2010) Log Message: ----------- * Renamed Delphi XE folders for consistency. Modified Paths: -------------- trunk/Source/PackageGroups/DXE/CorePackages.groupproj trunk/Source/PackageGroups/DXE/DesignTimePackages.groupproj trunk/Source/PackageGroups/DXE/RunTimePackages.groupproj Added Paths: ----------- trunk/Source/Brokers/ADO/DXE/ trunk/Source/Brokers/AnyDAC/DXE/ trunk/Source/Brokers/BDE/DXE/ trunk/Source/Brokers/DBX/DXE/ trunk/Source/Brokers/IBX/DXE/ trunk/Source/Brokers/XML/DXE/ trunk/Source/Brokers/ZeosDBO/DXE/ trunk/Source/Core/DXE/ trunk/Source/Design/DXE/ trunk/Source/PackageGroups/DXE/ Removed Paths: ------------- trunk/Source/Brokers/ADO/D2011/ trunk/Source/Brokers/AnyDAC/D2011/ trunk/Source/Brokers/BDE/D2011/ trunk/Source/Brokers/DBX/D2011/ trunk/Source/Brokers/IBX/D2011/ trunk/Source/Brokers/XML/D2011/ trunk/Source/Brokers/ZeosDBO/D2011/ trunk/Source/Core/D2011/ trunk/Source/Design/D2011/ trunk/Source/PackageGroups/D2011/ Modified: trunk/Source/PackageGroups/DXE/CorePackages.groupproj =================================================================== --- trunk/Source/PackageGroups/D2011/CorePackages.groupproj 2010-09-15 03:19:35 UTC (rev 914) +++ trunk/Source/PackageGroups/DXE/CorePackages.groupproj 2010-09-15 10:05:36 UTC (rev 915) @@ -3,25 +3,25 @@ <ProjectGuid>{BF17374A-C537-4CFB-A0D4-41C4565CB15A}</ProjectGuid> </PropertyGroup> <ItemGroup> - <Projects Include="..\..\Core\D2011\IOCore.dproj"> + <Projects Include="..\..\Core\DXE\IOCore.dproj"> <Dependencies/> </Projects> - <Projects Include="..\..\Design\D2011\DclIOCore.dproj"> + <Projects Include="..\..\Design\DXE\DclIOCore.dproj"> <Dependencies/> </Projects> - <Projects Include="..\..\Brokers\BDE\D2011\IOBDE.dproj"> + <Projects Include="..\..\Brokers\BDE\DXE\IOBDE.dproj"> <Dependencies/> </Projects> - <Projects Include="..\..\Brokers\BDE\D2011\DclIOBDE.dproj"> + <Projects Include="..\..\Brokers\BDE\DXE\DclIOBDE.dproj"> <Dependencies/> </Projects> - <Projects Include="..\..\Brokers\XML\D2011\IOXML.dproj"> + <Projects Include="..\..\Brokers\XML\DXE\IOXML.dproj"> <Dependencies/> </Projects> - <Projects Include="..\..\Brokers\XML\D2011\DclIOXML.dproj"> + <Projects Include="..\..\Brokers\XML\DXE\DclIOXML.dproj"> <Dependencies/> </Projects> - <Projects Include="..\..\..\Tests\TestIO_D2011.dproj"> + <Projects Include="..\..\..\Tests\TestIO_DXE.dproj"> <Dependencies/> </Projects> </ItemGroup> @@ -33,76 +33,76 @@ </BorlandProject> </ProjectExtensions> <Target Name="IOCore"> - <MSBuild Projects="..\..\Core\D2011\IOCore.dproj"/> + <MSBuild Projects="..\..\Core\DXE\IOCore.dproj"/> </Target> <Target Name="IOCore:Clean"> - <MSBuild Targets="Clean" Projects="..\..\Core\D2011\IOCore.dproj"/> + <MSBuild Targets="Clean" Projects="..\..\Core\DXE\IOCore.dproj"/> </Target> <Target Name="IOCore:Make"> - <MSBuild Targets="Make" Projects="..\..\Core\D2011\IOCore.dproj"/> + <MSBuild Targets="Make" Projects="..\..\Core\DXE\IOCore.dproj"/> </Target> <Target Name="DclIOCore"> - <MSBuild Projects="..\..\Design\D2011\DclIOCore.dproj"/> + <MSBuild Projects="..\..\Design\DXE\DclIOCore.dproj"/> </Target> <Target Name="DclIOCore:Clean"> - <MSBuild Targets="Clean" Projects="..\..\Design\D2011\DclIOCore.dproj"/> + <MSBuild Targets="Clean" Projects="..\..\Design\DXE\DclIOCore.dproj"/> </Target> <Target Name="DclIOCore:Make"> - <MSBuild Targets="Make" Projects="..\..\Design\D2011\DclIOCore.dproj"/> + <MSBuild Targets="Make" Projects="..\..\Design\DXE\DclIOCore.dproj"/> </Target> <Target Name="IOBDE"> - <MSBuild Projects="..\..\Brokers\BDE\D2011\IOBDE.dproj"/> + <MSBuild Projects="..\..\Brokers\BDE\DXE\IOBDE.dproj"/> </Target> <Target Name="IOBDE:Clean"> - <MSBuild Targets="Clean" Projects="..\..\Brokers\BDE\D2011\IOBDE.dproj"/> + <MSBuild Targets="Clean" Projects="..\..\Brokers\BDE\DXE\IOBDE.dproj"/> </Target> <Target Name="IOBDE:Make"> - <MSBuild Targets="Make" Projects="..\..\Brokers\BDE\D2011\IOBDE.dproj"/> + <MSBuild Targets="Make" Projects="..\..\Brokers\BDE\DXE\IOBDE.dproj"/> </Target> <Target Name="DclIOBDE"> - <MSBuild Projects="..\..\Brokers\BDE\D2011\DclIOBDE.dproj"/> + <MSBuild Projects="..\..\Brokers\BDE\DXE\DclIOBDE.dproj"/> </Target> <Target Name="DclIOBDE:Clean"> - <MSBuild Targets="Clean" Projects="..\..\Brokers\BDE\D2011\DclIOBDE.dproj"/> + <MSBuild Targets="Clean" Projects="..\..\Brokers\BDE\DXE\DclIOBDE.dproj"/> </Target> <Target Name="DclIOBDE:Make"> - <MSBuild Targets="Make" Projects="..\..\Brokers\BDE\D2011\DclIOBDE.dproj"/> + <MSBuild Targets="Make" Projects="..\..\Brokers\BDE\DXE\DclIOBDE.dproj"/> </Target> <Target Name="IOXML"> - <MSBuild Projects="..\..\Brokers\XML\D2011\IOXML.dproj"/> + <MSBuild Projects="..\..\Brokers\XML\DXE\IOXML.dproj"/> </Target> <Target Name="IOXML:Clean"> - <MSBuild Targets="Clean" Projects="..\..\Brokers\XML\D2011\IOXML.dproj"/> + <MSBuild Targets="Clean" Projects="..\..\Brokers\XML\DXE\IOXML.dproj"/> </Target> <Target Name="IOXML:Make"> - <MSBuild Targets="Make" Projects="..\..\Brokers\XML\D2011\IOXML.dproj"/> + <MSBuild Targets="Make" Projects="..\..\Brokers\XML\DXE\IOXML.dproj"/> </Target> <Target Name="DclIOXML"> - <MSBuild Projects="..\..\Brokers\XML\D2011\DclIOXML.dproj"/> + <MSBuild Projects="..\..\Brokers\XML\DXE\DclIOXML.dproj"/> </Target> <Target Name="DclIOXML:Clean"> - <MSBuild Targets="Clean" Projects="..\..\Brokers\XML\D2011\DclIOXML.dproj"/> + <MSBuild Targets="Clean" Projects="..\..\Brokers\XML\DXE\DclIOXML.dproj"/> </Target> <Target Name="DclIOXML:Make"> - <MSBuild Targets="Make" Projects="..\..\Brokers\XML\D2011\DclIOXML.dproj"/> + <MSBuild Targets="Make" Projects="..\..\Brokers\XML\DXE\DclIOXML.dproj"/> </Target> - <Target Name="TestIO_D2011"> - <MSBuild Projects="..\..\..\Tests\TestIO_D2011.dproj"/> + <Target Name="TestIO_DXE"> + <MSBuild Projects="..\..\..\Tests\TestIO_DXE.dproj"/> </Target> - <Target Name="TestIO_D2011:Clean"> - <MSBuild Targets="Clean" Projects="..\..\..\Tests\TestIO_D2011.dproj"/> + <Target Name="TestIO_DXE:Clean"> + <MSBuild Targets="Clean" Projects="..\..\..\Tests\TestIO_DXE.dproj"/> </Target> - <Target Name="TestIO_D2011:Make"> - <MSBuild Targets="Make" Projects="..\..\..\Tests\TestIO_D2011.dproj"/> + <Target Name="TestIO_DXE:Make"> + <MSBuild Targets="Make" Projects="..\..\..\Tests\TestIO_DXE.dproj"/> </Target> <Target Name="Build"> - <CallTarget Targets="IOCore;DclIOCore;IOBDE;DclIOBDE;IOXML;DclIOXML;TestIO_D2011"/> + <CallTarget Targets="IOCore;DclIOCore;IOBDE;DclIOBDE;IOXML;DclIOXML;TestIO_DXE"/> </Target> <Target Name="Clean"> - <CallTarget Targets="IOCore:Clean;DclIOCore:Clean;IOBDE:Clean;DclIOBDE:Clean;IOXML:Clean;DclIOXML:Clean;TestIO_D2011:Clean"/> + <CallTarget Targets="IOCore:Clean;DclIOCore:Clean;IOBDE:Clean;DclIOBDE:Clean;IOXML:Clean;DclIOXML:Clean;TestIO_DXE:Clean"/> </Target> <Target Name="Make"> - <CallTarget Targets="IOCore:Make;DclIOCore:Make;IOBDE:Make;DclIOBDE:Make;IOXML:Make;DclIOXML:Make;TestIO_D2011:Make"/> + <CallTarget Targets="IOCore:Make;DclIOCore:Make;IOBDE:Make;DclIOBDE:Make;IOXML:Make;DclIOXML:Make;TestIO_DXE:Make"/> </Target> <Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/> </Project> Modified: trunk/Source/PackageGroups/DXE/DesignTimePackages.groupproj =================================================================== --- trunk/Source/PackageGroups/D2011/DesignTimePackages.groupproj 2010-09-15 03:19:35 UTC (rev 914) +++ trunk/Source/PackageGroups/DXE/DesignTimePackages.groupproj 2010-09-15 10:05:36 UTC (rev 915) @@ -3,22 +3,22 @@ <ProjectGuid>{b0beaee6-5b6a-420d-a1e5-7be9568cd5a2}</ProjectGuid> </PropertyGroup> <ItemGroup> - <Projects Include="..\..\Design\D2011\DclIOCore.dproj"> + <Projects Include="..\..\Design\DXE\DclIOCore.dproj"> <Dependencies/> </Projects> - <Projects Include="..\..\Brokers\ADO\D2011\DclIOADO.dproj"> + <Projects Include="..\..\Brokers\ADO\DXE\DclIOADO.dproj"> <Dependencies/> </Projects> - <Projects Include="..\..\Brokers\BDE\D2011\DclIOBDE.dproj"> + <Projects Include="..\..\Brokers\BDE\DXE\DclIOBDE.dproj"> <Dependencies/> </Projects> - <Projects Include="..\..\Brokers\DBX\D2011\DclIODBX.dproj"> + <Projects Include="..\..\Brokers\DBX\DXE\DclIODBX.dproj"> <Dependencies/> </Projects> - <Projects Include="..\..\Brokers\IBX\D2011\DclIOIBX.dproj"> + <Projects Include="..\..\Brokers\IBX\DXE\DclIOIBX.dproj"> <Dependencies/> </Projects> - <Projects Include="..\..\Brokers\XML\D2011\DclIOXML.dproj"> + <Projects Include="..\..\Brokers\XML\DXE\DclIOXML.dproj"> <Dependencies/> </Projects> </ItemGroup> @@ -32,58 +32,58 @@ </BorlandProject> </ProjectExtensions> <Target Name="DclIOCore"> - <MSBuild Projects="..\..\Design\D2011\DclIOCore.dproj"/> + <MSBuild Projects="..\..\Design\DXE\DclIOCore.dproj"/> </Target> <Target Name="DclIOCore:Clean"> - <MSBuild Targets="Clean" Projects="..\..\Design\D2011\DclIOCore.dproj"/> + <MSBuild Targets="Clean" Projects="..\..\Design\DXE\DclIOCore.dproj"/> </Target> <Target Name="DclIOCore:Make"> - <MSBuild Targets="Make" Projects="..\..\Design\D2011\DclIOCore.dproj"/> + <MSBuild Targets="Make" Projects="..\..\Design\DXE\DclIOCore.dproj"/> </Target> <Target Name="DclIOADO"> - <MSBuild Projects="..\..\Brokers\ADO\D2011\DclIOADO.dproj"/> + <MSBuild Projects="..\..\Brokers\ADO\DXE\DclIOADO.dproj"/> </Target> <Target Name="DclIOADO:Clean"> - <MSBuild Targets="Clean" Projects="..\..\Brokers\ADO\D2011\DclIOADO.dproj"/> + <MSBuild Targets="Clean" Projects="..\..\Brokers\ADO\DXE\DclIOADO.dproj"/> </Target> <Target Name="DclIOADO:Make"> - <MSBuild Targets="Make" Projects="..\..\Brokers\ADO\D2011\DclIOADO.dproj"/> + <MSBuild Targets="Make" Projects="..\..\Brokers\ADO\DXE\DclIOADO.dproj"/> </Target> <Target Name="DclIOBDE"> - <MSBuild Projects="..\..\Brokers\BDE\D2011\DclIOBDE.dproj"/> + <MSBuild Projects="..\..\Brokers\BDE\DXE\DclIOBDE.dproj"/> </Target> <Target Name="DclIOBDE:Clean"> - <MSBuild Targets="Clean" Projects="..\..\Brokers\BDE\D2011\DclIOBDE.dproj"/> + <MSBuild Targets="Clean" Projects="..\..\Brokers\BDE\DXE\DclIOBDE.dproj"/> </Target> <Target Name="DclIOBDE:Make"> - <MSBuild Targets="Make" Projects="..\..\Brokers\BDE\D2011\DclIOBDE.dproj"/> + <MSBuild Targets="Make" Projects="..\..\Brokers\BDE\DXE\DclIOBDE.dproj"/> </Target> <Target Name="DclIODBX"> - <MSBuild Projects="..\..\Brokers\DBX\D2011\DclIODBX.dproj"/> + <MSBuild Projects="..\..\Brokers\DBX\DXE\DclIODBX.dproj"/> </Target> <Target Name="DclIODBX:Clean"> - <MSBuild Targets="Clean" Projects="..\..\Brokers\DBX\D2011\DclIODBX.dproj"/> + <MSBuild Targets="Clean" Projects="..\..\Brokers\DBX\DXE\DclIODBX.dproj"/> </Target> <Target Name="DclIODBX:Make"> - <MSBuild Targets="Make" Projects="..\..\Brokers\DBX\D2011\DclIODBX.dproj"/> + <MSBuild Targets="Make" Projects="..\..\Brokers\DBX\DXE\DclIODBX.dproj"/> </Target> <Target Name="DclIOIBX"> - <MSBuild Projects="..\..\Brokers\IBX\D2011\DclIOIBX.dproj"/> + <MSBuild Projects="..\..\Brokers\IBX\DXE\DclIOIBX.dproj"/> </Target> <Target Name="DclIOIBX:Clean"> - <MSBuild Targets="Clean" Projects="..\..\Brokers\IBX\D2011\DclIOIBX.dproj"/> + <MSBuild Targets="Clean" Projects="..\..\Brokers\IBX\DXE\DclIOIBX.dproj"/> </Target> <Target Name="DclIOIBX:Make"> - <MSBuild Targets="Make" Projects="..\..\Brokers\IBX\D2011\DclIOIBX.dproj"/> + <MSBuild Targets="Make" Projects="..\..\Brokers\IBX\DXE\DclIOIBX.dproj"/> </Target> <Target Name="DclIOXML"> - <MSBuild Projects="..\..\Brokers\XML\D2011\DclIOXML.dproj"/> + <MSBuild Projects="..\..\Brokers\XML\DXE\DclIOXML.dproj"/> </Target> <Target Name="DclIOXML:Clean"> - <MSBuild Targets="Clean" Projects="..\..\Brokers\XML\D2011\DclIOXML.dproj"/> + <MSBuild Targets="Clean" Projects="..\..\Brokers\XML\DXE\DclIOXML.dproj"/> </Target> <Target Name="DclIOXML:Make"> - <MSBuild Targets="Make" Projects="..\..\Brokers\XML\D2011\DclIOXML.dproj"/> + <MSBuild Targets="Make" Projects="..\..\Brokers\XML\DXE\DclIOXML.dproj"/> </Target> <Target Name="Build"> <CallTarget Targets="DclIOCore;DclIOADO;DclIOBDE;DclIODBX;DclIOIBX;DclIOXML"/> Modified: trunk/Source/PackageGroups/DXE/RunTimePackages.groupproj =================================================================== --- trunk/Source/PackageGroups/D2011/RunTimePackages.groupproj 2010-09-15 03:19:35 UTC (rev 914) +++ trunk/Source/PackageGroups/DXE/RunTimePackages.groupproj 2010-09-15 10:05:36 UTC (rev 915) @@ -3,31 +3,31 @@ <ProjectGuid>{aa24332a-6806-448c-ab3d-ab0790ceec13}</ProjectGuid> </PropertyGroup> <ItemGroup> - <Projects Include="..\..\Core\D2011\IOCore.dproj"> + <Projects Include="..\..\Core\DXE\IOCore.dproj"> <Dependencies/> </Projects> - <Projects Include="..\..\Catalogs\IBFb\D2011\IOIBFbCatalog.dproj"> + <Projects Include="..\..\Catalogs\IBFb\DXE\IOIBFbCatalog.dproj"> <Dependencies/> </Projects> - <Projects Include="..\..\Catalogs\MSSql\D2011\IOMSSqlCatalog.dproj"> + <Projects Include="..\..\Catalogs\MSSql\DXE\IOMSSqlCatalog.dproj"> <Dependencies/> </Projects> - <Projects Include="..\..\Catalogs\MySQL\D2011\IOMySQLCatalog.dproj"> + <Projects Include="..\..\Catalogs\MySQL\DXE\IOMySQLCatalog.dproj"> <Dependencies/> </Projects> - <Projects Include="..\..\Brokers\ADO\D2011\IOADO.dproj"> + <Projects Include="..\..\Brokers\ADO\DXE\IOADO.dproj"> <Dependencies/> </Projects> - <Projects Include="..\..\Brokers\BDE\D2011\IOBDE.dproj"> + <Projects Include="..\..\Brokers\BDE\DXE\IOBDE.dproj"> <Dependencies/> </Projects> - <Projects Include="..\..\Brokers\DBX\D2011\IODBX.dproj"> + <Projects Include="..\..\Brokers\DBX\DXE\IODBX.dproj"> <Dependencies/> </Projects> - <Projects Include="..\..\Brokers\IBX\D2011\IOIBX.dproj"> + <Projects Include="..\..\Brokers\IBX\DXE\IOIBX.dproj"> <Dependencies/> </Projects> - <Projects Include="..\..\Brokers\XML\D2011\IOXML.dproj"> + <Projects Include="..\..\Brokers\XML\DXE\IOXML.dproj"> <Dependencies/> </Projects> </ItemGroup> @@ -41,85 +41,85 @@ </BorlandProject> </ProjectExtensions> <Target Name="IOCore"> - <MSBuild Projects="..\..\Core\D2011\IOCore.dproj"/> + <MSBuild Projects="..\..\Core\DXE\IOCore.dproj"/> </Target> <Target Name="IOCore:Clean"> - <MSBuild Targets="Clean" Projects="..\..\Core\D2011\IOCore.dproj"/> + <MSBuild Targets="Clean" Projects="..\..\Core\DXE\IOCore.dproj"/> </Target> <Target Name="IOCore:Make"> - <MSBuild Targets="Make" Projects="..\..\Core\D2011\IOCore.dproj"/> + <MSBuild Targets="Make" Projects="..\..\Core\DXE\IOCore.dproj"/> </Target> <Target Name="IOIBFbCatalog"> - <MSBuild Projects="..\..\Catalogs\IBFb\D2011\IOIBFbCatalog.dproj"/> + <MSBuild Projects="..\..\Catalogs\IBFb\DXE\IOIBFbCatalog.dproj"/> </Target> <Target Name="IOIBFbCatalog:Clean"> - <MSBuild Targets="Clean" Projects="..\..\Catalogs\IBFb\D2011\IOIBFbCatalog.dproj"/> + <MSBuild Targets="Clean" Projects="..\..\Catalogs\IBFb\DXE\IOIBFbCatalog.dproj"/> </Target> <Target Name="IOIBFbCatalog:Make"> - <MSBuild Targets="Make" Projects="..\..\Catalogs\IBFb\D2011\IOIBFbCatalog.dproj"/> + <MSBuild Targets="Make" Projects="..\..\Catalogs\IBFb\DXE\IOIBFbCatalog.dproj"/> </Target> <Target Name="IOMSSqlCatalog"> - <MSBuild Projects="..\..\Catalogs\MSSql\D2011\IOMSSqlCatalog.dproj"/> + <MSBuild Projects="..\..\Catalogs\MSSql\DXE\IOMSSqlCatalog.dproj"/> </Target> <Target Name="IOMSSqlCatalog:Clean"> - <MSBuild Targets="Clean" Projects="..\..\Catalogs\MSSql\D2011\IOMSSqlCatalog.dproj"/> + <MSBuild Targets="Clean" Projects="..\..\Catalogs\MSSql\DXE\IOMSSqlCatalog.dproj"/> </Target> <Target Name="IOMSSqlCatalog:Make"> - <MSBuild Targets="Make" Projects="..\..\Catalogs\MSSql\D2011\IOMSSqlCatalog.dproj"/> + <MSBuild Targets="Make" Projects="..\..\Catalogs\MSSql\DXE\IOMSSqlCatalog.dproj"/> </Target> <Target Name="IOMySQLCatalog"> - <MSBuild Projects="..\..\Catalogs\MySQL\D2011\IOMySQLCatalog.dproj"/> + <MSBuild Projects="..\..\Catalogs\MySQL\DXE\IOMySQLCatalog.dproj"/> </Target> <Target Name="IOMySQLCatalog:Clean"> - <MSBuild Targets="Clean" Projects="..\..\Catalogs\MySQL\D2011\IOMySQLCatalog.dproj"/> + <MSBuild Targets="Clean" Projects="..\..\Catalogs\MySQL\DXE\IOMySQLCatalog.dproj"/> </Target> <Target Name="IOMySQLCatalog:Make"> - <MSBuild Targets="Make" Projects="..\..\Catalogs\MySQL\D2011\IOMySQLCatalog.dproj"/> + <MSBuild Targets="Make" Projects="..\..\Catalogs\MySQL\DXE\IOMySQLCatalog.dproj"/> </Target> <Target Name="IOADO"> - <MSBuild Projects="..\..\Brokers\ADO\D2011\IOADO.dproj"/> + <MSBuild Projects="..\..\Brokers\ADO\DXE\IOADO.dproj"/> </Target> <Target Name="IOADO:Clean"> - <MSBuild Targets="Clean" Projects="..\..\Brokers\ADO\D2011\IOADO.dproj"/> + <MSBuild Targets="Clean" Projects="..\..\Brokers\ADO\DXE\IOADO.dproj"/> </Target> <Target Name="IOADO:Make"> - <MSBuild Targets="Make" Projects="..\..\Brokers\ADO\D2011\IOADO.dproj"/> + <MSBuild Targets="Make" Projects="..\..\Brokers\ADO\DXE\IOADO.dproj"/> </Target> <Target Name="IOBDE"> - <MSBuild Projects="..\..\Brokers\BDE\D2011\IOBDE.dproj"/> + <MSBuild Projects="..\..\Brokers\BDE\DXE\IOBDE.dproj"/> </Target> <Target Name="IOBDE:Clean"> - <MSBuild Targets="Clean" Projects="..\..\Brokers\BDE\D2011\IOBDE.dproj"/> + <MSBuild Targets="Clean" Projects="..\..\Brokers\BDE\DXE\IOBDE.dproj"/> </Target> <Target Name="IOBDE:Make"> - <MSBuild Targets="Make" Projects="..\..\Brokers\BDE\D2011\IOBDE.dproj"/> + <MSBuild Targets="Make" Projects="..\..\Brokers\BDE\DXE\IOBDE.dproj"/> </Target> <Target Name="IODBX"> - <MSBuild Projects="..\..\Brokers\DBX\D2011\IODBX.dproj"/> + <MSBuild Projects="..\..\Brokers\DBX\DXE\IODBX.dproj"/> </Target> <Target Name="IODBX:Clean"> - <MSBuild Targets="Clean" Projects="..\..\Brokers\DBX\D2011\IODBX.dproj"/> + <MSBuild Targets="Clean" Projects="..\..\Brokers\DBX\DXE\IODBX.dproj"/> </Target> <Target Name="IODBX:Make"> - <MSBuild Targets="Make" Projects="..\..\Brokers\DBX\D2011\IODBX.dproj"/> + <MSBuild Targets="Make" Projects="..\..\Brokers\DBX\DXE\IODBX.dproj"/> </Target> <Target Name="IOIBX"> - <MSBuild Projects="..\..\Brokers\IBX\D2011\IOIBX.dproj"/> + <MSBuild Projects="..\..\Brokers\IBX\DXE\IOIBX.dproj"/> </Target> <Target Name="IOIBX:Clean"> - <MSBuild Targets="Clean" Projects="..\..\Brokers\IBX\D2011\IOIBX.dproj"/> + <MSBuild Targets="Clean" Projects="..\..\Brokers\IBX\DXE\IOIBX.dproj"/> </Target> <Target Name="IOIBX:Make"> - <MSBuild Targets="Make" Projects="..\..\Brokers\IBX\D2011\IOIBX.dproj"/> + <MSBuild Targets="Make" Projects="..\..\Brokers\IBX\DXE\IOIBX.dproj"/> </Target> <Target Name="IOXML"> - <MSBuild Projects="..\..\Brokers\XML\D2011\IOXML.dproj"/> + <MSBuild Projects="..\..\Brokers\XML\DXE\IOXML.dproj"/> </Target> <Target Name="IOXML:Clean"> - <MSBuild Targets="Clean" Projects="..\..\Brokers\XML\D2011\IOXML.dproj"/> + <MSBuild Targets="Clean" Projects="..\..\Brokers\XML\DXE\IOXML.dproj"/> </Target> <Target Name="IOXML:Make"> - <MSBuild Targets="Make" Projects="..\..\Brokers\XML\D2011\IOXML.dproj"/> + <MSBuild Targets="Make" Projects="..\..\Brokers\XML\DXE\IOXML.dproj"/> </Target> <Target Name="Build"> <CallTarget Targets="IOCore;IOIBFbCatalog;IOMSSqlCatalog;IOMySQLCatalog;IOADO;IOBDE;IODBX;IOIBX;IOXML"/> |
From: <dav...@us...> - 2010-09-15 03:19:41
|
Revision: 914 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=914&view=rev Author: davidvtaylor Date: 2010-09-15 03:19:35 +0000 (Wed, 15 Sep 2010) Log Message: ----------- * Changed conditional directive so bug workaround only applies to Delphi 2010. Bug does not exist in Delphi XE Modified Paths: -------------- trunk/Source/Core/InstantPresentation.pas Modified: trunk/Source/Core/InstantPresentation.pas =================================================================== --- trunk/Source/Core/InstantPresentation.pas 2010-09-15 02:55:41 UTC (rev 913) +++ trunk/Source/Core/InstantPresentation.pas 2010-09-15 03:19:35 UTC (rev 914) @@ -2712,7 +2712,7 @@ function TInstantCustomExposer.FieldDataSize(Field : TField): integer; begin -{$IFDEF D14+} +{$IFDEF D14} // Workaround for DataSize bugs in D2010 RTM (QC 78620 and 78620) if (not Assigned(Field)) or (Field is TBlobField) then Result := 0 |
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: <dav...@us...> - 2010-09-15 02:39:03
|
Revision: 912 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=912&view=rev Author: davidvtaylor Date: 2010-09-15 02:38:52 +0000 (Wed, 15 Sep 2010) Log Message: ----------- + Add defines, packages and package groups to support Delphi XE Modified Paths: -------------- trunk/Source/InstantDefines.inc Added Paths: ----------- trunk/Source/Brokers/ADO/D2011/ trunk/Source/Brokers/ADO/D2011/DclIOADO.dpk trunk/Source/Brokers/ADO/D2011/DclIOADO.dproj trunk/Source/Brokers/ADO/D2011/DclIOADO.res trunk/Source/Brokers/ADO/D2011/IOADO.dpk trunk/Source/Brokers/ADO/D2011/IOADO.dproj trunk/Source/Brokers/ADO/D2011/IOADO.res trunk/Source/Brokers/AnyDAC/D2011/ trunk/Source/Brokers/AnyDAC/D2011/DclIOAnyDAC.dpk trunk/Source/Brokers/AnyDAC/D2011/DclIOAnyDAC.dproj trunk/Source/Brokers/AnyDAC/D2011/DclIOAnyDAC.res trunk/Source/Brokers/AnyDAC/D2011/IOAnyDAC.dpk trunk/Source/Brokers/AnyDAC/D2011/IOAnyDAC.dproj trunk/Source/Brokers/AnyDAC/D2011/IOAnyDAC.res trunk/Source/Brokers/BDE/D2011/ trunk/Source/Brokers/BDE/D2011/DclIOBDE.dpk trunk/Source/Brokers/BDE/D2011/DclIOBDE.dproj trunk/Source/Brokers/BDE/D2011/DclIOBDE.res trunk/Source/Brokers/BDE/D2011/IOBDE.dpk trunk/Source/Brokers/BDE/D2011/IOBDE.dproj trunk/Source/Brokers/BDE/D2011/IOBDE.res trunk/Source/Brokers/DBX/D2011/ trunk/Source/Brokers/DBX/D2011/DclIODBX.dpk trunk/Source/Brokers/DBX/D2011/DclIODBX.dproj trunk/Source/Brokers/DBX/D2011/DclIODBX.res trunk/Source/Brokers/DBX/D2011/IODBX.dpk trunk/Source/Brokers/DBX/D2011/IODBX.dproj trunk/Source/Brokers/DBX/D2011/IODBX.res trunk/Source/Brokers/IBX/D2011/ trunk/Source/Brokers/IBX/D2011/DclIOIBX.dpk trunk/Source/Brokers/IBX/D2011/DclIOIBX.dproj trunk/Source/Brokers/IBX/D2011/DclIOIBX.res trunk/Source/Brokers/IBX/D2011/IOIBX.dpk trunk/Source/Brokers/IBX/D2011/IOIBX.dproj trunk/Source/Brokers/IBX/D2011/IOIBX.res trunk/Source/Brokers/XML/D2011/ trunk/Source/Brokers/XML/D2011/DclIOXML.dpk trunk/Source/Brokers/XML/D2011/DclIOXML.dproj trunk/Source/Brokers/XML/D2011/DclIOXML.res trunk/Source/Brokers/XML/D2011/IOXML.dpk trunk/Source/Brokers/XML/D2011/IOXML.dproj trunk/Source/Brokers/XML/D2011/IOXML.res trunk/Source/Brokers/ZeosDBO/D2011/ trunk/Source/Brokers/ZeosDBO/D2011/DclIOZeosDBO.dpk trunk/Source/Brokers/ZeosDBO/D2011/DclIOZeosDBO.dproj trunk/Source/Brokers/ZeosDBO/D2011/DclIOZeosDBO.res trunk/Source/Brokers/ZeosDBO/D2011/IOZeosDBO.dpk trunk/Source/Brokers/ZeosDBO/D2011/IOZeosDBO.dproj trunk/Source/Brokers/ZeosDBO/D2011/IOZeosDBO.res trunk/Source/Catalogs/IBFb/D2011/ trunk/Source/Catalogs/IBFb/D2011/IOIBFbCatalog.dpk trunk/Source/Catalogs/IBFb/D2011/IOIBFbCatalog.dproj trunk/Source/Catalogs/IBFb/D2011/IOIBFbCatalog.res trunk/Source/Catalogs/MSSql/D2011/ trunk/Source/Catalogs/MSSql/D2011/IOMSSqlCatalog.dpk trunk/Source/Catalogs/MSSql/D2011/IOMSSqlCatalog.dproj trunk/Source/Catalogs/MSSql/D2011/IOMSSqlCatalog.res trunk/Source/Catalogs/MySQL/D2011/ trunk/Source/Catalogs/MySQL/D2011/IOMySQLCatalog.dpk trunk/Source/Catalogs/MySQL/D2011/IOMySQLCatalog.dproj trunk/Source/Catalogs/MySQL/D2011/IOMySQLCatalog.res trunk/Source/Core/D2011/ trunk/Source/Core/D2011/IOCore.dpk trunk/Source/Core/D2011/IOCore.dproj trunk/Source/Core/D2011/IOCore.res trunk/Source/Design/D2011/ trunk/Source/Design/D2011/DclIOCore.dpk trunk/Source/Design/D2011/DclIOCore.dproj trunk/Source/Design/D2011/DclIOCore.res trunk/Source/PackageGroups/D2011/ trunk/Source/PackageGroups/D2011/CorePackages.groupproj trunk/Source/PackageGroups/D2011/DesignTimePackages.groupproj trunk/Source/PackageGroups/D2011/RunTimePackages.groupproj Added: trunk/Source/Brokers/ADO/D2011/DclIOADO.dpk =================================================================== --- trunk/Source/Brokers/ADO/D2011/DclIOADO.dpk (rev 0) +++ trunk/Source/Brokers/ADO/D2011/DclIOADO.dpk 2010-09-15 02:38:52 UTC (rev 912) @@ -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 XE)'} +{$LIBSUFFIX '_D15'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + rtl, + IOADO; + +contains + InstantADOReg in '..\InstantADOReg.pas'; + +end. Property changes on: trunk/Source/Brokers/ADO/D2011/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/D2011/DclIOADO.dproj =================================================================== --- trunk/Source/Brokers/ADO/D2011/DclIOADO.dproj (rev 0) +++ trunk/Source/Brokers/ADO/D2011/DclIOADO.dproj 2010-09-15 02:38:52 UTC (rev 912) @@ -0,0 +1,118 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{4A18B9A6-1513-4FF0-AB21-0540B58F9D3B}</ProjectGuid> + <MainSource>DclIOADO.dpk</MainSource> + <Base>True</Base> + <Config Condition="'$(Config)'==''">Debug</Config> + <Platform>Win32</Platform> + <AppType>Package</AppType> + <FrameworkType>None</FrameworkType> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <ProjectVersion>12.2</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> + <DllSuffix>_D15</DllSuffix> + <GenPackage>true</GenPackage> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;WinTypes=Windows;WinProcs=Windows;$(DCC_UnitAlias)</DCC_UnitAlias> + <DCC_RangeChecking>true</DCC_RangeChecking> + <DCC_Description>InstantObjects ADO Design-Time Support (Delphi XE)</DCC_Description> + <DCC_IntegerOverflowCheck>true</DCC_IntegerOverflowCheck> + <DCC_S>false</DCC_S> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <DCC_N>false</DCC_N> + <DCC_E>false</DCC_E> + <DCC_F>false</DCC_F> + <DCC_K>false</DCC_K> + </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> + <DCC_Optimize>false</DCC_Optimize> + <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> + </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="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)\8.0\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\8.0\UserTools.proj"/> + <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> + </Delphi.Personality> + <Platforms> + <Platform value="Win32">True</Platform> + </Platforms> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + </Project> Property changes on: trunk/Source/Brokers/ADO/D2011/DclIOADO.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/ADO/D2011/DclIOADO.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/ADO/D2011/DclIOADO.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/ADO/D2011/IOADO.dpk =================================================================== --- trunk/Source/Brokers/ADO/D2011/IOADO.dpk (rev 0) +++ trunk/Source/Brokers/ADO/D2011/IOADO.dpk 2010-09-15 02:38:52 UTC (rev 912) @@ -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 XE)'} +{$LIBSUFFIX '_D15'} +{$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/D2011/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/D2011/IOADO.dproj =================================================================== --- trunk/Source/Brokers/ADO/D2011/IOADO.dproj (rev 0) +++ trunk/Source/Brokers/ADO/D2011/IOADO.dproj 2010-09-15 02:38:52 UTC (rev 912) @@ -0,0 +1,125 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{CFB9F9D6-32B3-4659-9079-2302777A2EE9}</ProjectGuid> + <MainSource>IOADO.dpk</MainSource> + <Base>True</Base> + <Config Condition="'$(Config)'==''">Debug</Config> + <Platform>Win32</Platform> + <AppType>Package</AppType> + <FrameworkType>VCL</FrameworkType> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <ProjectVersion>12.2</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_WriteableConstants>true</DCC_WriteableConstants> + <DllSuffix>_D15</DllSuffix> + <GenPackage>true</GenPackage> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;WinTypes=Windows;WinProcs=Windows;$(DCC_UnitAlias)</DCC_UnitAlias> + <DCC_Description>InstantObjects ADO Run-Time Support (Delphi XE)</DCC_Description> + <RuntimeOnlyPackage>true</RuntimeOnlyPackage> + <DCC_S>false</DCC_S> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <DCC_N>false</DCC_N> + <DCC_E>false</DCC_E> + <DCC_F>false</DCC_F> + <DCC_K>false</DCC_K> + </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> + <DCC_Optimize>false</DCC_Optimize> + <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> + </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="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)\8.0\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\8.0\UserTools.proj"/> + <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> + </Delphi.Personality> + <Platforms> + <Platform value="Win32">True</Platform> + </Platforms> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + </Project> Property changes on: trunk/Source/Brokers/ADO/D2011/IOADO.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/ADO/D2011/IOADO.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/ADO/D2011/IOADO.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/AnyDAC/D2011/DclIOAnyDAC.dpk =================================================================== --- trunk/Source/Brokers/AnyDAC/D2011/DclIOAnyDAC.dpk (rev 0) +++ trunk/Source/Brokers/AnyDAC/D2011/DclIOAnyDAC.dpk 2010-09-15 02:38:52 UTC (rev 912) @@ -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 XE)'} +{$LIBSUFFIX '_D15'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + IOAnyDAC; + +contains + InstantAnyDACReg in '..\InstantAnyDACReg.pas'; + +end. + Property changes on: trunk/Source/Brokers/AnyDAC/D2011/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/D2011/DclIOAnyDAC.dproj =================================================================== --- trunk/Source/Brokers/AnyDAC/D2011/DclIOAnyDAC.dproj (rev 0) +++ trunk/Source/Brokers/AnyDAC/D2011/DclIOAnyDAC.dproj 2010-09-15 02:38:52 UTC (rev 912) @@ -0,0 +1,116 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{5634090C-A7A3-40F3-BE8C-29C9050D9303}</ProjectGuid> + <MainSource>DclIOAnyDAC.dpk</MainSource> + <Base>True</Base> + <Config Condition="'$(Config)'==''">Debug</Config> + <Platform>Win32</Platform> + <AppType>Package</AppType> + <FrameworkType>None</FrameworkType> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <ProjectVersion>12.2</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> + <DllSuffix>_D15</DllSuffix> + <GenPackage>true</GenPackage> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DCC_TypedAtParameter>true</DCC_TypedAtParameter> + <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;WinTypes=Windows;WinProcs=Windows;$(DCC_UnitAlias)</DCC_UnitAlias> + <DCC_Description>InstantObjects AnyDAC Design-Time Support (Delphi XE)</DCC_Description> + <DCC_S>false</DCC_S> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <DCC_N>false</DCC_N> + <DCC_E>false</DCC_E> + <DCC_F>false</DCC_F> + <DCC_K>false</DCC_K> + </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> + <DCC_Optimize>false</DCC_Optimize> + <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> + </PropertyGroup> + <ItemGroup> + <DelphiCompile Include="DclIOAnyDAC.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="..\InstantAnyDAC.dcr"/> + <DCCReference Include="IOAnyDAC.dcp"/> + <DCCReference Include="..\InstantAnyDACReg.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)\8.0\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\8.0\UserTools.proj"/> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Source> + <Source Name="MainSource">DclIOAnyDAC.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> + </Delphi.Personality> + <Platforms> + <Platform value="Win32">True</Platform> + </Platforms> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + </Project> Property changes on: trunk/Source/Brokers/AnyDAC/D2011/DclIOAnyDAC.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/AnyDAC/D2011/DclIOAnyDAC.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/AnyDAC/D2011/DclIOAnyDAC.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/AnyDAC/D2011/IOAnyDAC.dpk =================================================================== --- trunk/Source/Brokers/AnyDAC/D2011/IOAnyDAC.dpk (rev 0) +++ trunk/Source/Brokers/AnyDAC/D2011/IOAnyDAC.dpk 2010-09-15 02:38:52 UTC (rev 912) @@ -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 XE)'} +{$LIBSUFFIX '_D15'} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + IOCore, + xmlrtl, + AnyDAC_Phys_D15, + AnyDAC_ComI_D15, + AnyDAC_Comp_D15; + +contains + InstantAnyDAC in '..\InstantAnyDAC.pas', + InstantAnyDACCatalog in '..\InstantAnyDACCatalog.pas', + InstantAnyDACConnectionDefEdit in '..\InstantAnyDACConnectionDefEdit.pas' {InstantAnyDACConnectionDefEditForm}; + +end. Property changes on: trunk/Source/Brokers/AnyDAC/D2011/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/D2011/IOAnyDAC.dproj =================================================================== --- trunk/Source/Brokers/AnyDAC/D2011/IOAnyDAC.dproj (rev 0) +++ trunk/Source/Brokers/AnyDAC/D2011/IOAnyDAC.dproj 2010-09-15 02:38:52 UTC (rev 912) @@ -0,0 +1,123 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{941D2547-0DEE-4A3E-87C3-F52B0A827A6F}</ProjectGuid> + <MainSource>IOAnyDAC.dpk</MainSource> + <Base>True</Base> + <Config Condition="'$(Config)'==''">Debug</Config> + <Platform>Win32</Platform> + <AppType>Package</AppType> + <FrameworkType>None</FrameworkType> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <ProjectVersion>12.2</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> + <DllSuffix>_D15</DllSuffix> + <GenPackage>true</GenPackage> + <RuntimeOnlyPackage>true</RuntimeOnlyPackage> + <DCC_TypedAtParameter>true</DCC_TypedAtParameter> + <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;WinTypes=Windows;WinProcs=Windows;$(DCC_UnitAlias)</DCC_UnitAlias> + <DCC_Description>InstantObjects AnyDAC Run-Time Support (Delphi XE)</DCC_Description> + <DCC_S>false</DCC_S> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <DCC_N>false</DCC_N> + <DCC_E>false</DCC_E> + <DCC_F>false</DCC_F> + <DCC_K>false</DCC_K> + </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> + <DCC_Optimize>false</DCC_Optimize> + <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> + </PropertyGroup> + <ItemGroup> + <DelphiCompile Include="IOAnyDAC.dpk"> + <MainSource>MainSource</MainSource> + </DelphiCompile> + <DCCReference Include="IOCore.dcp"/> + <DCCReference Include="xmlrtl.dcp"/> + <DCCReference Include="AnyDAC_Phys_D15.dcp"/> + <DCCReference Include="AnyDAC_ComI_D15.dcp"/> + <DCCReference Include="AnyDAC_Comp_D15.dcp"/> + <DCCReference Include="..\InstantAnyDAC.pas"/> + <DCCReference Include="..\InstantAnyDACCatalog.pas"/> + <DCCReference Include="..\InstantAnyDACConnectionDefEdit.pas"> + <Form>InstantAnyDACConnectionDefEditForm</Form> + </DCCReference> + <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)\8.0\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\8.0\UserTools.proj"/> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Source> + <Source Name="MainSource">IOAnyDAC.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> + </Delphi.Personality> + <Platforms> + <Platform value="Win32">True</Platform> + </Platforms> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + </Project> Property changes on: trunk/Source/Brokers/AnyDAC/D2011/IOAnyDAC.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/AnyDAC/D2011/IOAnyDAC.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/AnyDAC/D2011/IOAnyDAC.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/BDE/D2011/DclIOBDE.dpk =================================================================== --- trunk/Source/Brokers/BDE/D2011/DclIOBDE.dpk (rev 0) +++ trunk/Source/Brokers/BDE/D2011/DclIOBDE.dpk 2010-09-15 02:38:52 UTC (rev 912) @@ -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 XE)'} +{$LIBSUFFIX '_D15'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + vcl, + vcldb, + bdertl, + IOCore, + IOBDE; + +contains + InstantBDEReg in '..\InstantBDEReg.pas'; + +end. Property changes on: trunk/Source/Brokers/BDE/D2011/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/D2011/DclIOBDE.dproj =================================================================== --- trunk/Source/Brokers/BDE/D2011/DclIOBDE.dproj (rev 0) +++ trunk/Source/Brokers/BDE/D2011/DclIOBDE.dproj 2010-09-15 02:38:52 UTC (rev 912) @@ -0,0 +1,120 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{13A50864-48EE-4B6E-AEA0-CAD8AFF4B1F8}</ProjectGuid> + <MainSource>DclIOBDE.dpk</MainSource> + <Base>True</Base> + <Config Condition="'$(Config)'==''">Debug</Config> + <Platform>Win32</Platform> + <AppType>Package</AppType> + <FrameworkType>VCL</FrameworkType> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <ProjectVersion>12.2</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> + <DllSuffix>_D15</DllSuffix> + <GenPackage>true</GenPackage> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DCC_TypedAtParameter>true</DCC_TypedAtParameter> + <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;WinTypes=Windows;WinProcs=Windows;$(DCC_UnitAlias)</DCC_UnitAlias> + <DCC_Description>InstantObjects BDE Design-Time Support (Delphi XE)</DCC_Description> + <DCC_S>false</DCC_S> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <DCC_N>false</DCC_N> + <DCC_E>false</DCC_E> + <DCC_F>false</DCC_F> + <DCC_K>false</DCC_K> + </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> + <DCC_Optimize>false</DCC_Optimize> + <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> + </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="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)\8.0\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\8.0\UserTools.proj"/> + <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> + </Delphi.Personality> + <Platforms> + <Platform value="Win32">True</Platform> + </Platforms> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + </Project> Property changes on: trunk/Source/Brokers/BDE/D2011/DclIOBDE.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/BDE/D2011/DclIOBDE.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/BDE/D2011/DclIOBDE.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/BDE/D2011/IOBDE.dpk =================================================================== --- trunk/Source/Brokers/BDE/D2011/IOBDE.dpk (rev 0) +++ trunk/Source/Brokers/BDE/D2011/IOBDE.dpk 2010-09-15 02:38:52 UTC (rev 912) @@ -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 XE)'} +{$LIBSUFFIX '_D15'} +{$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/D2011/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/D2011/IOBDE.dproj =================================================================== --- trunk/Source/Brokers/BDE/D2011/IOBDE.dproj (rev 0) +++ trunk/Source/Brokers/BDE/D2011/IOBDE.dproj 2010-09-15 02:38:52 UTC (rev 912) @@ -0,0 +1,122 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{B4519B38-8218-4EA4-AE1E-C0D6CFCA9FE9}</ProjectGuid> + <MainSource>IOBDE.dpk</MainSource> + <Base>True</Base> + <Config Condition="'$(Config)'==''">Debug</Config> + <Platform>Win32</Platform> + <AppType>Package</AppType> + <FrameworkType>VCL</FrameworkType> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <ProjectVersion>12.2</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> + <DllSuffix>_D15</DllSuffix> + <GenPackage>true</GenPackage> + <RuntimeOnlyPackage>true</RuntimeOnlyPackage> + <DCC_TypedAtParameter>true</DCC_TypedAtParameter> + <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;WinTypes=Windows;WinProcs=Windows;$(DCC_UnitAlias)</DCC_UnitAlias> + <DCC_Description>InstantObjects BDE Run-Time Support (Delphi XE)</DCC_Description> + <DCC_S>false</DCC_S> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <DCC_N>false</DCC_N> + <DCC_E>false</DCC_E> + <DCC_F>false</DCC_F> + <DCC_K>false</DCC_K> + </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> + <DCC_Optimize>false</DCC_Optimize> + <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> + </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="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)\8.0\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\8.0\UserTools.proj"/> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Source> + <Source Name="MainSource">IOBDE.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> + </Delphi.Personality> + <Platforms> + <Platform value="Win32">True</Platform> + </Platforms> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + </Project> Property changes on: trunk/Source/Brokers/BDE/D2011/IOBDE.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/BDE/D2011/IOBDE.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/BDE/D2011/IOBDE.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/DBX/D2011/DclIODBX.dpk =================================================================== --- trunk/Source/Brokers/DBX/D2011/DclIODBX.dpk (rev 0) +++ trunk/Source/Brokers/DBX/D2011/DclIODBX.dpk 2010-09-15 02:38:52 UTC (rev 912) @@ -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 XE)'} +{$LIBSUFFIX '_D15'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + rtl, + vcl, + dbrtl, + dbexpress, + IOCore, + IODBX; + +contains + InstantDBXReg in '..\InstantDBXReg.pas'; + +end. Property changes on: trunk/Source/Brokers/DBX/D2011/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/D2011/DclIODBX.dproj =================================================================== --- trunk/Source/Brokers/DBX/D2011/DclIODBX.dproj (rev 0) +++ trunk/Source/Brokers/DBX/D2011/DclIODBX.dproj 2010-09-15 02:38:52 UTC (rev 912) @@ -0,0 +1,121 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{4027B337-6318-4459-95E8-2EA0EAA6E43E}</ProjectGuid> + <MainSource>DclIODBX.dpk</MainSource> + <Base>True</Base> + <Config Condition="'$(Config)'==''">Debug</Config> + <Platform>Win32</Platform> + <AppType>Package</AppType> + <FrameworkType>VCL</FrameworkType> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <ProjectVersion>12.2</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> + <DllSuffix>_D15</DllSuffix> + <GenPackage>true</GenPackage> + <DCC_ImageBase>00400000</DCC_ImageBase> + <DCC_TypedAtParameter>true</DCC_TypedAtParameter> + <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;WinTypes=Windows;WinProcs=Windows;$(DCC_UnitAlias)</DCC_UnitAlias> + <DCC_Description>InstantObjects dbExpress Design-Time Support (Delphi XE)</DCC_Description> + <DCC_S>false</DCC_S> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <DCC_N>false</DCC_N> + <DCC_E>false</DCC_E> + <DCC_F>false</DCC_F> + <DCC_K>false</DCC_K> + </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> + <DCC_Optimize>false</DCC_Optimize> + <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> + </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="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)\8.0\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\8.0\UserTools.proj"/> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Source> + <Source Name="MainSource">DclIODBX.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> + </Delphi.Personality> + <Platforms> + <Platform value="Win32">True</Platform> + </Platforms> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> + </Project> Property changes on: trunk/Source/Brokers/DBX/D2011/DclIODBX.dproj ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: trunk/Source/Brokers/DBX/D2011/DclIODBX.res =================================================================== (Binary files differ) Property changes on: trunk/Source/Brokers/DBX/D2011/DclIODBX.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/Source/Brokers/DBX/D2011/IODBX.dpk =================================================================== --- trunk/Source/Brokers/DBX/D2011/IODBX.dpk (rev 0) +++ trunk/Source/Brokers/DBX/D2011/IODBX.dpk 2010-09-15 02:38:52 UTC (rev 912) @@ -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 XE)'} +{$LIBSUFFIX '_D15'} +{$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/D2011/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/D2011/IODBX.dproj =================================================================== --- trunk/Source/Brokers/DBX/D2011/IODBX.dproj (rev 0) +++ trunk/Source/Brokers/DBX/D2011/IODBX.dproj 2010-09-15 02:38:52 UTC (rev 912) @@ -0,0 +1,124 @@ + <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <ProjectGuid>{9680492F-F827-49B5-B185-D5713749ABE7}</ProjectGuid> + <MainSource>IODBX.dpk</MainSource> + <Base>True</Base> + <Config Condition="'$(Config)'==''">Debug</Config> + <Platform>Win32</Platform> + <AppType>Package</AppType> + <FrameworkType>VCL</FrameworkType> + <DCC_DCCCompiler>DCC32</DCC_DCCCompiler> + <ProjectVersion>12.2</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> + <DllSuffix>_D15</DllSuffix> + <GenPackage>true</GenPackage> + <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;WinTypes=Windows;WinProcs=Windows;$(DCC_UnitAlias)</DCC_UnitAlias> + <DCC_Description>InstantObjects dbExpress Run-Time Support (Delphi XE)</DCC_Description> + <RuntimeOnlyPackage>true</RuntimeOnlyPackage> + <DCC_E>false</DCC_E> + <DCC_S>false</DCC_S> + <DCC_OutputNeverBuildDcps>true</DCC_OutputNeverBuildDcps> + <GenDll>true</GenDll> + <DCC_F>false</DCC_F> + <DCC_K>false</DCC_K> + <DCC_N>false</DCC_N> + </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> + <DCC_Optimize>false</DCC_Optimize> + <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames> + </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"/> + <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="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)\8.0\UserTools.proj')" Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\8.0\UserTools.proj"/> + <ProjectExtensions> + <Borland.Personality>Delphi.Personality.12</Borland.Personality> + <Borland.ProjectType>Package</Borland.ProjectType> + <BorlandProject> + <Delphi.Personality> + <Source> + <Source Name="MainSource">IODBX.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</... [truncated message content] |
From: <na...@us...> - 2010-09-12 08:52:28
|
Revision: 911 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=911&view=rev Author: nandod Date: 2010-09-12 08:52:21 +0000 (Sun, 12 Sep 2010) Log Message: ----------- * Fixed: Id fields were erroneously treated always as integers in some generated SQL, causing errors on some databases. Modified Paths: -------------- trunk/Source/Core/InstantBrokers.pas Modified: trunk/Source/Core/InstantBrokers.pas =================================================================== --- trunk/Source/Core/InstantBrokers.pas 2010-09-12 08:29:52 UTC (rev 910) +++ trunk/Source/Core/InstantBrokers.pas 2010-09-12 08:52:21 UTC (rev 911) @@ -6080,12 +6080,13 @@ inherited Create; FParentContext := AParentContext; - if Assigned(FParentContext) then + if Assigned(FParentContext) then FParentContext.AddChildContext(Self); FStatement := AStatement; FQuote := AQuote; FDelimiters := ADelimiters; + FIdDataType := AIdDataType; Initialize; end; |
From: <na...@us...> - 2010-09-12 08:29:59
|
Revision: 910 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=910&view=rev Author: nandod Date: 2010-09-12 08:29:52 +0000 (Sun, 12 Sep 2010) Log Message: ----------- * Small refactoring. Removed some duplicate functions. * svn:ignore set. Modified Paths: -------------- trunk/Source/Core/D2010/IOCore.dpk trunk/Source/Core/D2010/IOCore.dproj trunk/Source/Core/D2010/IOCore.res trunk/Source/Core/InstantBrokers.pas trunk/Source/Design/D2010/DclIOCore.dproj Property Changed: ---------------- trunk/Source/Brokers/BDE/D2010/ trunk/Source/Brokers/XML/D2010/ Property changes on: trunk/Source/Brokers/BDE/D2010 ___________________________________________________________________ Modified: svn:ignore - *.dcu *.local + *.dcu *.local __history Property changes on: trunk/Source/Brokers/XML/D2010 ___________________________________________________________________ Modified: svn:ignore - *.dcu *.local *.identcache + *.dcu *.local *.identcache __history Modified: trunk/Source/Core/D2010/IOCore.dpk =================================================================== --- trunk/Source/Core/D2010/IOCore.dpk 2010-09-12 06:25:23 UTC (rev 909) +++ trunk/Source/Core/D2010/IOCore.dpk 2010-09-12 08:29:52 UTC (rev 910) @@ -37,6 +37,7 @@ InstantClasses in '..\InstantClasses.pas', InstantConsts in '..\InstantConsts.pas', InstantRtti in '..\InstantRtti.pas', + InstantRttiAttributes in '..\InstantRttiAttributes.pas', InstantCommand in '..\InstantCommand.pas', InstantPersistence in '..\InstantPersistence.pas', InstantExplorer in '..\InstantExplorer.pas', @@ -58,7 +59,6 @@ InstantBrokers in '..\InstantBrokers.pas', InstantMetadata in '..\InstantMetadata.pas', InstantStandardValidators in '..\InstantStandardValidators.pas', - InstantValidation in '..\InstantValidation.pas', - InstantRttiAttributes in '..\InstantRttiAttributes.pas'; + InstantValidation in '..\InstantValidation.pas'; end. Modified: trunk/Source/Core/D2010/IOCore.dproj =================================================================== --- trunk/Source/Core/D2010/IOCore.dproj 2010-09-12 06:25:23 UTC (rev 909) +++ trunk/Source/Core/D2010/IOCore.dproj 2010-09-12 08:29:52 UTC (rev 910) @@ -1,10 +1,13 @@ <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> - <ProjectGuid>{8B25F276-90BF-4315-8F75-B69FE27DBB35}</ProjectGuid> + <ProjectGuid>{82e2f82a-6598-4acf-bbca-e2315e5938f6}</ProjectGuid> <MainSource>IOCore.dpk</MainSource> - <Config Condition="'$(Config)'==''">Debug</Config> + <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\IOCore_D11.bpl</DCC_DependencyCheckOutputName> <ProjectVersion>12.0</ProjectVersion> + <Config Condition="'$(Config)'==''">Debug</Config> </PropertyGroup> <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> <Base>true</Base> @@ -20,28 +23,78 @@ <Base>true</Base> </PropertyGroup> <PropertyGroup Condition="'$(Base)'!=''"> - <DCC_DependencyCheckOutputName>C:\Documents and Settings\All Users\Documents\RAD Studio\7.0\Bpl\IOCore_D14.bpl</DCC_DependencyCheckOutputName> + <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\7.0\Bpl\IOCore_D14.bpl</DCC_DependencyCheckOutputName> + <DCC_ImageBase>00400000</DCC_ImageBase> + <RuntimeOnlyPackage>true</RuntimeOnlyPackage> <DCC_TypedAtParameter>true</DCC_TypedAtParameter> - <RuntimeOnlyPackage>true</RuntimeOnlyPackage> - <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;$(DCC_UnitAlias)</DCC_UnitAlias> <DCC_Description>InstantObjects Run-Time Package (Delphi 2010)</DCC_Description> + <DesignOnlyPackage>false</DesignOnlyPackage> <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> + <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> - <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> - <DCC_DebugInformation>false</DCC_DebugInformation> </PropertyGroup> <PropertyGroup Condition="'$(Cfg_2)'!=''"> - <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define> + <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">IOCore.dpk</Source> + </Source> + </Delphi.Personality> + </BorlandProject> + <ProjectFileVersion>12</ProjectFileVersion> + </ProjectExtensions> <ItemGroup> <DelphiCompile Include="IOCore.dpk"> <MainSource>MainSource</MainSource> @@ -53,6 +106,7 @@ <DCCReference Include="..\InstantClasses.pas"/> <DCCReference Include="..\InstantConsts.pas"/> <DCCReference Include="..\InstantRtti.pas"/> + <DCCReference Include="..\InstantRttiAttributes.pas"/> <DCCReference Include="..\InstantCommand.pas"/> <DCCReference Include="..\InstantPersistence.pas"/> <DCCReference Include="..\InstantExplorer.pas"/> @@ -83,7 +137,6 @@ <DCCReference Include="..\InstantMetadata.pas"/> <DCCReference Include="..\InstantStandardValidators.pas"/> <DCCReference Include="..\InstantValidation.pas"/> - <DCCReference Include="..\InstantRttiAttributes.pas"/> <BuildConfiguration Include="Base"> <Key>Base</Key> </BuildConfiguration> @@ -97,54 +150,4 @@ </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">IOCore.dpk</Source> - </Source> - <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">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> Modified: trunk/Source/Core/D2010/IOCore.res =================================================================== (Binary files differ) Modified: trunk/Source/Core/InstantBrokers.pas =================================================================== --- trunk/Source/Core/InstantBrokers.pas 2010-09-12 06:25:23 UTC (rev 909) +++ trunk/Source/Core/InstantBrokers.pas 2010-09-12 08:29:52 UTC (rev 910) @@ -825,6 +825,7 @@ function TablePathToAlias(const TablePath: string): string; function GetChildContextIndex: Integer; function GetChildContextLevel: Integer; + function RootAttribToFieldName(const AttribName: string): string; protected function AddCriteria(const Criteria: string): Integer; function AddTablePath(const TablePath: string): Integer; @@ -891,9 +892,6 @@ protected procedure BeforeTranslate; override; procedure Clear; override; - procedure CollectObjects(AObject: TInstantIQLObject; - AClassType: TInstantIQLObjectClass; AList: TList; - const AStopClassTypes: array of TInstantIQLObjectClass); function GetDelimiters: string; virtual; function GetQuote: Char; virtual; function GetWildcard: string; virtual; @@ -903,7 +901,6 @@ 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; function TranslateObject(AObject: TInstantIQLObject; Writer: TInstantIQLWriter): Boolean; override; @@ -1037,15 +1034,6 @@ 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; @@ -1093,26 +1081,6 @@ end; {$ENDIF} -function CreateObjectFromDataSet(AClass: TClass; DataSet: TDataSet): TObject; -var - I: Integer; - FieldName: string; -begin - if AClass = nil then - raise Exception.Create(SUnassignedClass) - else if AClass.InheritsFrom(TInstantObject) then - Result := TInstantObjectClass(AClass).Create - else - Result := AClass.Create; - for I := 0 to Pred(DataSet.FieldCount) do - begin - FieldName := StringReplace( - DataSet.Fields[I].FieldName, '_', '.', [rfReplaceAll]); - InstantSetProperty(Result, FieldName, DataSet.Fields[I].Value); - end; -end; - - function ConcatPath(const APathText, AttribName: string): string; begin Result := Format('%s%s%s', [APathText, InstantDot, AttribName]); @@ -1126,22 +1094,14 @@ 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; +procedure CollectObjects(AObject: TInstantIQLObject; + AClassType: TInstantIQLObjectClass; AList: TList; const AStopClassTypes: array of TInstantIQLObjectClass); var I: Integer; @@ -5100,15 +5060,19 @@ end; procedure TInstantCustomRelationalQuery.TranslateCommand; +var + LTranslator: TInstantRelationalTranslator; begin if TranslatorClass <> nil then - with TranslatorClass.Create(Self) do - try - CommandText := Self.Command; - Statement := StatementText; - finally - Free; - end; + begin + LTranslator := TranslatorClass.Create(Self); + try + LTranslator.CommandText := Command; + Statement := LTranslator.StatementText; + finally + LTranslator.Free; + end; + end; end; class function TInstantCustomRelationalQuery.TranslatorClass: TInstantRelationalTranslatorClass; @@ -5165,38 +5129,6 @@ Context.Clear; end; -procedure TInstantRelationalTranslator.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; - function TInstantRelationalTranslator.GetConnector: TInstantRelationalConnector; begin if HasConnector then @@ -5274,13 +5206,6 @@ ((AObject = Command) or (AObject.Owner = Command)); end; -function TInstantRelationalTranslator.IsRootAttribute( - const AttributeName: string): Boolean; -begin - Result := SameText(AttributeName, InstantClassFieldName) or - SameText(AttributeName, InstantIdFieldName); -end; - function TInstantRelationalTranslator.QuoteString(const Str: string): string; begin Result := InstantQuote(Str, Quote); @@ -5587,6 +5512,26 @@ var ClassNameField, ObjectNameField: TField; AClass: TInstantObjectClass; + + function CreateObjectFromDataSet(AClass: TClass; DataSet: TDataSet): TObject; + var + I: Integer; + FieldName: string; + begin + if AClass = nil then + raise Exception.Create(SUnassignedClass) + else if AClass.InheritsFrom(TInstantObject) then + Result := TInstantObjectClass(AClass).Create + else + Result := AClass.Create; + for I := 0 to Pred(DataSet.FieldCount) do + begin + FieldName := StringReplace( + DataSet.Fields[I].FieldName, '_', '.', [rfReplaceAll]); + InstantSetProperty(Result, FieldName, DataSet.Fields[I].Value); + end; + end; + begin RowNumber := Row; ObjectNameField := DataSet.FindField(InstantIdFieldName); @@ -6491,6 +6436,14 @@ PathToTarget(PathText, Result, FieldName); end; +function TInstantTranslationContext.RootAttribToFieldName(const AttribName: string): string; +begin + if SameText(AttribName, InstantClassFieldName) then + Result := InstantClassFieldName + else if SameText(AttribName, InstantIdFieldName) then + Result := InstantIdFieldName; +end; + function TInstantTranslationContext.PathToTarget(const PathText: string; out TablePath, FieldName: string; const AClassMetadata: TInstantClassMetadata): TInstantAttributeMetadata; Modified: trunk/Source/Design/D2010/DclIOCore.dproj =================================================================== --- trunk/Source/Design/D2010/DclIOCore.dproj 2010-09-12 06:25:23 UTC (rev 909) +++ trunk/Source/Design/D2010/DclIOCore.dproj 2010-09-12 08:29:52 UTC (rev 910) @@ -20,7 +20,7 @@ <Base>true</Base> </PropertyGroup> <PropertyGroup Condition="'$(Base)'!=''"> - <DCC_DependencyCheckOutputName>C:\Users\Public\Documents\RAD Studio\7.0\Bpl\DclIOCore_D14.bpl</DCC_DependencyCheckOutputName> + <DCC_DependencyCheckOutputName>..\..\..\..\..\..\..\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> |
From: <na...@us...> - 2010-09-12 06:25:29
|
Revision: 909 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=909&view=rev Author: nandod Date: 2010-09-12 06:25:23 +0000 (Sun, 12 Sep 2010) Log Message: ----------- * Added code to handle two corner cases in presentation layer. Modified Paths: -------------- trunk/Source/Core/InstantPresentation.pas Modified: trunk/Source/Core/InstantPresentation.pas =================================================================== --- trunk/Source/Core/InstantPresentation.pas 2010-09-12 06:24:21 UTC (rev 908) +++ trunk/Source/Core/InstantPresentation.pas 2010-09-12 06:25:23 UTC (rev 909) @@ -2796,7 +2796,7 @@ Result := BM.Instance; end else if not InContent then Result := Subject - else if RecNo <= 0 then + else if (RecNo <= 0) or (RecordCount = 0) then Result := nil else Result := Objects[Pred(RecNo)]; @@ -3911,6 +3911,7 @@ var Buffer: TRecordBuffer; Editing: Boolean; + BrowsingObject: Boolean; begin if not Active then begin @@ -3928,8 +3929,8 @@ if Assigned(Buffer) then begin Editing := (Buffer = ActiveBuffer) and (State in dsEditModes); - Result := (State = dsBrowse) or - (Editing and (eoSyncEdit in Options)); + BrowsingObject := (State = dsBrowse) and (AObject is ObjectClass); + Result := BrowsingObject or (Editing and (eoSyncEdit in Options)); if Result then begin CopyObjectToBuffer(AObject, Buffer); |
From: <na...@us...> - 2010-09-12 06:24:27
|
Revision: 908 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=908&view=rev Author: nandod Date: 2010-09-12 06:24:21 +0000 (Sun, 12 Sep 2010) Log Message: ----------- * Blob attribute are now considered null if they're empty. Fixes a param mapping problem in SQL resolvers. Modified Paths: -------------- trunk/Source/Core/InstantPersistence.pas Modified: trunk/Source/Core/InstantPersistence.pas =================================================================== --- trunk/Source/Core/InstantPersistence.pas 2010-09-12 06:21:39 UTC (rev 907) +++ trunk/Source/Core/InstantPersistence.pas 2010-09-12 06:24:21 UTC (rev 908) @@ -461,6 +461,7 @@ function Write(const Buffer; Position, Count: Integer): Integer; virtual; procedure WriteObject(Writer: TInstantWriter); override; procedure AssignTo(Dest: TPersistent); override; + function GetIsNull: Boolean; override; public destructor Destroy; override; procedure Assign(Source: TPersistent); override; @@ -3518,6 +3519,11 @@ Read(Result[0], 0, Size); end; +function TInstantBlob.GetIsNull: Boolean; +begin + Result := Size = 0; +end; + function TInstantBlob.GetSize: Integer; begin Result := Stream.Size; |
From: <na...@us...> - 2010-09-12 06:21:45
|
Revision: 907 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=907&view=rev Author: nandod Date: 2010-09-12 06:21:39 +0000 (Sun, 12 Sep 2010) Log Message: ----------- * Intentation fixed. Modified Paths: -------------- trunk/Source/Core/InstantBrokers.pas Modified: trunk/Source/Core/InstantBrokers.pas =================================================================== --- trunk/Source/Core/InstantBrokers.pas 2010-09-12 06:20:52 UTC (rev 906) +++ trunk/Source/Core/InstantBrokers.pas 2010-09-12 06:21:39 UTC (rev 907) @@ -3004,7 +3004,7 @@ if Broker.Connector.UseUnicode then AddWideMemoAttributeParam else - AddMemoAttributeParam; + AddMemoAttributeParam; atPart: AddPartAttributeParam; atParts: |
From: <na...@us...> - 2010-09-12 06:20:58
|
Revision: 906 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=906&view=rev Author: nandod Date: 2010-09-12 06:20:52 +0000 (Sun, 12 Sep 2010) Log Message: ----------- * Fix for XML broker that would duplicate a file on disk if an object changed its Id. Modified Paths: -------------- trunk/Source/Brokers/XML/InstantXML.pas Modified: trunk/Source/Brokers/XML/InstantXML.pas =================================================================== --- trunk/Source/Brokers/XML/InstantXML.pas 2010-09-11 16:51:00 UTC (rev 905) +++ trunk/Source/Brokers/XML/InstantXML.pas 2010-09-12 06:20:52 UTC (rev 906) @@ -1272,6 +1272,12 @@ function TXMLFilesAccessor.WriteInstantObject(const AObject: TInstantObject; const AStorageName: string; out AObjectUpdateCount: Integer): Boolean; begin + // Get rid of the previous file if the object already existed and has + // changed Id. + if (AObject.PersistentId <> '') and AObject.IsIdChanged then + DeleteInstantObjectXmlFile(AObject, + GetObjectFileName(AStorageName, AObject.ClassName, AObject.PersistentId)); + Result := InternalWriteInstantObject(AObject, AStorageName, AObjectUpdateCount); end; |
From: <na...@us...> - 2010-09-11 16:51:06
|
Revision: 905 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=905&view=rev Author: nandod Date: 2010-09-11 16:51:00 +0000 (Sat, 11 Sep 2010) Log Message: ----------- * UseUnicode connector property. Enables unicode features not enabled by default in unicode versions of Delphi (D2009+), such as wide (unicode) memo fields. Tested only on D2009+. * TInstantObject.DoAttributeChanged made virtual. Modified Paths: -------------- trunk/Source/Core/InstantBrokers.pas trunk/Source/Core/InstantPersistence.pas Modified: trunk/Source/Core/InstantBrokers.pas =================================================================== --- trunk/Source/Core/InstantBrokers.pas 2010-09-11 16:47:56 UTC (rev 904) +++ trunk/Source/Core/InstantBrokers.pas 2010-09-11 16:51:00 UTC (rev 905) @@ -2899,6 +2899,19 @@ LParam.AsMemo := MemoAttrib.Value; end; + procedure AddWideMemoAttributeParam; + var + LParam: TParam; + MemoAttrib: TInstantMemo; + begin + LParam := AddParam(Params, FieldName, ftWideMemo); + MemoAttrib := (Attribute as TInstantMemo); + if (MemoAttrib.Size = 0) or Attribute.IsNull then + LParam.Clear + else + LParam.Value := MemoAttrib.AsString; + end; + procedure AddPartAttributeParam; var Stream: TStream; @@ -2988,6 +3001,9 @@ atInteger: AddIntegerAttributeParam; atMemo: + if Broker.Connector.UseUnicode then + AddWideMemoAttributeParam + else AddMemoAttributeParam; atPart: AddPartAttributeParam; Modified: trunk/Source/Core/InstantPersistence.pas =================================================================== --- trunk/Source/Core/InstantPersistence.pas 2010-09-11 16:47:56 UTC (rev 904) +++ trunk/Source/Core/InstantPersistence.pas 2010-09-11 16:51:00 UTC (rev 905) @@ -792,7 +792,6 @@ procedure DoAfterRefresh; procedure DoAfterRetrieve; procedure DoAfterStore; - procedure DoAttributeChanged(Attribute: TInstantAttribute); procedure DoBeforeContentChange(Container: TInstantContainer; ChangeType: TInstantContentChangeType; Index: Integer; AObject: TInstantObject); procedure DoBeforeDispose; @@ -848,6 +847,7 @@ property SavedState: TInstantObjectState read GetSavedState; property State: TInstantObjectState read GetState; protected + procedure DoAttributeChanged(Attribute: TInstantAttribute); virtual; procedure Abandon; procedure AfterAddRef; virtual; procedure AfterAssign; virtual; @@ -1412,6 +1412,7 @@ FOnGenerateId: TInstantGenerateIdEvent; FIdSize: Integer; FIdDataType: TInstantDataType; + FUseUnicode: Boolean; procedure AbandonObjects; procedure ApplyTransactedObjectStates; procedure ClearTransactedObjects; @@ -1497,6 +1498,8 @@ default False; property UseTransactions: Boolean read FUseTransactions write FUseTransactions default True; + property UseUnicode: Boolean read FUseUnicode write FUseUnicode + default False; property BeforeBuildDatabase: TInstantSchemeEvent read FBeforeBuildDatabase write FBeforeBuildDatabase; property BlobStreamFormat: TInstantStreamFormat read FBlobStreamFormat @@ -1515,6 +1518,7 @@ FBlobStreamFormat: TInstantStreamFormat; FIdSize: Integer; FIdDataType: TInstantDataType; + FUseUnicode: Boolean; protected function GetCaption: string; virtual; procedure InitConnector(Connector: TInstantConnector); virtual; @@ -1533,6 +1537,8 @@ default dtString; property IdSize: Integer read FIdSize write FIdSize default InstantDefaultFieldSize; + property UseUnicode: Boolean read FUseUnicode write FUseUnicode + default False; end; TInstantConnectionDefs = class(TInstantCollection) @@ -8580,6 +8586,7 @@ begin inherited; FUseTransactions := True; + FUseUnicode := False; FIdDataType := dtString; FIdSize := InstantDefaultFieldSize; end; @@ -8986,6 +8993,7 @@ FBlobStreamFormat := sfBinary; FIdDataType := dtString; FIdSize := InstantDefaultFieldSize; + FUseUnicode := False; end; function TInstantConnectionDef.CreateConnector(AOwner: TComponent): TInstantConnector; @@ -9019,6 +9027,7 @@ Connector.BlobStreamFormat := BlobStreamFormat; Connector.IdDataType := IdDataType; Connector.IdSize := IdSize; + Connector.UseUnicode := UseUnicode; end; { TInstantConnectionDefs } |
From: <na...@us...> - 2010-09-11 16:48:02
|
Revision: 904 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=904&view=rev Author: nandod Date: 2010-09-11 16:47:56 +0000 (Sat, 11 Sep 2010) Log Message: ----------- + TInstantModel.MergeFromResFile. A first attempt to support distributed models. Modified Paths: -------------- trunk/Source/Core/InstantMetadata.pas Modified: trunk/Source/Core/InstantMetadata.pas =================================================================== --- trunk/Source/Core/InstantMetadata.pas 2010-09-11 16:46:38 UTC (rev 903) +++ trunk/Source/Core/InstantMetadata.pas 2010-09-11 16:47:56 UTC (rev 904) @@ -289,6 +289,7 @@ destructor Destroy; override; procedure LoadFromFile(const FileName: string); procedure LoadFromResFile(const FileName: string); + procedure MergeFromResFile(const FileName: string); procedure SaveToFile(const FileName: string); procedure SaveToResFile(const FileName: string); property ClassMetadatas: TInstantClassMetadatas read GetClassMetadatas; @@ -1396,6 +1397,30 @@ end; end; +procedure TInstantModel.MergeFromResFile(const FileName: string); +var + LModel: TInstantModel; + I: Integer; + LClassMetadata: TInstantClassMetadata; +begin + LModel := TInstantModel.Create; + try + LModel.LoadFromResFile(FileName); + for I := 0 to LModel.ClassMetadatas.Count - 1 do + begin + LClassMetadata := ClassMetadatas.Add; + try + LClassMetadata.Assign(LModel.ClassMetadatas[I]); + except + FreeAndNil(LClassMetadata); + raise; + end; + end; + finally + LModel.Free; + end; +end; + procedure TInstantModel.SaveToFile(const FileName: string); var Stream: TInstantFileStream; |
From: <na...@us...> - 2010-09-11 16:46:44
|
Revision: 903 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=903&view=rev Author: nandod Date: 2010-09-11 16:46:38 +0000 (Sat, 11 Sep 2010) Log Message: ----------- * InstantExplorer fixes and enhancements. Modified Paths: -------------- trunk/Source/Core/InstantExplorer.pas Modified: trunk/Source/Core/InstantExplorer.pas =================================================================== --- trunk/Source/Core/InstantExplorer.pas 2010-09-11 16:44:56 UTC (rev 902) +++ trunk/Source/Core/InstantExplorer.pas 2010-09-11 16:46:38 UTC (rev 903) @@ -122,6 +122,7 @@ constructor Create(AOwner: TComponent); override; property Grid: TDBGrid read GetGrid; property DataSource: TDataSource read GetDataSource write SetDataSource; + procedure Setup; end; TInstantExplorer = class(TCustomControl) @@ -212,7 +213,7 @@ procedure SetRootObject(const Value: TObject); virtual; procedure UpdateDetails; public - procedure SetupContentEditor; + procedure SetupContentEditor; virtual; constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Clear; @@ -497,8 +498,10 @@ finally Items.EndUpdate; OnChange := SaveOnChange; - CurrentObject := LCurrentObject; - TreeView.FullExpand; + if LCurrentObject <> nil then + CurrentObject := LCurrentObject + else if Items.Count > 0 then + Selected := Items[0]; end; end; end; @@ -1089,14 +1092,23 @@ var LNodeIndex: Integer; begin - for LNodeIndex := 0 to TreeView.Items.Count - 1 do + if (AValue <> nil) and (TreeView.Items.Count > 0) then begin - if Integer(TreeView.Items[LNodeIndex].Data) > 0 then - if TInstantExplorerNodeData(TreeView.Items[LNodeIndex].Data).Instance = AValue then - begin - TreeView.Selected := TreeView.Items[LNodeIndex]; - Break; - end; + for LNodeIndex := 0 to TreeView.Items.Count - 1 do + begin + if Integer(TreeView.Items[LNodeIndex].Data) > 0 then + if TInstantExplorerNodeData(TreeView.Items[LNodeIndex].Data).Instance = AValue then + begin + TreeView.Selected := TreeView.Items[LNodeIndex]; + TreeViewChange(TreeView, nil); + Break; + end; + end; + end + else + begin + TreeView.Selected := nil; + TreeViewChange(TreeView, nil); end; end; @@ -1196,12 +1208,18 @@ begin DestroyObjectEditor; Container := TInstantContainer(AObject); - ObjectExposer.Subject := nil; - ObjectExposer.Mode := amContent; - ObjectExposer.ContainerName := Container.Name; - ObjectExposer.Subject := Container.Owner; - DetailView := ContentView; - SetupContentEditor; + if (ObjectExposer.Subject <> Container.Owner) or (ObjectExposer.ContainerName <> Container.Name) then + begin + ObjectExposer.Subject := nil; + ObjectExposer.Mode := amContent; + ObjectExposer.ContainerName := Container.Name; + ObjectExposer.Subject := Container.Owner; + end; + if DetailView <> ContentView then + begin + DetailView := ContentView; + SetupContentEditor; + end; end else if Assigned(AObject) then begin @@ -1272,6 +1290,7 @@ if LField.DataType in [ftBlob, ftMemo, ftDataSet] then FContentEditor.Grid.Columns[LColumnIndex].Visible := False; end; + FContentEditor.Setup; end; function TInstantExplorer.CreateFieldList: TStrings; @@ -1311,7 +1330,8 @@ begin if Columns.Count >= 1 then - Columns[Columns.Count - 1].Width := ClientWidth - GetAllColumnsWidth(1); + Columns[Columns.Count - 1].Width := ClientWidth - GetAllColumnsWidth(1) + - IndicatorWidth - GetSystemMetrics(SM_CXVSCROLL); end; { TInstantExplorerContentEditor } @@ -1347,6 +1367,12 @@ FGrid.DataSource := AValue; end; +procedure TInstantExplorerContentEditor.Setup; +begin + if FGrid is TInstantExplorerDBGrid then + TInstantExplorerDBGrid(FGrid).UpdateLastColumnWidth; +end; + { TInstantExplorerDBComboBox } procedure TInstantExplorerDBComboBox.ApplyToRecord; |
From: <na...@us...> - 2010-09-11 16:45:02
|
Revision: 902 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=902&view=rev Author: nandod Date: 2010-09-11 16:44:56 +0000 (Sat, 11 Sep 2010) Log Message: ----------- * Unicode-related fix for XML processing. Modified Paths: -------------- trunk/Source/Core/InstantClasses.pas Modified: trunk/Source/Core/InstantClasses.pas =================================================================== --- trunk/Source/Core/InstantClasses.pas 2010-09-11 16:27:50 UTC (rev 901) +++ trunk/Source/Core/InstantClasses.pas 2010-09-11 16:44:56 UTC (rev 902) @@ -1717,7 +1717,7 @@ procedure TInstantXMLProcessor.SkipBlanks; begin - while InstantCharInSet(PeekChar, [#1..#32]) do + while InstantCharInSet(PeekChar, [#0..#32]) do ReadChar; end; |
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: <na...@us...> - 2010-08-12 19:20:25
|
Revision: 900 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=900&view=rev Author: nandod Date: 2010-08-12 19:20:19 +0000 (Thu, 12 Aug 2010) Log Message: ----------- * Default size for StringFields created for unlimited-length string attributes has been made customizable through a global variable (was a local const). Max usable value should be 8192. Modified Paths: -------------- trunk/Source/Core/InstantPresentation.pas Modified: trunk/Source/Core/InstantPresentation.pas =================================================================== --- trunk/Source/Core/InstantPresentation.pas 2010-08-12 08:37:28 UTC (rev 899) +++ trunk/Source/Core/InstantPresentation.pas 2010-08-12 19:20:19 UTC (rev 900) @@ -751,6 +751,12 @@ procedure InstantRegisterAccessorClass(AClass: TInstantAccessorClass); procedure InstantUnregisterAccessorClass(AClass: TInstantAccessorClass); +var + // StringFields for unlimited-length string attributes are created of the + // size indicated by this variable. Fields for attributes that do have a + // maximum length of that length instead. + InstantDefaultStringFieldSize: Integer = 255; + implementation uses @@ -770,7 +776,6 @@ const SelfFieldName = 'Self'; - DefaultStringFieldSize = 255; DefaultStringDisplayWidth = 12; var @@ -3183,7 +3188,7 @@ if Assigned(Metadata) and (Metadata.Size <> 0) then FieldDef.Size := Metadata.Size else - FieldDef.Size := DefaultStringFieldSize; + FieldDef.Size := InstantDefaultStringFieldSize; end; if Assigned(FOnInitFieldDef) then FOnInitFieldDef(Self, FieldDef); |
From: <na...@us...> - 2010-08-12 08:37:34
|
Revision: 899 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=899&view=rev Author: nandod Date: 2010-08-12 08:37:28 +0000 (Thu, 12 Aug 2010) Log Message: ----------- * Fixed a bug that prevented loading of embedded part/parts attributes on MBCS databases (WideMemo) in D2009+. Tested under Delphi 2010 against a Firebird database with UTF-8 charset. Modified Paths: -------------- trunk/Source/Core/InstantBrokers.pas Modified: trunk/Source/Core/InstantBrokers.pas =================================================================== --- trunk/Source/Core/InstantBrokers.pas 2010-07-12 11:25:42 UTC (rev 898) +++ trunk/Source/Core/InstantBrokers.pas 2010-08-12 08:37:28 UTC (rev 899) @@ -1750,10 +1750,6 @@ function TInstantCustomResolver.CreateEmbeddedObjectInputStream( const AConnector: TInstantConnector; const AField: TField): TStream; -{$IFDEF D12+} -var - LEncoding: TEncoding; -{$ENDIF} begin Assert(Assigned(AConnector)); Assert(Assigned(AField)); @@ -1762,13 +1758,8 @@ if AConnector.BlobStreamFormat = sfBinary then Result := TBytesStream.Create(AField.AsBytes) else - begin - TEncoding.GetBufferEncoding(AField.AsBytes, LEncoding); - Result := TInstantStringStream.Create(LEncoding.GetString(AField.AsBytes)); - end; - {$ELSE} - Result := TInstantStringStream.Create(AField.AsString); {$ENDIF} + Result := TInstantStringStream.Create(AField.AsString); end; function TInstantCustomResolver.CreateEmbeddedObjectOutputStream( |
From: <na...@us...> - 2010-07-12 11:25:49
|
Revision: 898 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=898&view=rev Author: nandod Date: 2010-07-12 11:25:42 +0000 (Mon, 12 Jul 2010) Log Message: ----------- * Fixed AV when loading large files in blob attributes. Reversed wrong change made in #830. Modified Paths: -------------- trunk/Source/Core/InstantPersistence.pas Modified: trunk/Source/Core/InstantPersistence.pas =================================================================== --- trunk/Source/Core/InstantPersistence.pas 2010-04-18 05:35:40 UTC (rev 897) +++ trunk/Source/Core/InstantPersistence.pas 2010-07-12 11:25:42 UTC (rev 898) @@ -3645,7 +3645,6 @@ function TInstantBlob.Write(const Buffer; Position, Count: Integer): Integer; var LValue: AnsiString; - LBufferPointer: {$IFDEF D12+}PByte{$ELSE}PChar{$ENDIF}; function CompareBuffers: Boolean; var @@ -3653,7 +3652,7 @@ B: {$IFDEF D12+}Byte{$ELSE}Char{$ENDIF}; begin Stream.Position := Position; - for I := Position to Pred(Position + Count) do + for I := 0 to Pred(Count) do begin Result := (Stream.Read(B, 1) = 1) and (B = {$IFDEF D12+}PByte{$ELSE}PChar{$ENDIF}(@Buffer)[I]); if not Result then @@ -3663,11 +3662,10 @@ end; begin - SetLength(LValue, Count); - LBufferPointer := @Buffer; - Inc(LBufferPointer, Position); - StrLCopy(PAnsiChar(LValue), PAnsiChar(LBufferPointer), Count); + SetLength(LValue, Count + 1); + StrLCopy(PAnsiChar(LValue), PAnsiChar(@Buffer), Count); Validate(string(LValue)); + if not CompareBuffers then begin Stream.Position := Position; |
From: <dav...@us...> - 2010-04-18 05:35:46
|
Revision: 897 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=897&view=rev Author: davidvtaylor Date: 2010-04-18 05:35:40 +0000 (Sun, 18 Apr 2010) Log Message: ----------- * Revised Model Explorer code parser to support compound unit names in the uses clause of model units Modified Paths: -------------- trunk/Source/Core/InstantCode.pas trunk/Source/Core/InstantTextFiler.pas Modified: trunk/Source/Core/InstantCode.pas =================================================================== --- trunk/Source/Core/InstantCode.pas 2010-02-02 23:06:30 UTC (rev 896) +++ trunk/Source/Core/InstantCode.pas 2010-04-18 05:35:40 UTC (rev 897) @@ -5701,38 +5701,32 @@ procedure TInstantCodeUsesClause.InternalRead(Reader: TInstantCodeReader); var Token: string; - GotName: Boolean; + Ident: string; BeginPos: TInstantCodePos; + UsedUnit: TInstantCodeUses; begin inherited; - GotName := False; while not Reader.Finished and not Reader.ReadEndOfStatement do begin Reader.SkipSpace; BeginPos := Reader.Position; + Ident := Reader.ReadIdent(True); + if (Ident = '') then + Reader.ErrorExpected('unit name', False); + UsedUnit := Add; + UsedUnit.Name := Ident; + UsedUnit.EndPos := Reader.Position; + UsedUnit.StartPos := BeginPos; Token := Reader.ReadToken; - if Token = ';' then - Break; - if Token = ',' then + if SameText(Token, 'in') then begin - if not GotName then - Reader.ErrorExpected('unit name', False); - GotName := False; - end else if GotName then - Reader.ErrorExpected(',') - else begin - with Add do - begin - StartPos := BeginPos; - Name := Token; - EndPos := Reader.Position; - if SameText(Reader.ReadToken, 'in') then - Reader.ReadString - else - Reader.Position := EndPos; - end; - GotName := True; + Reader.ReadString; + Token := Reader.ReadToken; end; + if Token = ';' then + Break; + if Token <> ',' then + Reader.ErrorExpected(', or ; ' + Token); end; end; Modified: trunk/Source/Core/InstantTextFiler.pas =================================================================== --- trunk/Source/Core/InstantTextFiler.pas 2010-02-02 23:06:30 UTC (rev 896) +++ trunk/Source/Core/InstantTextFiler.pas 2010-04-18 05:35:40 UTC (rev 897) @@ -39,7 +39,8 @@ interface uses - Classes, InstantClasses; + Classes, InstantClasses + {$IFDEF D12+}, Character{$ENDIF}; type PInstantTextPos = ^TInstantTextPos; @@ -92,6 +93,8 @@ function GetBof: Boolean; override; function GetEof: Boolean; override; procedure Initialize; override; + function IsIdentPrefix(Ch: Char): Boolean; + function IsIdentChar(Ch: Char; AllowDots: boolean): Boolean; function IsNumericPrefix(Ch: Char): Boolean; function IsStringDelimiter(Ch: Char): Boolean; public @@ -106,6 +109,7 @@ function ReadNext(const Str: string; StopBefore: Boolean = False): string; function ReadNumeric: string; virtual; function ReadString: string; virtual; + function ReadIdent(AllowDots: boolean): string; function ReadToken: string; function SkipSpace: Boolean; procedure UnreadToken; @@ -317,6 +321,27 @@ ConstAware := True; end; +function TInstantTextReader.IsIdentPrefix(Ch: Char): Boolean; +begin +{$IFDEF D12+} + Result := TCharacter.IsLetter(Ch) or (Ch = '_'); +{$ELSE} + Result := Ch in ['A'..'Z','a'..'z','_']; +{$ENDIF} +end; + +function TInstantTextReader.IsIdentChar(Ch: Char; AllowDots: boolean): Boolean; +begin +{$IFDEF D12+} + Result := TCharacter.IsLetterOrDigit(Ch) or (Ch = '_') or (AllowDots and (Ch = '.')) +{$ELSE} + if (AllowDots) then + Result := Ch in ['A'..'Z','a'..'z','_','.'] + else + Result := Ch in ['A'..'Z','a'..'z','_']; +{$ENDIF} +end; + function TInstantTextReader.IsNumericPrefix(Ch: Char): Boolean; begin Result := ConstAware and @@ -457,6 +482,38 @@ Position := SavePos; end; +function TInstantTextReader.ReadIdent(AllowDots: boolean): string; +var + Ch: Char; + SavePos: TInstantTextPos; +begin + Result := ''; + if Eof then + Exit; + FTokenPos := Position; + Ch := ReadChar; + while IsSpace(Ch) do + begin + FTokenPos := Position; + if Eof then + Exit; + Ch := ReadChar; + end; + if (not IsIdentPrefix(Ch)) then + begin + Position := FTokenPos; + Exit; + end; + repeat + Result := Result + Ch; + if Eof then + Exit; + SavePos := Position; + Ch := ReadChar; + until not IsIdentChar(Ch,AllowDots); + Position := SavePos; +end; + function TInstantTextReader.ReadToken: string; var Ch: Char; |
From: <dav...@us...> - 2010-02-02 23:06:37
|
Revision: 896 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=896&view=rev Author: davidvtaylor Date: 2010-02-02 23:06:30 +0000 (Tue, 02 Feb 2010) Log Message: ----------- * Fix for "Variant or safe array index out of bounds" error in AnyDAC broker. The root cause is the same as QC 46644 - DynArrayFromVariant() fails for empty arrays. Modified Paths: -------------- trunk/Source/Brokers/AnyDAC/InstantAnyDAC.pas Modified: trunk/Source/Brokers/AnyDAC/InstantAnyDAC.pas =================================================================== --- trunk/Source/Brokers/AnyDAC/InstantAnyDAC.pas 2010-01-29 18:28:03 UTC (rev 895) +++ trunk/Source/Brokers/AnyDAC/InstantAnyDAC.pas 2010-02-02 23:06:30 UTC (rev 896) @@ -52,7 +52,7 @@ InstantBrokers, InstantMetadata, InstantTypes, uADCompClient, uADStanOption, uADStanParam, uADStanIntf, uADStanConst, uADDAptIntf, uADStanAsync, uADDAptManager, uADCompDataSet - {$IFDEF D10+}, DBCommonTypes{$ENDIF}; + {$IFDEF D10+}, Variants, DBCommonTypes{$ENDIF}; type TInstantAnyDACConnectionDef = class(TInstantRelationalConnectionDef) @@ -714,7 +714,9 @@ ftBlob: // Temporary workaround for AnyDAC blob issue with MSSQL {$IFDEF D12+} - TargetParam.AsBlob := ConvertBlobData(SourceParam.AsBlob); + if (VarArrayHighBound(SourceParam.Value,1) <> -1) then + TargetParam.AsBlob := ConvertBlobData(SourceParam.AsBlob) else + TargetParam.AsBlob := ''; {$ELSE} TargetParam.AsBlob := SourceParam.AsBlob; {$ENDIF} |
From: <dav...@us...> - 2010-01-29 18:28:11
|
Revision: 895 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=895&view=rev Author: davidvtaylor Date: 2010-01-29 18:28:03 +0000 (Fri, 29 Jan 2010) Log Message: ----------- * Fix ModelExplorer breakage caused by an enumeration-related change to TInstantCustomExposer. Not all exposed objects are InstantObjects!! Modified Paths: -------------- trunk/Source/Core/InstantPresentation.pas Modified: trunk/Source/Core/InstantPresentation.pas =================================================================== --- trunk/Source/Core/InstantPresentation.pas 2010-01-29 04:36:35 UTC (rev 894) +++ trunk/Source/Core/InstantPresentation.pas 2010-01-29 18:28:03 UTC (rev 895) @@ -2211,6 +2211,12 @@ Result := ftString; end; + // TODO The attribute mapping process needs to be re-evaluated. + // The metadata-based approach fails in some cases since the Exposer + // subject is not always a TInstanObject instance (e.g. Delphi a TList). + // The code now falls back to RTTI based mapping as it did originally. + // Restoring the previous behavior fixes a breakage in Model Exporer + // DVT function EnumerationToFieldType(const FieldName: string): TFieldType; var AttributeMetadata: TInstantAttributeMetadata; @@ -2218,12 +2224,21 @@ Result := ftString; AttributeMetadata := FindAttributeMetadata(FieldName); if Assigned(AttributeMetadata) then + begin case AttributeMetadata.AttributeType of atEnum: Result := ftInteger; atBoolean: Result := ftBoolean; end; + end else + begin + // Default to original logic when metadata is not found! + if PropInfo^.PropType^^.Name = 'Boolean' then + Result := ftBoolean + else + Result := ftString; + end; end; var @@ -2246,10 +2261,6 @@ case TypeKind of tkEnumeration: FieldType := EnumerationToFieldType(FieldName); -{ if PropInfo^.PropType^^.Name = 'Boolean' then - FieldType := ftBoolean - else - FieldType := ftString;} tkString, tkLString{$IFDEF D12+}, tkUString{$ENDIF}: FieldType := StringFieldType(FieldName); tkInteger: |
From: <dav...@us...> - 2010-01-29 04:36:41
|
Revision: 894 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=894&view=rev Author: davidvtaylor Date: 2010-01-29 04:36:35 +0000 (Fri, 29 Jan 2010) Log Message: ----------- * Implement workaround for AnyDAC/MSSQL issue for blobs exceeding 8000 bytes Modified Paths: -------------- trunk/Source/Brokers/AnyDAC/InstantAnyDAC.pas Modified: trunk/Source/Brokers/AnyDAC/InstantAnyDAC.pas =================================================================== --- trunk/Source/Brokers/AnyDAC/InstantAnyDAC.pas 2010-01-29 04:24:56 UTC (rev 893) +++ trunk/Source/Brokers/AnyDAC/InstantAnyDAC.pas 2010-01-29 04:36:35 UTC (rev 894) @@ -681,24 +681,43 @@ SourceParam : TParam; TargetParam : TADParam; i : Integer; + Params : TADParams; begin // Don't call inherited + Params := (DataSet as TADQuery).Params; for i := 0 to Pred(AParams.Count) do begin SourceParam := AParams[i]; - TargetParam := (DataSet as TADQuery).Params.FindParam(SourceParam.Name); + TargetParam := Params.FindParam(SourceParam.Name); if assigned(TargetParam) then AssignParam(SourceParam, TargetParam); end; end; procedure TInstantAnyDACBroker.AssignParam(SourceParam: TParam; TargetParam: TADParam); + +{$IFDEF D12+} +function ConvertBlobData(const Bytes: TBytes): RawByteString; + begin + SetLength(Result, Length(Bytes)); + if length(Result) > 0 then + Move(Bytes[0], Result[1], Length(Bytes)) + end; +{$ENDIF} + begin case SourceParam.DataType of ftBoolean: if UseBooleanFields then TargetParam.Assign(SourceParam) else TargetParam.AsInteger := ord(SourceParam.AsBoolean); + ftBlob: + // Temporary workaround for AnyDAC blob issue with MSSQL + {$IFDEF D12+} + TargetParam.AsBlob := ConvertBlobData(SourceParam.AsBlob); + {$ELSE} + TargetParam.AsBlob := SourceParam.AsBlob; + {$ENDIF} else TargetParam.Assign(SourceParam); end; |