浏览代码

* Avoid errors when dataset is not active while constructing update SQL.

git-svn-id: trunk@45189 -
michael 5 年之前
父节点
当前提交
07e2d4e4c5
共有 1 个文件被更改,包括 2 次插入1 次删除
  1. 2 1
      packages/fcl-db/src/sqldb/sqldb.pp

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

@@ -2017,7 +2017,8 @@ begin
      if (sql_where<>'') then
        sql_where:=sql_where + ' and ';
      sql_where:= sql_where + '(' + FieldNameQuoteChars[0] + F.FieldName + FieldNameQuoteChars[1];
-     if F.OldValue = NULL then
+     // primary key normally cannot be null
+     if Assigned(F.Dataset) and F.Dataset.Active and (F.OldValue = NULL) then
         sql_where :=  sql_where + ' is null '
      else
         sql_where :=  sql_where +'= :"' + 'OLD_' + F.FieldName + '"';