319 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			319 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | ||
| using System.Collections.Generic;
 | ||
| using System.Text;
 | ||
| //using System.Data.OracleClient;
 | ||
| using System.Data.SqlClient;
 | ||
| using  System.Data;
 | ||
| using System.Data.Common;
 | ||
| using DeiNiu.Utils;
 | ||
|  
 | ||
| using System.Data.OleDb;
 | ||
|  
 | ||
| namespace DeiNiu.Data.BaseObject
 | ||
| {
 | ||
|     [Serializable]
 | ||
|     public class BaseModel_Imp : BaseOperModel_Imp
 | ||
|     {
 | ||
|         
 | ||
|         protected String _strSql = "";
 | ||
|         protected int _op_flag;
 | ||
|         protected int _cust_op_flag;
 | ||
|         protected BaseModel modelObj;
 | ||
|         protected int _rownumStart;
 | ||
|         protected int _rownumEnd;
 | ||
|         protected int _totalCount;
 | ||
|         internal SqlConnection _Conn = null;
 | ||
|         protected internal int Add(BaseModel obj)
 | ||
|         {
 | ||
|             modelObj = obj;
 | ||
|             _op_flag = (int)op_flag.add;
 | ||
|             return ExecuteNoneQuery();
 | ||
| 
 | ||
|         }
 | ||
|         protected internal int Update(BaseModel obj)
 | ||
|         {
 | ||
|             modelObj = obj;
 | ||
|             _op_flag = (int)op_flag.update;
 | ||
|             return ExecuteNoneQuery();
 | ||
|         }
 | ||
|         protected internal int Delete(BaseModel obj)
 | ||
|         {
 | ||
|             modelObj = obj;
 | ||
|             _op_flag = (int)op_flag.delete;
 | ||
|             return ExecuteNoneQuery();
 | ||
|         }
 | ||
|         protected internal DataSet Query(BaseModel exampleObj)
 | ||
|         {
 | ||
| 
 | ||
|             modelObj = exampleObj;
 | ||
|             _op_flag = (int)op_flag.queryExample;
 | ||
|             return ExecuteDsQuery();
 | ||
| 
 | ||
| 
 | ||
|         }
 | ||
|         protected internal DataSet QueryActived()
 | ||
|         {
 | ||
|             _op_flag = (int)op_flag.queryActived;
 | ||
|             return ExecuteDsQuery();
 | ||
|         }
 | ||
|         public DataSet QueryCount()
 | ||
|         {
 | ||
|             _op_flag = (int)op_flag.getCount;
 | ||
|             return ExecuteDsQuery();
 | ||
| 
 | ||
|         }
 | ||
|         protected internal DataSet Query()
 | ||
|         {
 | ||
| 
 | ||
|             _op_flag = (int)op_flag.queryAll;
 | ||
|             return ExecuteDsQuery();
 | ||
| 
 | ||
|         }
 | ||
|         protected internal DataSet CustQuery(String strSql)
 | ||
|         {
 | ||
|             _strSql = strSql;
 | ||
|             return new Execution(_strSql).getData();
 | ||
|         }
 | ||
|         //protected internal DataSet CustQuery(String strSql, SqlConnection conn)
 | ||
|         //{
 | ||
|         //    _strSql = strSql;
 | ||
|         //    return new Execution(_strSql, conn).getData();
 | ||
|         //}
 | ||
| 
 | ||
|         protected internal DataSet CustQuery(BaseModel exampleObj)
 | ||
|         {
 | ||
|             modelObj = exampleObj;
 | ||
|             _cust_op_flag = exampleObj.custOperFlag;
 | ||
|             return ExecuteDsQuery();
 | ||
|         }
 | ||
| 
 | ||
|         protected internal int CustOper(BaseModel exampleObj)
 | ||
|         {
 | ||
|             modelObj = exampleObj;
 | ||
|             _cust_op_flag = exampleObj.custOperFlag;
 | ||
|             return ExecuteNoneQuery();
 | ||
|         }
 | ||
| 
 | ||
|         //it must not be overrided       
 | ||
|         internal void getModel(BaseModel obj)
 | ||
|         {
 | ||
|             modelObj = obj;
 | ||
|             if (obj.custOperFlag != 0) //  customzation method
 | ||
|             {
 | ||
|                 _cust_op_flag = obj.custOperFlag;
 | ||
|             }
 | ||
|             else
 | ||
|             {
 | ||
|                 _op_flag = (int)op_flag.getObj;   //to get the object by key word
 | ||
|             }
 | ||
| 
 | ||
|            DataTable dt = ExecuteDsQuery().Tables[0];
 | ||
|            foreach (DataRow dr in dt.Rows)
 | ||
|            {
 | ||
|                getModel(obj, dr);
 | ||
|                break;
 | ||
|            }
 | ||
|            // Assem_Model(ExecuteRdQuery(), obj);
 | ||
|         }
 | ||
|         internal void getModel(BaseModel obj,DataRow dr)
 | ||
|         {
 | ||
|             datarowToModel(dr, obj);
 | ||
|         }
 | ||
| 
 | ||
|         //to set object's attribute from ds.
 | ||
|         //it must be overrided  
 | ||
|         protected virtual void Assem_Model(SqlDataReader reader, BaseModel obj)
 | ||
|         {
 | ||
|             return;
 | ||
|         }
 | ||
|         protected virtual void datarowToModel(DataRow dr, BaseModel obj) { }
 | ||
|         /*
 | ||
|         protected virtual void CmdPrepare( OleDbCommand SqlCmd)
 | ||
|         {
 | ||
|             //SqlCmd.CommandText = "insert into a values(@a)";
 | ||
|             // SqlCmd.Parameters.Add("@a","a");
 | ||
|             return;
 | ||
|         }
 | ||
|          */
 | ||
|         protected virtual void CmdPrepare(SqlCommand sqlCmd)
 | ||
|         {
 | ||
|             //sqlCmd.CommandText = "insert into a values(@a)";
 | ||
|             // sqlCmd.Parameters.Add("@a","a");
 | ||
|             return;
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
|         /*
 | ||
|          private int ExecuteNoneQuery()
 | ||
|          {
 | ||
|              using (oledbExecution Exe = new oledbExecution())
 | ||
|              {
 | ||
|                  CmdPrepare(Exe.OleCmd);
 | ||
|                  this._cust_op_flag = 0;
 | ||
|                  this._op_flag = 0;
 | ||
|                  return Exe.Execute();
 | ||
|              }
 | ||
| 
 | ||
|          }
 | ||
| 
 | ||
|          private DataSet ExecuteDsQuery()
 | ||
|          {
 | ||
|              using (oledbExecution Exe = new oledbExecution())
 | ||
|              {
 | ||
|                  CmdPrepare(Exe.OleCmd);
 | ||
|                  this._cust_op_flag = 0;
 | ||
|                  this._op_flag = 0;
 | ||
|                  return Exe.getData();
 | ||
|              }
 | ||
|          }
 | ||
|          protected int getSequence(String SequenceName)
 | ||
|          {
 | ||
| 
 | ||
|              using (oledbExecution Exe = new oledbExecution())
 | ||
|              {
 | ||
|                  return Exe.getNextSeqValue(SequenceName); 
 | ||
|              }
 | ||
|          }
 | ||
|       
 | ||
| 
 | ||
|        * */
 | ||
|         private int ExecuteNoneQuery()
 | ||
|         {
 | ||
|             using (Execution Exe = new Execution(instance))
 | ||
|             {
 | ||
|                 CmdPrepare(Exe.SqlCmd);
 | ||
| 
 | ||
|                 if (Exe.SqlCmd.CommandText.Length == 0) return 0;
 | ||
|                 int returnValue = 0;
 | ||
|                 if (_op_flag == (int)op_flag.add)  //insert, to get pk.
 | ||
|                 {
 | ||
|                     modelObj.custOperFlag = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD><C6BB><EFBFBD>ѯ<EFBFBD><D1AF>־                     
 | ||
| 
 | ||
|                     modelObj.ID = Exe.Execute(true);
 | ||
|                     returnValue = modelObj.ID;
 | ||
|                     /*
 | ||
|                      Exe.Execute();
 | ||
|                      modelObj.ID=getPk();
 | ||
|                      returnValue = modelObj.ID;
 | ||
|                      */
 | ||
|                     //              getModel(modelObj);
 | ||
|                 }
 | ||
|                 else   //update
 | ||
|                 {
 | ||
|                     returnValue = Exe.Execute();
 | ||
|                 }
 | ||
|                 _cust_op_flag = 0;
 | ||
|                 _op_flag = 0;
 | ||
| 
 | ||
|                 return returnValue;
 | ||
| 
 | ||
| 
 | ||
|             }
 | ||
| 
 | ||
|         }
 | ||
| 
 | ||
|         private SqlDataReader ExecuteRdQuery()
 | ||
|         {
 | ||
|             using (Execution Exe = new Execution(instance))
 | ||
|             {
 | ||
|                 CmdPrepare(Exe.SqlCmd);
 | ||
|                 _cust_op_flag = 0;
 | ||
|                 _op_flag = 0;
 | ||
|                 return Exe.GetDataReader();
 | ||
|             }
 | ||
|         }
 | ||
|         private DataSet ExecuteDsQuery()
 | ||
|         {
 | ||
|             using (Execution Exe = new Execution(instance))
 | ||
|             {
 | ||
|                 CmdPrepare(Exe.SqlCmd);
 | ||
|                 this._cust_op_flag = 0;
 | ||
|                 this._op_flag = 0;
 | ||
|                 if (Exe.SqlCmd.CommandText.Length == 0) return null;
 | ||
|                 return Exe.getData();
 | ||
|             }
 | ||
|         }
 | ||
|         internal int getSequence(String SequenceName)
 | ||
|         {
 | ||
| 
 | ||
|             using (Execution Exe = new Execution(instance))
 | ||
|             {
 | ||
|                 return Exe.getNextSeqValue(SequenceName);
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
|         // protected  int getPk(SqlConnection conn)
 | ||
|         protected int getPk()
 | ||
|         {
 | ||
| 
 | ||
|             _op_flag = (int)op_flag.getPk;
 | ||
|             string tmp = ExecuteDsQuery().Tables[0].Rows[0][0].ToString();
 | ||
|             return tmp != string.Empty
 | ||
|                        ? Convert.ToInt32(tmp)
 | ||
|                        : 0;
 | ||
|             /*
 | ||
|         
 | ||
|                 string tmp = CustQuery("select Scope_Identity()",conn).Tables[0].Rows[0][0].ToString();
 | ||
|                 return tmp != string.Empty
 | ||
|                            ? Convert.ToInt32(tmp)
 | ||
|                            : 0; 
 | ||
|              */
 | ||
|              
 | ||
|         }
 | ||
| 
 | ||
|         internal string getDateTime()
 | ||
|         {
 | ||
|             using (Execution Exe = new Execution(instance))
 | ||
|             {
 | ||
|                 return Exe.getDateTime();
 | ||
|            }
 | ||
|             
 | ||
|              
 | ||
| 
 | ||
|         }
 | ||
| 
 | ||
|         protected object VerifyDbnull(object obj)
 | ||
|         {
 | ||
|             if (obj is string)
 | ||
|             {
 | ||
|                 return (string)obj == string.Empty ? DBNull.Value : obj;
 | ||
|             }
 | ||
|             return obj;
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
|         protected internal int rownumStart
 | ||
|         {
 | ||
|             get
 | ||
|             {
 | ||
|                 return _rownumStart;
 | ||
|             }
 | ||
|             set
 | ||
|             {
 | ||
|                 _rownumStart = value;
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
|         protected internal int rownumEnd
 | ||
|         {
 | ||
|             get
 | ||
|             {
 | ||
|                 return _rownumEnd;
 | ||
|             }
 | ||
|             set
 | ||
|             {
 | ||
|                 _rownumEnd = value;
 | ||
|             }
 | ||
|         }
 | ||
| 
 | ||
|       //  protected enumDbInstance _di = enumDbInstance.platForm;
 | ||
| 
 | ||
|         protected virtual enumDbInstance instance
 | ||
|         {
 | ||
|             get
 | ||
|             {
 | ||
|                 return enumDbInstance.platForm;
 | ||
|             }
 | ||
|         }
 | ||
|     }
 | ||
| } |