public CFCrmContactTagBuff readBuff(
     CFSecurityAuthorization Authorization, CFCrmContactTagPKey PKey) {
   final String S_ProcName = "readBuff";
   if (!schema.isTransactionOpen()) {
     throw CFLib.getDefaultExceptionFactory()
         .newUsageException(getClass(), S_ProcName, "Transaction not open");
   }
   ResultSet resultSet = null;
   try {
     Connection cnx = schema.getCnx();
     long TenantId = PKey.getRequiredTenantId();
     long ContactId = PKey.getRequiredContactId();
     long TagId = PKey.getRequiredTagId();
     String sql =
         "{ call sp_read_ctc_tag( ?, ?, ?, ?, ?" + ", " + "?" + ", " + "?" + ", " + "?" + " ) }";
     if (stmtReadBuffByPKey == null) {
       stmtReadBuffByPKey = cnx.prepareStatement(sql);
     }
     int argIdx = 1;
     stmtReadBuffByPKey.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecClusterId());
     stmtReadBuffByPKey.setString(
         argIdx++, (Authorization == null) ? "" : Authorization.getSecUserId().toString());
     stmtReadBuffByPKey.setString(
         argIdx++, (Authorization == null) ? "" : Authorization.getSecSessionId().toString());
     stmtReadBuffByPKey.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecClusterId());
     stmtReadBuffByPKey.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecTenantId());
     stmtReadBuffByPKey.setLong(argIdx++, TenantId);
     stmtReadBuffByPKey.setLong(argIdx++, ContactId);
     stmtReadBuffByPKey.setLong(argIdx++, TagId);
     resultSet = stmtReadBuffByPKey.executeQuery();
     if ((resultSet != null) && resultSet.next()) {
       CFCrmContactTagBuff buff = unpackContactTagResultSetToBuff(resultSet);
       if (resultSet.next()) {
         resultSet.last();
         throw CFLib.getDefaultExceptionFactory()
             .newRuntimeException(
                 getClass(),
                 S_ProcName,
                 "Did not expect multi-record response, " + resultSet.getRow() + " rows selected");
       }
       return (buff);
     } else {
       return (null);
     }
   } catch (SQLException e) {
     throw CFLib.getDefaultExceptionFactory().newDbException(getClass(), S_ProcName, e);
   } finally {
     if (resultSet != null) {
       try {
         resultSet.close();
       } catch (SQLException e) {
       }
       resultSet = null;
     }
   }
 }
 public void deleteMemoDataByMemoDataCtcIdx(
     CFSecurityAuthorization Authorization, long argTenantId, long argContactId) {
   final String S_ProcName = "deleteMemoDataByMemoDataCtcIdx";
   if (!schema.isTransactionOpen()) {
     throw CFLib.getDefaultExceptionFactory()
         .newUsageException(getClass(), S_ProcName, "Transaction not open");
   }
   ResultSet resultSet = null;
   try {
     Connection cnx = schema.getCnx();
     String sql =
         "exec sp_delete_memodata_by_memodatactcidx ?, ?, ?, ?, ?" + ", " + "?" + ", " + "?";
     if (stmtDeleteByMemoDataCtcIdx == null) {
       stmtDeleteByMemoDataCtcIdx = cnx.prepareStatement(sql);
     }
     int argIdx = 1;
     stmtDeleteByMemoDataCtcIdx.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecClusterId());
     stmtDeleteByMemoDataCtcIdx.setString(
         argIdx++, (Authorization == null) ? "" : Authorization.getSecUserId().toString());
     stmtDeleteByMemoDataCtcIdx.setString(
         argIdx++, (Authorization == null) ? "" : Authorization.getSecSessionId().toString());
     stmtDeleteByMemoDataCtcIdx.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecClusterId());
     stmtDeleteByMemoDataCtcIdx.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecTenantId());
     stmtDeleteByMemoDataCtcIdx.setLong(argIdx++, argTenantId);
     stmtDeleteByMemoDataCtcIdx.setLong(argIdx++, argContactId);
     Object stuff = null;
     boolean moreResults = stmtDeleteByMemoDataCtcIdx.execute();
     while (stuff == null) {
       try {
         moreResults = stmtDeleteByMemoDataCtcIdx.getMoreResults();
       } catch (SQLException e) {
         throw CFLib.getDefaultExceptionFactory().newDbException(getClass(), S_ProcName, e);
       }
       if (moreResults) {
         try {
           stuff = stmtDeleteByMemoDataCtcIdx.getResultSet();
         } catch (SQLException e) {
         }
       } else if (-1 == stmtDeleteByMemoDataCtcIdx.getUpdateCount()) {
         break;
       }
     }
   } catch (SQLException e) {
     throw CFLib.getDefaultExceptionFactory().newDbException(getClass(), S_ProcName, e);
   } finally {
     if (resultSet != null) {
       try {
         resultSet.close();
       } catch (SQLException e) {
       }
       resultSet = null;
     }
   }
 }
  protected CFCrmMemoDataBuff unpackMemoDataResultSetToBuff(ResultSet resultSet)
      throws SQLException {
    final String S_ProcName = "unpackMemoDataResultSetToBuff";
    int idxcol = 1;
    CFCrmMemoDataBuff buff = schema.getFactoryMemoData().newBuff();
    {
      String colString = resultSet.getString(idxcol);
      if (resultSet.wasNull()) {
        buff.setCreatedByUserId(null);
      } else if ((colString == null) || (colString.length() <= 0)) {
        buff.setCreatedByUserId(null);
      } else {
        buff.setCreatedByUserId(UUID.fromString(colString));
      }
      idxcol++;

      colString = resultSet.getString(idxcol);
      if (resultSet.wasNull()) {
        buff.setCreatedAt(null);
      } else if ((colString == null) || (colString.length() <= 0)) {
        buff.setCreatedAt(null);
      } else {
        buff.setCreatedAt(CFCrmMSSqlSchema.convertTimestampString(colString));
      }
      idxcol++;
      colString = resultSet.getString(idxcol);
      if (resultSet.wasNull()) {
        buff.setUpdatedByUserId(null);
      } else if ((colString == null) || (colString.length() <= 0)) {
        buff.setUpdatedByUserId(null);
      } else {
        buff.setUpdatedByUserId(UUID.fromString(colString));
      }
      idxcol++;

      colString = resultSet.getString(idxcol);
      if (resultSet.wasNull()) {
        buff.setUpdatedAt(null);
      } else if ((colString == null) || (colString.length() <= 0)) {
        buff.setUpdatedAt(null);
      } else {
        buff.setUpdatedAt(CFCrmMSSqlSchema.convertTimestampString(colString));
      }
      idxcol++;
    }
    buff.setRequiredTenantId(resultSet.getLong(idxcol));
    idxcol++;
    buff.setRequiredMemoId(resultSet.getLong(idxcol));
    idxcol++;
    buff.setRequiredContactId(resultSet.getLong(idxcol));
    idxcol++;
    buff.setRequiredMemo(resultSet.getString(idxcol));
    idxcol++;
    buff.setRequiredRevision(resultSet.getInt(idxcol));
    return (buff);
  }
  protected CFSecurityISOCountryBuff unpackISOCountryResultSetToBuff(ResultSet resultSet)
      throws SQLException {
    final String S_ProcName = "unpackISOCountryResultSetToBuff";
    int idxcol = 1;
    CFSecurityISOCountryBuff buff = schema.getFactoryISOCountry().newBuff();
    {
      String colString = resultSet.getString(idxcol);
      if (resultSet.wasNull()) {
        buff.setCreatedByUserId(null);
      } else if ((colString == null) || (colString.length() <= 0)) {
        buff.setCreatedByUserId(null);
      } else {
        buff.setCreatedByUserId(UUID.fromString(colString));
      }
      idxcol++;

      colString = resultSet.getString(idxcol);
      if (resultSet.wasNull()) {
        buff.setCreatedAt(null);
      } else if ((colString == null) || (colString.length() <= 0)) {
        buff.setCreatedAt(null);
      } else {
        buff.setCreatedAt(CFCrmMSSqlSchema.convertTimestampString(colString));
      }
      idxcol++;
      colString = resultSet.getString(idxcol);
      if (resultSet.wasNull()) {
        buff.setUpdatedByUserId(null);
      } else if ((colString == null) || (colString.length() <= 0)) {
        buff.setUpdatedByUserId(null);
      } else {
        buff.setUpdatedByUserId(UUID.fromString(colString));
      }
      idxcol++;

      colString = resultSet.getString(idxcol);
      if (resultSet.wasNull()) {
        buff.setUpdatedAt(null);
      } else if ((colString == null) || (colString.length() <= 0)) {
        buff.setUpdatedAt(null);
      } else {
        buff.setUpdatedAt(CFCrmMSSqlSchema.convertTimestampString(colString));
      }
      idxcol++;
    }
    buff.setRequiredId(resultSet.getShort(idxcol));
    idxcol++;
    buff.setRequiredISOCode(resultSet.getString(idxcol));
    idxcol++;
    buff.setRequiredName(resultSet.getString(idxcol));
    idxcol++;
    buff.setRequiredRevision(resultSet.getInt(idxcol));
    return (buff);
  }
 public CFCrmTagBuff[] readAllBuff(CFSecurityAuthorization Authorization) {
   final String S_ProcName = "readAllBuff";
   if (!schema.isTransactionOpen()) {
     throw CFLib.getDefaultExceptionFactory()
         .newUsageException(getClass(), S_ProcName, "Transaction not open");
   }
   ResultSet resultSet = null;
   try {
     Connection cnx = schema.getCnx();
     String sql = "{ call sp_read_tag_all( ?, ?, ?, ?, ? ) }";
     if (stmtReadAllBuff == null) {
       stmtReadAllBuff = cnx.prepareStatement(sql);
     }
     int argIdx = 1;
     stmtReadAllBuff.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecClusterId());
     stmtReadAllBuff.setString(
         argIdx++, (Authorization == null) ? "" : Authorization.getSecUserId().toString());
     stmtReadAllBuff.setString(
         argIdx++, (Authorization == null) ? "" : Authorization.getSecSessionId().toString());
     stmtReadAllBuff.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecClusterId());
     stmtReadAllBuff.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecTenantId());
     resultSet = stmtReadAllBuff.executeQuery();
     List<CFCrmTagBuff> buffList = new LinkedList<CFCrmTagBuff>();
     if (resultSet != null) {
       while (resultSet.next()) {
         CFCrmTagBuff buff = unpackTagResultSetToBuff(resultSet);
         buffList.add(buff);
       }
     }
     int idx = 0;
     CFCrmTagBuff[] retBuff = new CFCrmTagBuff[buffList.size()];
     Iterator<CFCrmTagBuff> iter = buffList.iterator();
     while (iter.hasNext()) {
       retBuff[idx++] = iter.next();
     }
     return (retBuff);
   } catch (SQLException e) {
     throw CFLib.getDefaultExceptionFactory().newDbException(getClass(), S_ProcName, e);
   } finally {
     if (resultSet != null) {
       try {
         resultSet.close();
       } catch (SQLException e) {
       }
       resultSet = null;
     }
   }
 }
  public void deleteContactTag(CFSecurityAuthorization Authorization, CFCrmContactTagBuff Buff) {
    final String S_ProcName = "deleteContactTag";
    try {
      Connection cnx = schema.getCnx();
      long TenantId = Buff.getRequiredTenantId();
      long ContactId = Buff.getRequiredContactId();
      long TagId = Buff.getRequiredTagId();

      String sql =
          "exec sp_delete_ctc_tag ?, ?, ?, ?, ?"
              + ", "
              + "?"
              + ", "
              + "?"
              + ", "
              + "?"
              + ", "
              + "?";
      if (stmtDeleteByPKey == null) {
        stmtDeleteByPKey = cnx.prepareStatement(sql);
      }
      int argIdx = 1;
      stmtDeleteByPKey.setLong(
          argIdx++, (Authorization == null) ? 0 : Authorization.getSecClusterId());
      stmtDeleteByPKey.setString(
          argIdx++, (Authorization == null) ? "" : Authorization.getSecUserId().toString());
      stmtDeleteByPKey.setString(
          argIdx++, (Authorization == null) ? "" : Authorization.getSecSessionId().toString());
      stmtDeleteByPKey.setLong(
          argIdx++, (Authorization == null) ? 0 : Authorization.getSecClusterId());
      stmtDeleteByPKey.setLong(
          argIdx++, (Authorization == null) ? 0 : Authorization.getSecTenantId());
      stmtDeleteByPKey.setLong(argIdx++, TenantId);
      stmtDeleteByPKey.setLong(argIdx++, ContactId);
      stmtDeleteByPKey.setLong(argIdx++, TagId);
      stmtDeleteByPKey.setInt(argIdx++, Buff.getRequiredRevision());
      ;
      Object stuff = null;
      boolean moreResults = stmtDeleteByPKey.execute();
      while (stuff == null) {
        try {
          moreResults = stmtDeleteByPKey.getMoreResults();
        } catch (SQLException e) {
          throw CFLib.getDefaultExceptionFactory().newDbException(getClass(), S_ProcName, e);
        }
        if (moreResults) {
          try {
            stuff = stmtDeleteByPKey.getResultSet();
          } catch (SQLException e) {
          }
        } else if (-1 == stmtDeleteByPKey.getUpdateCount()) {
          break;
        }
      }
    } catch (SQLException e) {
      throw CFLib.getDefaultExceptionFactory().newDbException(getClass(), S_ProcName, e);
    }
  }
 public CFCrmMemoDataBuff[] readBuffByMemoDataCtcIdx(
     CFSecurityAuthorization Authorization, long TenantId, long ContactId) {
   final String S_ProcName = "readBuffByMemoDataCtcIdx";
   ResultSet resultSet = null;
   try {
     Connection cnx = schema.getCnx();
     String sql =
         "{ call sp_read_memodata_by_memodatactcidx( ?, ?, ?, ?, ?"
             + ", "
             + "?"
             + ", "
             + "?"
             + " ) }";
     if (stmtReadBuffByMemoDataCtcIdx == null) {
       stmtReadBuffByMemoDataCtcIdx = cnx.prepareStatement(sql);
     }
     int argIdx = 1;
     stmtReadBuffByMemoDataCtcIdx.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecClusterId());
     stmtReadBuffByMemoDataCtcIdx.setString(
         argIdx++, (Authorization == null) ? "" : Authorization.getSecUserId().toString());
     stmtReadBuffByMemoDataCtcIdx.setString(
         argIdx++, (Authorization == null) ? "" : Authorization.getSecSessionId().toString());
     stmtReadBuffByMemoDataCtcIdx.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecClusterId());
     stmtReadBuffByMemoDataCtcIdx.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecTenantId());
     stmtReadBuffByMemoDataCtcIdx.setLong(argIdx++, TenantId);
     stmtReadBuffByMemoDataCtcIdx.setLong(argIdx++, ContactId);
     resultSet = stmtReadBuffByMemoDataCtcIdx.executeQuery();
     List<CFCrmMemoDataBuff> buffList = new LinkedList<CFCrmMemoDataBuff>();
     if (resultSet != null) {
       while (resultSet.next()) {
         CFCrmMemoDataBuff buff = unpackMemoDataResultSetToBuff(resultSet);
         buffList.add(buff);
       }
     }
     int idx = 0;
     CFCrmMemoDataBuff[] retBuff = new CFCrmMemoDataBuff[buffList.size()];
     Iterator<CFCrmMemoDataBuff> iter = buffList.iterator();
     while (iter.hasNext()) {
       retBuff[idx++] = iter.next();
     }
     return (retBuff);
   } catch (SQLException e) {
     throw CFLib.getDefaultExceptionFactory().newDbException(getClass(), S_ProcName, e);
   } finally {
     if (resultSet != null) {
       try {
         resultSet.close();
       } catch (SQLException e) {
       }
       resultSet = null;
     }
   }
 }
 public CFCrmTagBuff lockDerived(CFSecurityAuthorization Authorization, CFCrmTagPKey PKey) {
   final String S_ProcName = "lockDerived";
   if (!schema.isTransactionOpen()) {
     throw CFLib.getDefaultExceptionFactory()
         .newUsageException(getClass(), S_ProcName, "Transaction not open");
   }
   CFCrmTagBuff buff;
   buff = lockBuff(Authorization, PKey);
   return (buff);
 }
 public CFCrmTagBuff[] readAllDerived(CFSecurityAuthorization Authorization) {
   final String S_ProcName = "readAllDerived";
   CFCrmTagBuff[] buffArray;
   if (!schema.isTransactionOpen()) {
     throw CFLib.getDefaultExceptionFactory()
         .newUsageException(getClass(), S_ProcName, "Transaction not open");
   }
   buffArray = readAllBuff(Authorization);
   return (buffArray);
 }
 public CFCrmTagBuff[] readDerivedByTenantIdx(
     CFSecurityAuthorization Authorization, long TenantId) {
   final String S_ProcName = "readDerivedByTenantIdx";
   if (!schema.isTransactionOpen()) {
     throw CFLib.getDefaultExceptionFactory()
         .newUsageException(getClass(), S_ProcName, "Transaction not open");
   }
   CFCrmTagBuff[] buffList = readBuffByTenantIdx(Authorization, TenantId);
   return (buffList);
 }
 public String getSqlSelectMemoDataDistinctClassCode() {
   if (S_sqlSelectMemoDataDistinctClassCode == null) {
     S_sqlSelectMemoDataDistinctClassCode =
         "SELECT "
             + "DISTINCT mmod.ClassCode "
             + "FROM "
             + schema.getLowerDbSchemaName()
             + "..MemoData AS mmod ";
   }
   return (S_sqlSelectMemoDataDistinctClassCode);
 }
 public CFSecurityISOCountryBuff readDerivedByISOCodeIdx(
     CFSecurityAuthorization Authorization, String ISOCode) {
   final String S_ProcName = "CFCrmMSSqlISOCountryTable.readDerivedByISOCodeIdx() ";
   CFSecurityISOCountryBuff buff;
   if (!schema.isTransactionOpen()) {
     throw CFLib.getDefaultExceptionFactory()
         .newUsageException(getClass(), S_ProcName, "Transaction not open");
   }
   buff = readBuffByISOCodeIdx(Authorization, ISOCode);
   return (buff);
 }
 public String getSqlSelectISOCountryDistinctClassCode() {
   if (S_sqlSelectISOCountryDistinctClassCode == null) {
     S_sqlSelectISOCountryDistinctClassCode =
         "SELECT "
             + "DISTINCT isoc.ClassCode "
             + "FROM "
             + schema.getLowerDbSchemaName()
             + "..iso_cntry AS isoc ";
   }
   return (S_sqlSelectISOCountryDistinctClassCode);
 }
 public String getSqlSelectTagDistinctClassCode() {
   if (S_sqlSelectTagDistinctClassCode == null) {
     S_sqlSelectTagDistinctClassCode =
         "SELECT "
             + "DISTINCT ctag.ClassCode "
             + "FROM "
             + schema.getLowerDbSchemaName()
             + "..tag AS ctag ";
   }
   return (S_sqlSelectTagDistinctClassCode);
 }
 public CFCrmTagBuff readDerivedByNameIdx(
     CFSecurityAuthorization Authorization, long TenantId, String Name) {
   final String S_ProcName = "CFCrmMSSqlTagTable.readDerivedByNameIdx() ";
   CFCrmTagBuff buff;
   if (!schema.isTransactionOpen()) {
     throw CFLib.getDefaultExceptionFactory()
         .newUsageException(getClass(), S_ProcName, "Transaction not open");
   }
   buff = readBuffByNameIdx(Authorization, TenantId, Name);
   return (buff);
 }
 public CFCrmTagBuff readBuffByNameIdx(
     CFSecurityAuthorization Authorization, long TenantId, String Name) {
   final String S_ProcName = "readBuffByNameIdx";
   ResultSet resultSet = null;
   try {
     Connection cnx = schema.getCnx();
     String sql =
         "{ call sp_read_tag_by_nameidx( ?, ?, ?, ?, ?" + ", " + "?" + ", " + "?" + " ) }";
     if (stmtReadBuffByNameIdx == null) {
       stmtReadBuffByNameIdx = cnx.prepareStatement(sql);
     }
     int argIdx = 1;
     stmtReadBuffByNameIdx.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecClusterId());
     stmtReadBuffByNameIdx.setString(
         argIdx++, (Authorization == null) ? "" : Authorization.getSecUserId().toString());
     stmtReadBuffByNameIdx.setString(
         argIdx++, (Authorization == null) ? "" : Authorization.getSecSessionId().toString());
     stmtReadBuffByNameIdx.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecClusterId());
     stmtReadBuffByNameIdx.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecTenantId());
     stmtReadBuffByNameIdx.setLong(argIdx++, TenantId);
     stmtReadBuffByNameIdx.setString(argIdx++, Name);
     resultSet = stmtReadBuffByNameIdx.executeQuery();
     if ((resultSet != null) && resultSet.next()) {
       CFCrmTagBuff buff = unpackTagResultSetToBuff(resultSet);
       if (resultSet.next()) {
         resultSet.last();
         throw CFLib.getDefaultExceptionFactory()
             .newRuntimeException(
                 getClass(),
                 S_ProcName,
                 "Did not expect multi-record response, " + resultSet.getRow() + " rows selected");
       }
       return (buff);
     } else {
       return (null);
     }
   } catch (SQLException e) {
     throw CFLib.getDefaultExceptionFactory().newDbException(getClass(), S_ProcName, e);
   } finally {
     if (resultSet != null) {
       try {
         resultSet.close();
       } catch (SQLException e) {
       }
       resultSet = null;
     }
   }
 }
 public String getSqlSelectISOCountryBuff() {
   if (S_sqlSelectISOCountryBuff == null) {
     S_sqlSelectISOCountryBuff =
         "SELECT "
             + "isoc.id, "
             + "isoc.iso_code, "
             + "isoc.country_name, "
             + "isoc.revision "
             + "FROM "
             + schema.getLowerDbSchemaName()
             + "..iso_cntry AS isoc ";
   }
   return (S_sqlSelectISOCountryBuff);
 }
 public String getSqlSelectContactTagBuff() {
   if (S_sqlSelectContactTagBuff == null) {
     S_sqlSelectContactTagBuff =
         "SELECT "
             + "cttg.tenantid, "
             + "cttg.contactid, "
             + "cttg.tagid, "
             + "cttg.tagvalue, "
             + "cttg.revision "
             + "FROM "
             + schema.getLowerDbSchemaName()
             + "..ctc_tag AS cttg ";
   }
   return (S_sqlSelectContactTagBuff);
 }
 public String getSqlSelectMemoDataBuff() {
   if (S_sqlSelectMemoDataBuff == null) {
     S_sqlSelectMemoDataBuff =
         "SELECT "
             + "mmod.tenantid, "
             + "mmod.memoid, "
             + "mmod.contactid, "
             + "mmod.memo, "
             + "mmod.revision "
             + "FROM "
             + schema.getLowerDbSchemaName()
             + "..MemoData AS mmod ";
   }
   return (S_sqlSelectMemoDataBuff);
 }
 public String getSqlSelectTagBuff() {
   if (S_sqlSelectTagBuff == null) {
     S_sqlSelectTagBuff =
         "SELECT "
             + "ctag.tenantid, "
             + "ctag.id, "
             + "ctag.name, "
             + "ctag.descr, "
             + "ctag.revision "
             + "FROM "
             + schema.getLowerDbSchemaName()
             + "..tag AS ctag ";
   }
   return (S_sqlSelectTagBuff);
 }
 public CFCrmMemoDataBuff lockBuff(CFSecurityAuthorization Authorization, CFCrmMemoDataPKey PKey) {
   final String S_ProcName = "lockBuff";
   if (!schema.isTransactionOpen()) {
     throw CFLib.getDefaultExceptionFactory()
         .newUsageException(getClass(), S_ProcName, "Transaction not open");
   }
   ResultSet resultSet = null;
   try {
     Connection cnx = schema.getCnx();
     long TenantId = PKey.getRequiredTenantId();
     long MemoId = PKey.getRequiredMemoId();
     String sql = "{ call sp_lock_memodata( ?, ?, ?, ?, ?" + ", " + "?" + ", " + "?" + " ) }";
     if (stmtLockBuffByPKey == null) {
       stmtLockBuffByPKey = cnx.prepareStatement(sql);
     }
     int argIdx = 1;
     stmtLockBuffByPKey.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecClusterId());
     stmtLockBuffByPKey.setString(
         argIdx++, (Authorization == null) ? "" : Authorization.getSecUserId().toString());
     stmtLockBuffByPKey.setString(
         argIdx++, (Authorization == null) ? "" : Authorization.getSecSessionId().toString());
     stmtLockBuffByPKey.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecClusterId());
     stmtLockBuffByPKey.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecTenantId());
     stmtLockBuffByPKey.setLong(argIdx++, TenantId);
     stmtLockBuffByPKey.setLong(argIdx++, MemoId);
     stmtLockBuffByPKey.execute();
     boolean moreResults = true;
     resultSet = null;
     while (resultSet == null) {
       try {
         moreResults = stmtLockBuffByPKey.getMoreResults();
       } catch (SQLException e) {
         throw CFLib.getDefaultExceptionFactory().newDbException(getClass(), S_ProcName, e);
       }
       if (moreResults) {
         try {
           resultSet = stmtLockBuffByPKey.getResultSet();
         } catch (SQLException e) {
         }
       } else if (-1 == stmtLockBuffByPKey.getUpdateCount()) {
         break;
       }
     }
     if ((resultSet != null) && resultSet.next()) {
       CFCrmMemoDataBuff buff = unpackMemoDataResultSetToBuff(resultSet);
       if (resultSet.next()) {
         resultSet.last();
         throw CFLib.getDefaultExceptionFactory()
             .newRuntimeException(
                 getClass(),
                 S_ProcName,
                 "Did not expect multi-record response, " + resultSet.getRow() + " rows selected");
       }
       return (buff);
     } else {
       return (null);
     }
   } catch (SQLException e) {
     throw CFLib.getDefaultExceptionFactory().newDbException(getClass(), S_ProcName, e);
   } finally {
     if (resultSet != null) {
       try {
         resultSet.close();
       } catch (SQLException e) {
       }
       resultSet = null;
     }
   }
 }
 public void createContactTag(CFSecurityAuthorization Authorization, CFCrmContactTagBuff Buff) {
   final String S_ProcName = "createContactTag";
   if (!schema.isTransactionOpen()) {
     throw CFLib.getDefaultExceptionFactory()
         .newUsageException(getClass(), S_ProcName, "Transaction not open");
   }
   ResultSet resultSet = null;
   try {
     long TenantId = Buff.getRequiredTenantId();
     long ContactId = Buff.getRequiredContactId();
     long TagId = Buff.getRequiredTagId();
     String TagValue = Buff.getRequiredTagValue();
     Connection cnx = schema.getCnx();
     String sql =
         "exec sp_create_ctc_tag ?, ?, ?, ?, ?, ?"
             + ", "
             + "?"
             + ", "
             + "?"
             + ", "
             + "?"
             + ", "
             + "?";
     if (stmtCreateByPKey == null) {
       stmtCreateByPKey = cnx.prepareStatement(sql);
     }
     int argIdx = 1;
     stmtCreateByPKey.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecClusterId());
     stmtCreateByPKey.setString(
         argIdx++, (Authorization == null) ? "" : Authorization.getSecUserId().toString());
     stmtCreateByPKey.setString(
         argIdx++, (Authorization == null) ? "" : Authorization.getSecSessionId().toString());
     stmtCreateByPKey.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecClusterId());
     stmtCreateByPKey.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecTenantId());
     stmtCreateByPKey.setString(argIdx++, "CTTG");
     stmtCreateByPKey.setLong(argIdx++, TenantId);
     stmtCreateByPKey.setLong(argIdx++, ContactId);
     stmtCreateByPKey.setLong(argIdx++, TagId);
     stmtCreateByPKey.setString(argIdx++, TagValue);
     stmtCreateByPKey.execute();
     boolean moreResults = true;
     resultSet = null;
     while (resultSet == null) {
       try {
         moreResults = stmtCreateByPKey.getMoreResults();
       } catch (SQLException e) {
         throw CFLib.getDefaultExceptionFactory().newDbException(getClass(), S_ProcName, e);
       }
       if (moreResults) {
         try {
           resultSet = stmtCreateByPKey.getResultSet();
         } catch (SQLException e) {
         }
       } else if (-1 == stmtCreateByPKey.getUpdateCount()) {
         break;
       }
     }
     if (resultSet == null) {
       throw CFLib.getDefaultExceptionFactory()
           .newNullArgumentException(getClass(), S_ProcName, 0, "resultSet");
     }
     if (resultSet.next()) {
       CFCrmContactTagBuff createdBuff = unpackContactTagResultSetToBuff(resultSet);
       if (resultSet.next()) {
         resultSet.last();
         throw CFLib.getDefaultExceptionFactory()
             .newRuntimeException(
                 getClass(),
                 S_ProcName,
                 "Did not expect multi-record response, " + resultSet.getRow() + " rows selected");
       }
       Buff.setRequiredTenantId(createdBuff.getRequiredTenantId());
       Buff.setRequiredContactId(createdBuff.getRequiredContactId());
       Buff.setRequiredTagId(createdBuff.getRequiredTagId());
       Buff.setRequiredTagValue(createdBuff.getRequiredTagValue());
       Buff.setRequiredRevision(createdBuff.getRequiredRevision());
       Buff.setCreatedByUserId(createdBuff.getCreatedByUserId());
       Buff.setCreatedAt(createdBuff.getCreatedAt());
       Buff.setUpdatedByUserId(createdBuff.getUpdatedByUserId());
       Buff.setUpdatedAt(createdBuff.getUpdatedAt());
     } else {
       throw CFLib.getDefaultExceptionFactory()
           .newRuntimeException(
               getClass(),
               S_ProcName,
               "Expected a single-record response, " + resultSet.getRow() + " rows selected");
     }
   } catch (SQLException e) {
     throw CFLib.getDefaultExceptionFactory().newDbException(getClass(), S_ProcName, e);
   } finally {
     if (resultSet != null) {
       try {
         resultSet.close();
       } catch (SQLException e) {
       }
       resultSet = null;
     }
   }
 }
  public void updateMemoData(CFSecurityAuthorization Authorization, CFCrmMemoDataBuff Buff) {
    final String S_ProcName = "updateMemoData";
    if ("MMOD".equals(Buff.getClassCode())
        && (!schema.isTenantUser(Authorization, Buff.getRequiredTenantId(), "UpdateMemoData"))) {
      throw CFLib.getDefaultExceptionFactory()
          .newRuntimeException(
              getClass(),
              S_ProcName,
              "Permission denied -- User not part of TSecGroup UpdateMemoData");
    }
    try {
      Connection cnx = schema.getCnx();
      long TenantId = Buff.getRequiredTenantId();
      long MemoId = Buff.getRequiredMemoId();
      long ContactId = Buff.getRequiredContactId();
      String Memo = Buff.getRequiredMemo();
      int Revision = Buff.getRequiredRevision();
      CFCrmMemoDataPKey pkey = schema.getFactoryMemoData().newPKey();
      pkey.setRequiredTenantId(Buff.getRequiredTenantId());
      pkey.setRequiredMemoId(Buff.getRequiredMemoId());
      CFCrmMemoDataBuff readBuff = lockBuff(Authorization, pkey);
      if (readBuff == null) {
        throw CFLib.getDefaultExceptionFactory()
            .newStaleCacheDetectedException(
                getClass(),
                S_ProcName,
                "Attempted to update record which could not be locked/found",
                schema.getLowerDbSchemaName() + "..memodata",
                pkey);
      }
      int oldRevision = readBuff.getRequiredRevision();
      if (oldRevision != Revision) {
        throw CFLib.getDefaultExceptionFactory()
            .newCollisionDetectedException(getClass(), S_ProcName, Buff);
      }
      int newRevision = Revision + 1;
      String sql =
          "UPDATE "
              + schema.getLowerDbSchemaName()
              + "..MemoData "
              + "SET "
              + "tenantid = ?"
              + ", "
              + "memoid = ?"
              + ", "
              + "contactid = ?"
              + ", "
              + "memo = ?"
              + ", "
              + "updatedby = ?, "
              + "updatedat = sysdatetime() "
              + ", revision = ? "
              + " WHERE "
              + "tenantid = ? "
              + "AND "
              + "memoid = ? "
              + "AND "
              + "revision = ? ";
      if (stmtUpdateByPKey == null) {
        stmtUpdateByPKey = cnx.prepareStatement(sql);
      }
      int argIdx = 1;

      stmtUpdateByPKey.setLong(argIdx++, TenantId);
      stmtUpdateByPKey.setLong(argIdx++, MemoId);
      stmtUpdateByPKey.setLong(argIdx++, ContactId);
      stmtUpdateByPKey.setString(argIdx++, Memo);
      stmtUpdateByPKey.setString(argIdx++, Authorization.getSecUserId().toString());
      stmtUpdateByPKey.setInt(argIdx++, newRevision);
      stmtUpdateByPKey.setLong(argIdx++, TenantId);
      stmtUpdateByPKey.setLong(argIdx++, MemoId);
      stmtUpdateByPKey.setInt(argIdx++, Revision);
      ;
      int rowsAffected = stmtUpdateByPKey.executeUpdate();
      if (rowsAffected != 1) {
        throw CFLib.getDefaultExceptionFactory()
            .newRuntimeException(
                getClass(),
                S_ProcName,
                "Expected 1 row to be affected by update, not " + rowsAffected);
      }
      Buff.setRequiredRevision(newRevision);
      String sqlAuditUpdated =
          "INSERT INTO "
              + schema.getLowerDbSchemaName()
              + "..MemoData_h( auditclusterid, "
              + " auditsessionid, "
              + " auditstamp"
              + ", "
              + "tenantid"
              + ", "
              + "memoid"
              + ", "
              + "contactid"
              + ", "
              + "memo"
              + ", "
              + " revision, "
              + " auditaction ) "
              + "SELECT ?, ?, sysdatetime()"
              + ", "
              + "mmod.tenantid"
              + ", "
              + "mmod.memoid"
              + ", "
              + "mmod.contactid"
              + ", "
              + "mmod.memo"
              + ", "
              + " mmod.revision, "
              + " 1 "
              + "FROM "
              + schema.getLowerDbSchemaName()
              + "..MemoData AS mmod "
              + " WHERE "
              + "mmod.tenantid = ? "
              + "AND mmod.memoid = ? ";
      if (stmtAuditUpdatedByPKey == null) {
        stmtAuditUpdatedByPKey = cnx.prepareStatement(sqlAuditUpdated);
      }
      argIdx = 1;
      stmtAuditUpdatedByPKey.setLong(argIdx++, Authorization.getSecClusterId());
      stmtAuditUpdatedByPKey.setString(argIdx++, Authorization.getSecSessionId().toString());
      stmtAuditUpdatedByPKey.setLong(argIdx++, TenantId);
      stmtAuditUpdatedByPKey.setLong(argIdx++, MemoId);
      int rowsAudited = stmtAuditUpdatedByPKey.executeUpdate();
      if (rowsAudited != 1) {
        throw CFLib.getDefaultExceptionFactory()
            .newRuntimeException(
                getClass(),
                S_ProcName,
                "Expected 1 row to be affected by audit via insert-selected, not " + rowsAffected);
      }
    } catch (SQLException e) {
      throw CFLib.getDefaultExceptionFactory().newDbException(getClass(), S_ProcName, e);
    }
  }
 public void updateTag(CFSecurityAuthorization Authorization, CFCrmTagBuff Buff) {
   final String S_ProcName = "updateTag";
   ResultSet resultSet = null;
   try {
     long TenantId = Buff.getRequiredTenantId();
     long Id = Buff.getRequiredId();
     String Name = Buff.getRequiredName();
     String Descr = Buff.getOptionalDescr();
     int Revision = Buff.getRequiredRevision();
     Connection cnx = schema.getCnx();
     String sql =
         "exec sp_update_tag ?, ?, ?, ?, ?, ?"
             + ", "
             + "?"
             + ", "
             + "?"
             + ", "
             + "?"
             + ", "
             + "?"
             + ", "
             + "?";
     if (stmtUpdateByPKey == null) {
       stmtUpdateByPKey = cnx.prepareStatement(sql);
     }
     int argIdx = 1;
     stmtUpdateByPKey.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecClusterId());
     stmtUpdateByPKey.setString(
         argIdx++, (Authorization == null) ? "" : Authorization.getSecUserId().toString());
     stmtUpdateByPKey.setString(
         argIdx++, (Authorization == null) ? "" : Authorization.getSecSessionId().toString());
     stmtUpdateByPKey.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecClusterId());
     stmtUpdateByPKey.setLong(
         argIdx++, (Authorization == null) ? 0 : Authorization.getSecTenantId());
     stmtUpdateByPKey.setString(argIdx++, "CTAG");
     stmtUpdateByPKey.setLong(argIdx++, TenantId);
     stmtUpdateByPKey.setLong(argIdx++, Id);
     stmtUpdateByPKey.setString(argIdx++, Name);
     if (Descr != null) {
       stmtUpdateByPKey.setString(argIdx++, Descr);
     } else {
       stmtUpdateByPKey.setNull(argIdx++, java.sql.Types.VARCHAR);
     }
     stmtUpdateByPKey.setInt(argIdx++, Revision);
     stmtUpdateByPKey.execute();
     boolean moreResults = true;
     resultSet = null;
     while (resultSet == null) {
       try {
         moreResults = stmtUpdateByPKey.getMoreResults();
       } catch (SQLException e) {
         throw CFLib.getDefaultExceptionFactory().newDbException(getClass(), S_ProcName, e);
       }
       if (moreResults) {
         try {
           resultSet = stmtUpdateByPKey.getResultSet();
         } catch (SQLException e) {
         }
       } else if (-1 == stmtUpdateByPKey.getUpdateCount()) {
         break;
       }
     }
     if (resultSet == null) {
       throw CFLib.getDefaultExceptionFactory()
           .newNullArgumentException(getClass(), S_ProcName, 0, "resultSet");
     }
     if (resultSet.next()) {
       CFCrmTagBuff updatedBuff = unpackTagResultSetToBuff(resultSet);
       if (resultSet.next()) {
         resultSet.last();
         throw CFLib.getDefaultExceptionFactory()
             .newRuntimeException(
                 getClass(),
                 S_ProcName,
                 "Did not expect multi-record response, " + resultSet.getRow() + " rows selected");
       }
       Buff.setRequiredName(updatedBuff.getRequiredName());
       Buff.setOptionalDescr(updatedBuff.getOptionalDescr());
       Buff.setRequiredRevision(updatedBuff.getRequiredRevision());
     } else {
       throw CFLib.getDefaultExceptionFactory()
           .newRuntimeException(
               getClass(),
               S_ProcName,
               "Expected a single-record response, " + resultSet.getRow() + " rows selected");
     }
   } catch (SQLException e) {
     throw CFLib.getDefaultExceptionFactory().newDbException(getClass(), S_ProcName, e);
   } finally {
     if (resultSet != null) {
       try {
         resultSet.close();
       } catch (SQLException e) {
       }
       resultSet = null;
     }
   }
 }
  public void createMemoData(CFSecurityAuthorization Authorization, CFCrmMemoDataBuff Buff) {
    final String S_ProcName = "createMemoData";
    if ("MMOD".equals(Buff.getClassCode())
        && (!schema.isTenantUser(Authorization, Buff.getRequiredTenantId(), "CreateMemoData"))) {
      throw CFLib.getDefaultExceptionFactory()
          .newRuntimeException(
              getClass(),
              S_ProcName,
              "Permission denied -- User not part of TSecGroup CreateMemoData");
    }
    if (!schema.isTransactionOpen()) {
      throw CFLib.getDefaultExceptionFactory()
          .newUsageException(getClass(), S_ProcName, "Transaction not open");
    }
    try {
      Connection cnx = schema.getCnx();
      long TenantId = Buff.getRequiredTenantId();
      long MemoId = Buff.getRequiredMemoId();
      long ContactId = Buff.getRequiredContactId();
      String Memo = Buff.getRequiredMemo();
      int Revision = 1;
      String sql =
          "INSERT INTO "
              + schema.getLowerDbSchemaName()
              + "..MemoData( "
              + "forcesynclock, "
              + "createdby, "
              + "createdat, "
              + "updatedby, "
              + "updatedat, "
              + "tenantid, "
              + "memoid, "
              + "contactid, "
              + "memo"
              + ", revision )"
              + "VALUES ( "
              + "0, "
              + " ?, "
              + " getdate(), "
              + " ?, "
              + " getdate(), "
              + "?"
              + ", "
              + "?"
              + ", "
              + "?"
              + ", "
              + "?"
              + ", "
              + "1 )";
      if (stmtCreateByPKey == null) {
        stmtCreateByPKey = cnx.prepareStatement(sql);
      }
      int argIdx = 1;
      stmtCreateByPKey.setString(argIdx++, Authorization.getSecUserId().toString());
      stmtCreateByPKey.setString(argIdx++, Authorization.getSecUserId().toString());
      stmtCreateByPKey.setLong(argIdx++, TenantId);
      stmtCreateByPKey.setLong(argIdx++, MemoId);
      stmtCreateByPKey.setLong(argIdx++, ContactId);
      stmtCreateByPKey.setString(argIdx++, Memo);
      int rowsAffected = stmtCreateByPKey.executeUpdate();
      if (rowsAffected != 1) {
        throw CFLib.getDefaultExceptionFactory()
            .newRuntimeException(
                getClass(),
                S_ProcName,
                "Expected 1 row to be affected by insert, not " + rowsAffected);
      }
      Buff.setRequiredRevision(Revision);
      String sqlAuditCreated =
          "INSERT INTO "
              + schema.getLowerDbSchemaName()
              + "..MemoData_h( auditclusterid, "
              + " auditsessionid, "
              + " auditstamp"
              + ", "
              + "tenantid"
              + ", "
              + "memoid"
              + ", "
              + "contactid"
              + ", "
              + "memo"
              + ", "
              + " revision, "
              + " auditaction ) "
              + "SELECT ?, ?, sysdatetime()"
              + ", "
              + "mmod.tenantid"
              + ", "
              + "mmod.memoid"
              + ", "
              + "mmod.contactid"
              + ", "
              + "mmod.memo"
              + ", "
              + " mmod.revision, "
              + " 0"
              + "FROM "
              + schema.getLowerDbSchemaName()
              + "..MemoData AS mmod "
              + " WHERE "
              + "mmod.tenantid = ? "
              + "AND mmod.memoid = ? ";
      if (stmtAuditCreatedByPKey == null) {
        stmtAuditCreatedByPKey = cnx.prepareStatement(sqlAuditCreated);
      }
      argIdx = 1;
      stmtAuditCreatedByPKey.setLong(argIdx++, Authorization.getSecClusterId());
      stmtAuditCreatedByPKey.setString(argIdx++, Authorization.getSecSessionId().toString());
      stmtAuditCreatedByPKey.setLong(argIdx++, TenantId);
      stmtAuditCreatedByPKey.setLong(argIdx++, MemoId);
      int rowsAudited = stmtAuditCreatedByPKey.executeUpdate();
      if (rowsAudited != 1) {
        throw CFLib.getDefaultExceptionFactory()
            .newRuntimeException(
                getClass(),
                S_ProcName,
                "Expected 1 row to be affected by audit via insert-selected, not " + rowsAffected);
      }

    } catch (SQLException e) {
      throw CFLib.getDefaultExceptionFactory().newDbException(getClass(), S_ProcName, e);
    }
  }