<?php
/**
* データソースを定義するインタフェース
*
* PHP version 5
*
* @package    interfaces
* @author     stk2k <stk2k@sazysoft.com>
* @copyright  2008 stk2k, sazysoft
*/

interface IDataSource extends IObject
{
	/*
	 * データソース名を取得
	 */
	public function getDataSourceName();

	/**
	 *  データソースを初期化
	 */
	public function init( Config $config );

	/*
	 *    接続済みか
	 */
	public function isConnected();

	/*
	 *    バックエンドを取得
	 */
	public function getBackend();

	/*
	 *    接続先サーバを取得
	 */
	public function getServer();

	/*
	 *    接続ユーザ名を取得
	 */
	public function getUser();

	/*
	 *    接続パスワードを取得
	 */
	public function getPassword();

	/*
	 *    接続先データベース名を取得
	 */
	public function getDatabaseName();

	/*
	 *    接続時の文字コードを取得
	 */
	public function getCharacterSet();

	/*
	 *    コミットを発行
	 */
	public function commit();

	/*
	 *    接続
	 */
	public function connect( String $backend, String $user, String $password, String $server, String $db_name );

	/*
	 *    デフォルトの接続先に接続
	 */
	public function connectDefault( $db_name_enabled = TRUE );

	/*
	 *    接続を閉じる
	 */
	public function disconnect();

	/*
	 *    SQLをそのまま発行（結果セットあり）
	 */
	public function query( String $sql );

	/*
	 *    SQLをそのまま発行（結果セットなし）
	 */
	public function execute( String $sql );

	/*
	 *    プリペアドステートメントの発行
	 */
	public function prepareExecute( String $sql, Vector $params = NULL );

	/*
	 *    フェッチ処理（連想配列で返却）
	 */
	public function fetchAssoc( $result );

	/*
	 *    フェッチ処理（配列で返却）
	 */
	public function fetchArray( $result );

	/*
	 *   最後に実行されたAUTO_INCREMENT値を取得
	 */
	public function getLastInsertId();

}

return __FILE__;