public function execute()
    {
        if ($this->adapter === null) {
            $msg = __METHOD__ . ": Error, prior to use execute method you must provide a valid database adapter. See Select::setDbAdapter() method.";
            throw new Exception\InvalidUsageException($msg);
        }
        $sql = new Sql($this->adapter);
        $sql_string = $sql->getSqlStringForSqlObject($this);

        //return $this->adapter->createStatement($sql_string)->execute();
        //return $this->adapter->query($sql_string, Adapter::QUERY_MODE_EXECUTE);
        $result = $this->adapter->getDriver()->getConnection()->execute($sql_string);
        $resultset = new ResultSet();
        $resultset->initialize($result);
        return $resultset;
    }