⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oraclefactory.cs

📁 抽象工厂的典型实现
💻 CS
字号:
/********************************************************************
	created:	2005/09/13
	created:	13:9:2005   10:37
	filename: 	C:\Working\Projects.2005\bizPatrol\bizPatrol.NET\DataAccess\OracleFactory.cs
	file path:	C:\Working\Projects.2005\bizPatrol\bizPatrol.NET\DataAccess
	file base:	OracleFactory
	file ext:	cs
	author:		David Q.
	
	purpose:	Concrete Factory for Oracle
*********************************************************************/

using System;
using System.Data;
using System.Data.Common;

#region 版权声明
///
/// 版权所有(C)2005,2006  作者:漆巧林。保留所有权利, davidqql@gmail.com, davidqql@hotmail.com
/// 
/// 作者不对本代码提供任何保证,因此,对于使用该代码带来的损害或者潜在的损害,作者不承担责任。
/// 在满足如下的条件下,你可以自由使用该代码:
/// 1. 非商业应用
/// 2. 保留本版权声明
/// 要进行商业应用,必须得到作者的书面许可。
/// 你可以修改和自由发布本代码,条件是保留前述的版权声明。
/// 
#endregion

namespace DataAccess
{
	/// <summary>
	/// OracleFactory: Oracle具体工厂
	/// </summary>
	public class OracleFactory : DbFactory
	{
		public OracleFactory() {}

		public override IDbConnection CreateConnection()
		{
			return new System.Data.OracleClient.OracleConnection();
		}
		public override IDbConnection CreateConnection(string connectionString)
		{
			return new System.Data.OracleClient.OracleConnection(connectionString);
		}

		public override IDbDataAdapter CreateAdapter()
		{
			return new System.Data.OracleClient.OracleDataAdapter();
		}
		public override IDbDataAdapter CreateAdapter(IDbCommand selectCommand)
		{
			return new System.Data.OracleClient.OracleDataAdapter((System.Data.OracleClient.OracleCommand)selectCommand);
		}
		public override IDbDataAdapter CreateAdapter(string selectCommandText, IDbConnection selectConnection)
		{
			return new System.Data.OracleClient.OracleDataAdapter(selectCommandText, (System.Data.OracleClient.OracleConnection)selectConnection);
		}
		public override IDbDataAdapter CreateAdapter(string selectCommandText, string selectConnectionString)
		{
			return new System.Data.OracleClient.OracleDataAdapter(selectCommandText, selectConnectionString);
		}

		public override IDbCommand CreateCommand()
		{
			return new System.Data.OracleClient.OracleCommand();
		}
		public override IDbCommand CreateCommand(string cmdText)
		{
			return new System.Data.OracleClient.OracleCommand(cmdText);
		}
		public override IDbCommand CreateCommand(string cmdText, IDbConnection connection)
		{
			return new System.Data.OracleClient.OracleCommand(cmdText, (System.Data.OracleClient.OracleConnection)connection);
		}
		public override IDbCommand CreateCommand(string cmdText, IDbConnection connection, IDbTransaction transaction)
		{
			return new System.Data.OracleClient.OracleCommand(cmdText, (System.Data.OracleClient.OracleConnection)connection, (System.Data.OracleClient.OracleTransaction)transaction);
		}

		public override DbCommandBuilder CreateCommandBuilder()
		{
			return new DataAccess.OracleCommandBuilder();
		}
		public override DbCommandBuilder CreateCommandBuilder(IDbDataAdapter adapter)
		{
			return new DataAccess.OracleCommandBuilder(adapter);
		}

		protected override void AppendItem(IDbCommand cmd, ConditionList.ConditionItem item, bool bFirst)
		{
			if(bFirst)
				cmd.CommandText += " WHERE";
			else
				cmd.CommandText += " AND";

			if(item.FieldValue is DBNull)
				cmd.CommandText += String.Format(" {0} IS NULL", item.FieldName);
			else if(item.Relation == '%')
				cmd.CommandText += String.Format(" {0} LIKE '%{1}%'", item.FieldName, item.FieldValue);
			else
			{
				IDbDataParameter param = cmd.CreateParameter();
				param.SourceColumn = item.FieldName;
				param.ParameterName = "p" + (nParam++);
				param.Value = item.FieldValue;
				cmd.CommandText += String.Format(" {0} {1} :{2}", item.FieldName, item.Relation, param.ParameterName);
				cmd.Parameters.Add(param);
			}
		}

		public override void AppendCommandCondition(IDbCommand cmd, string clause, string fieldName, String relation, object fieldValue)
		{
			IDbDataParameter param = cmd.CreateParameter();
			param.SourceColumn = fieldName;
			param.ParameterName = "p" + (nParam++);
			param.Value = fieldValue;
			cmd.CommandText += String.Format(" {0} {1} {2} :{3}", clause, fieldName, relation, param.ParameterName);
			cmd.Parameters.Add(param);
		}

		public override IDbCommand CreateIdentityGetter(string tableName)
		{
			throw new ApplicationException("Function Not Implemented");
		}

		public override IDbInitiationHelper CreateInitiationHelper( IDbConnection connection )
		{
			return new SqlInitiationHelper(connection);
		}

		public override IDbInitiationHelper CreateInitiationHelper( string connectionString )
		{
			return new SqlInitiationHelper(connectionString);
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -