docs: public DataRecord getDataRecord(boolean bCacheData, int iFieldsTypes)
      {
          if ((this.getCurrentTable().getRecord().getEditMode() != Constants.EDIT_IN_PROGRESS)
              && (this.getCurrentTable().getRecord().getEditMode() != Constants.EDIT_CURRENT))
                  return null;
          DataRecord dataRecord = new DataRecord(null);
          try   {
              dataRecord.setHandle(this.getHandle(DBConstants.BOOKMARK_HANDLE), DBConstants.BOOKMARK_HANDLE);
              dataRecord.setHandle(this.getHandle(DBConstants.DATA_SOURCE_HANDLE), DBConstants.DATA_SOURCE_HANDLE);
              dataRecord.setHandle(this.getHandle(DBConstants.OBJECT_ID_HANDLE), DBConstants.OBJECT_ID_HANDLE);
              dataRecord.setHandle(this.getHandle(DBConstants.OBJECT_SOURCE_HANDLE), DBConstants.OBJECT_SOURCE_HANDLE);
          } catch (DBException ex)    {
              dataRecord.free();
              dataRecord = null;
          }
          if (dataRecord != null) if (bCacheData)
          {
              BaseBuffer buffer = new VectorBuffer(null, iFieldsTypes);
              buffer.fieldsToBuffer(this.getCurrentTable().getRecord(), iFieldsTypes);
              dataRecord.setBuffer(buffer);
          }
          return dataRecord;
      }