home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / DBObject.4gl < prev    next >
Text File  |  1996-11-28  |  3KB  |  107 lines

  1. -----------------------------------------------------------------------------
  2. --
  3. -- Copyright (c) 1995 by Westmount Technology B.V., Delft, The Netherlands.
  4. --
  5. -- This software is furnished under a license and may be used only in
  6. -- accordance with the terms of such license and with the inclusion of
  7. -- the above copyright notice. This software or any other copies thereof
  8. -- may not be provided or otherwise made available to any other person.
  9. -- No title to and ownership of the software is hereby transferred.
  10. --
  11. -- The information in this software is subject to change without notice
  12. -- and should not be construed as a commitment by Westmount Technology B.V.
  13. --
  14. -----------------------------------------------------------------------------
  15. --
  16. --    File        : @(#)DBObject.4gl    /main/titanic/1
  17. --    Author        :
  18. --    Original date    : 17-01-1995
  19. --    Description    : Base class for all database classes
  20. --
  21. -----------------------------------------------------------------------------
  22.  
  23. INCLUDE "DBObject.4gh"
  24.  
  25. VARIABLE DBObject::conn ixSQLConnect = NULL
  26.  
  27. FUNCTION DBObject::connectDB(dbName CHAR(*), connObj ixSQLConnect)
  28.         RETURNING INTEGER
  29.  
  30.     IF connObj IS NULL THEN
  31.         LET conn = ixSQLConnect::getImplicitConnection()
  32.     ELSE
  33.         LET conn = connObj
  34.     END IF
  35.  
  36.     CALL conn.connect(dbName)
  37.     RETURN SQLCA.SQLCODE
  38. END FUNCTION
  39.  
  40. FUNCTION DBObject::disconnectDB() RETURNING VOID
  41.     IF conn IS NULL THEN
  42.         RETURN
  43.     END IF
  44.  
  45.     CALL conn.disconnect()
  46. END FUNCTION
  47.  
  48. FUNCTION DBObject::getConnection() RETURNING ixSQLConnect
  49.     RETURN conn
  50. END FUNCTION
  51.         
  52. FUNCTION DBObject::commit() RETURNING INTEGER
  53.     CALL conn.transact(conn.SQL_Commit)
  54.     RETURN SQLCA.SQLCODE
  55. END FUNCTION
  56.  
  57. FUNCTION DBObject::rollback() RETURNING INTEGER
  58.     CALL conn.transact(conn.SQL_Rollback)
  59.     RETURN SQLCA.SQLCODE
  60. END FUNCTION
  61.  
  62. FUNCTION DBObject::getClassName() RETURNING ixString
  63.     RETURN className
  64. END FUNCTION
  65.  
  66. FUNCTION DBObject::getODBCErrMsg(stmt ixSQLStmt) RETURNING CHAR(*)
  67.     VARIABLE sqlState CHAR(*), errNum INTEGER, errMsg CHAR(*)
  68.  
  69.     IF stmt.getODBCErrorCode() != stmt.SQL_Success THEN
  70.         CALL conn.SQLError(stmt)
  71.             RETURNING sqlState, errNum, errMsg
  72.                 RETURN errMsg
  73.     END IF
  74.     RETURN NULL
  75. END FUNCTION
  76.  
  77. FUNCTION DBObject::DBObject()
  78.     LET dbstate = CREATED
  79.     LET errorStmt = NULL
  80. END FUNCTION
  81.  
  82. FUNCTION DBObject::getState() RETURNING SMALLINT
  83.     RETURN dbState
  84. END FUNCTION
  85.  
  86. FUNCTION DBObject::resetState() RETURNING VOID
  87.     LET dbstate = CREATED
  88. END FUNCTION
  89.  
  90. FUNCTION DBObject::processSqlStatus(stmt ixSQLStmt) RETURNING INTEGER
  91.     CASE 
  92.         WHEN dbState == CREATED OR dbState == NORMAL
  93.             IF stmt.getODBCErrorCode() != stmt.SQL_Success THEN
  94.                 LET errorStmt = stmt
  95.                 LET dbState = SQL_ERROR
  96.                 RETURN -1
  97.             ELSE
  98.                 LET errorStmt = NULL
  99.                 LET dbState = NORMAL
  100.                 RETURN 0
  101.             END IF
  102.         WHEN dbState == SQL_ERROR
  103.             RETURN -1
  104.     END CASE
  105.     RETURN -1
  106. END FUNCTION
  107.