$keyProperty parameter.  The value at 
	 * each key will be the value of the property specified  in the 
	 * $valueProperty parameter.  If $valueProperty is 
	 * null, the entire result object will be entered.
	 * @param IDbConnection database connection to execute the query
	 * @param mixed The object used to set the parameters in the SQL.
	 * @param string The property of the result object to be used as the key.
	 * @param string The property of the result object to be used as the value (or null)
	 * @return TMap A map of object containing the rows keyed by $keyProperty.
	 */
	public function executeQueryForMap($connection, $parameter, 
								$keyProperty, $valueProperty=null);
	/**
	 * Execute an update statement. Also used for delete statement. Return the 
	 * number of row effected.
	 * @param IDbConnection database connection to execute the query
	 * @param mixed The object used to set the parameters in the SQL.
	 * @return integer The number of row effected.
	 */
	public function executeUpdate($connection, $parameter);
	/**
	 * Executes the SQL and retuns a subset of the rows selected.
	 * @param IDbConnection database connection to execute the query
	 * @param mixed The object used to set the parameters in the SQL.
	 * @param TList A list to populate the result with.
	 * @param integer The number of rows to skip over.
	 * @param integer The maximum number of rows to return.
	 * @return TList A TList of result objects.
	 */
	public function executeQueryForList($connection,
								$parameter, $result, $skip=-1, $max=-1);
	/**
	 * Executes an SQL statement that returns a single row as an object 
	 * of the type of the $result passed in as a parameter.
	 * @param IDbConnection database connection to execute the query
	 * @param mixed The object used to set the parameters in the SQL.
	 * @param object The result object.
	 * @return object result.
	 */
	public function executeQueryForObject($connection,
								$parameter, $result);
}
?>