docs: public boolean setDataRecord(DataRecord dataRecord)
      {
          if (dataRecord.getHandle(DBConstants.DATA_SOURCE_HANDLE) == null)
          {   // No data source handle, mean you may need a table specified.
              String strObjectSource = (String)dataRecord.getHandle(DBConstants.OBJECT_SOURCE_HANDLE);
              if (strObjectSource != null)
              {
                  int iLastColon = strObjectSource.lastIndexOf(BaseTable.HANDLE_SEPARATOR);
                  if ((iLastColon > 0) && (iLastColon < strObjectSource.length() - 1))
                  {
                      String strTableName = strObjectSource.substring(iLastColon + 1);
                      Iterator<BaseTable> iterator = this.getTables();
                      while (iterator.hasNext())
                      {
                          BaseTable table = iterator.next();
                          if (strTableName.equals(table.getRecord().getTableNames(false)))
                              this.setCurrentTable(table);
                      }
                  }
              }
          }
          else if (dataRecord.getHandle(DBConstants.DATA_SOURCE_HANDLE) instanceof FullDataSource)
          {   // Always
              this.setCurrentTable(((FullDataSource)dataRecord.getHandle(DBConstants.DATA_SOURCE_HANDLE)).getTable());
          }
          boolean bSuccess = super.setDataRecord(dataRecord);
          this.syncCurrentToBase();
          return bSuccess;
      }