Browse Source

* fcl-db: oracle connection fixes:
- unregister on finalization instead of register
- check cursor is assigned in rowsaffected
Patch by Laco.

git-svn-id: trunk@27944 -

reiniero 11 years ago
parent
commit
7863213048
1 changed files with 2 additions and 2 deletions
  1. 2 2
      packages/fcl-db/src/sqldb/oracle/oracleconnection.pp

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

@@ -732,7 +732,7 @@ end;
 function TOracleConnection.RowsAffected(cursor: TSQLCursor): TRowsCount;
 function TOracleConnection.RowsAffected(cursor: TSQLCursor): TRowsCount;
 var rowcount: ub4;
 var rowcount: ub4;
 begin
 begin
-  if OCIAttrGet((cursor as TOracleCursor).FOciStmt, OCI_HTYPE_STMT, @rowcount, nil, OCI_ATTR_ROW_COUNT, FOciError) = OCI_SUCCESS then
+  if Assigned(cursor) and (OCIAttrGet((cursor as TOracleCursor).FOciStmt, OCI_HTYPE_STMT, @rowcount, nil, OCI_ATTR_ROW_COUNT, FOciError) = OCI_SUCCESS) then
     Result:=rowcount
     Result:=rowcount
   else
   else
     Result:=inherited RowsAffected(cursor);
     Result:=inherited RowsAffected(cursor);
@@ -1112,6 +1112,6 @@ end;
 initialization
 initialization
   RegisterConnection(TOracleConnectionDef);
   RegisterConnection(TOracleConnectionDef);
 finalization
 finalization
-  RegisterConnection(TOracleConnectionDef);
+  UnRegisterConnection(TOracleConnectionDef);
 end.
 end.