|
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>
|