浏览代码

* Initial implementation rowsaffected for Oracle. Patch from mantis #16885

git-svn-id: trunk@18127 -
marco 14 年之前
父节点
当前提交
e62a37a1af
共有 1 个文件被更改,包括 10 次插入0 次删除
  1. 10 0
      packages/fcl-db/src/sqldb/oracle/oracleconnection.pp

+ 10 - 0
packages/fcl-db/src/sqldb/oracle/oracleconnection.pp

@@ -77,6 +77,7 @@ type
     procedure RollbackRetaining(trans:TSQLHandle); override;
     procedure RollbackRetaining(trans:TSQLHandle); override;
     // - Statement execution
     // - Statement execution
     procedure Execute(cursor:TSQLCursor; ATransaction:TSQLTransaction; AParams:TParams); override;
     procedure Execute(cursor:TSQLCursor; ATransaction:TSQLTransaction; AParams:TParams); override;
+    function RowsAffected(cursor: TSQLCursor): TRowsCount; override;
     // - Result retrieving
     // - Result retrieving
     procedure AddFieldDefs(cursor:TSQLCursor; FieldDefs:TFieldDefs); override;
     procedure AddFieldDefs(cursor:TSQLCursor; FieldDefs:TFieldDefs); override;
     function Fetch(cursor:TSQLCursor):boolean; override;
     function Fetch(cursor:TSQLCursor):boolean; override;
@@ -439,6 +440,15 @@ begin
     end;
     end;
 end;
 end;
 
 
+function TOracleConnection.RowsAffected(cursor: TSQLCursor): TRowsCount;
+var rowcount: ub4;
+begin
+  if OCIAttrGet((cursor as TOracleCursor).FOciStmt, OCI_HTYPE_STMT, @rowcount, nil, OCI_ATTR_ROW_COUNT, FOciError) = OCI_SUCCESS then
+    Result:=rowcount
+  else
+    Result:=inherited RowsAffected(cursor);
+end;
+
 procedure TOracleConnection.AddFieldDefs(cursor: TSQLCursor; FieldDefs: TFieldDefs);
 procedure TOracleConnection.AddFieldDefs(cursor: TSQLCursor; FieldDefs: TFieldDefs);
 
 
 var Param      : POCIParam;
 var Param      : POCIParam;