Browse Source

* Not only a comma is a seperator in the from-clause of a query. Fixes bug #10148 (+test)

git-svn-id: trunk@9254 -
joost 18 years ago
parent
commit
dc33a9bc87
2 changed files with 15 additions and 1 deletions
  1. 1 1
      packages/fcl-db/src/sqldb/sqldb.pp
  2. 14 0
      packages/fcl-db/tests/testsqlfieldtypes.pas

+ 1 - 1
packages/fcl-db/src/sqldb/sqldb.pp

@@ -1072,7 +1072,7 @@ begin
                          Move(PStatementPart^,FFromPart[1],(StrLength));
                          FFrompart := trim(FFrompart);
                        
-                         if pos(',',FFromPart) > 0 then
+                         if ExtractStrings([',',' '],[],pchar(FFromPart),nil) > 1 then
                            FUpdateable := False // select-statements from more then one table are not updateable
                          else
                            begin

+ 14 - 0
packages/fcl-db/tests/testsqlfieldtypes.pas

@@ -26,6 +26,7 @@ type
     procedure TearDown; override;
     procedure RunTest; override;
   published
+    procedure TestParseJoins; // bug 10148
     procedure TestInsertLargeStrFields; // bug 9600
     procedure TestNumericNames; // Bug9661
     procedure Test11Params;
@@ -875,6 +876,19 @@ begin
     inherited RunTest;
 end;
 
+procedure TTestFieldTypes.TestParseJoins;
+begin
+  with TSQLDBConnector(DBConnector) do
+    begin
+    with query do
+      begin
+      SQL.Text:='select TT.NAME from FPDEV left join FPDEV as TT on TT.ID=FPDEV.ID';
+      Open;
+      close;
+      end;
+    end;
+end;
+
 procedure TTestFieldTypes.TestInsertLargeStrFields;
 begin
   with TSQLDBConnector(DBConnector) do