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