From: <car...@us...> - 2008-09-05 09:11:28
|
Revision: 790 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=790&view=rev Author: carlobar Date: 2008-09-05 09:11:38 +0000 (Fri, 05 Sep 2008) Log Message: ----------- New Fix for the bug for EXISTS/USING clause of IQL when a broker uses quoted identifiers. Modified Paths: -------------- trunk/Source/Core/InstantBrokers.pas trunk/Source/Core/InstantCommand.pas Modified: trunk/Source/Core/InstantBrokers.pas =================================================================== --- trunk/Source/Core/InstantBrokers.pas 2008-09-03 10:46:34 UTC (rev 789) +++ trunk/Source/Core/InstantBrokers.pas 2008-09-05 09:11:38 UTC (rev 790) @@ -847,7 +847,6 @@ function IndexOfChildContext(const AChildContext: TInstantTranslationContext): Integer; function Qualify(const TablePath, FieldName: string): string; function QualifyPath(const PathText: string): string; - function QualifyClassPath(const PathText: string): string; function WriteCriterias(Writer: TInstantIQLWriter; IncludeWhere: Boolean): Boolean; procedure WriteTables(Writer: TInstantIQLWriter); @@ -6485,14 +6484,6 @@ Result := Qualify(TablePath, FieldName); end; -function TInstantTranslationContext.QualifyClassPath(const PathText: string): string; -var - TablePath, FieldName: string; -begin - PathToTarget(PathText, TablePath, FieldName); - Result := Qualify(TablePath, FieldName+InstantClassFieldName); -end; - function TInstantTranslationContext.QuoteString(const Str: string): string; begin Result := InstantQuote(Str, Quote); Modified: trunk/Source/Core/InstantCommand.pas =================================================================== --- trunk/Source/Core/InstantCommand.pas 2008-09-03 10:46:34 UTC (rev 789) +++ trunk/Source/Core/InstantCommand.pas 2008-09-05 09:11:38 UTC (rev 790) @@ -1991,9 +1991,8 @@ WriteString('(('); - WriteString( LSubContext.QualifyClassPath(LAttributeMetadata.FieldName)); - WriteString(' = '); - WriteString(InstantQuote(LParentContext.ClassRef.ObjectClassName, LParentContext.Quote)); + WriteString(LSubContext.Qualify(LSubContext.TableName, LAttributeMetadata.FieldName + InstantClassFieldName) + + ' = ' + InstantQuote(LParentContext.ClassRef.ObjectClassName, LParentContext.Quote)); WriteString(') AND ('); @@ -2003,7 +2002,7 @@ WriteString('))'); end; - + end; end; |