186 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			186 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Text;
 | |
| ¡¡
 | |
| using System.Data.SqlClient;
 | |
| using  System.Data;
 | |
| using System.Data.Common;
 | |
| using myLlog;
 | |
| using Tracen.Utils;
 | |
| using Tracen.Data.DataAccess;
 | |
| using System.Data.OleDb;
 | |
|  
 | |
| namespace Tracen.Data.BaseObject
 | |
| {
 | |
|     public class BaseModel_Imp  
 | |
|     {
 | |
|         protected String _strSql = "";       
 | |
|         protected int _op_flag;
 | |
|         protected int _cust_op_flag;
 | |
|         protected BaseModel ModelObj;
 | |
|         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();
 | |
|         }
 | |
| 
 | |
|         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(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
 | |
|             }
 | |
| 
 | |
|             Assem_Model(ExecuteRdQuery(),obj);
 | |
|         }
 | |
|        
 | |
| ¡¡
 | |
|         protected virtual void Assem_Model(SqlDataReader reader, BaseModel obj)
 | |
|         {
 | |
|             return;
 | |
|         }
 | |
| 
 | |
|      ¡¡
 | |
|         protected virtual void CmdPrepare(SqlCommand sqlCmd)
 | |
|         {
 | |
|             //sqlCmd.CommandText = "insert into a values(@a)";
 | |
|             // sqlCmd.Parameters.Add("@a","a");
 | |
|             return;
 | |
|         }
 | |
|         
 | |
| 
 | |
|     ¡¡
 | |
|         private int ExecuteNoneQuery()
 | |
|         {
 | |
|             using (Execution Exe = new Execution())
 | |
|             {
 | |
|                 CmdPrepare(Exe.SqlCmd);
 | |
|               
 | |
|                 if (Exe.SqlCmd.CommandText.Length == 0) return 0; 
 | |
|                 int affectrows = Exe.Execute();
 | |
|                 if (_op_flag == (int)op_flag.add) //È¡µÃpk
 | |
|                 {
 | |
|                     ModelObj.custOperFlag = 0;//Çåµô¿ÍÖÆ»¯²éѯ±êÖ¾
 | |
|                     ModelObj._id = getPk();
 | |
|   //              getModel(ModelObj);
 | |
|                 } 
 | |
|                 
 | |
|                   _cust_op_flag = 0; 
 | |
|                   _op_flag = 0;
 | |
|                     return affectrows;
 | |
|                 
 | |
|                   
 | |
|             }
 | |
| 
 | |
|         }
 | |
| 
 | |
|         private SqlDataReader ExecuteRdQuery()
 | |
|         {
 | |
|             using (Execution Exe = new Execution())
 | |
|             {
 | |
|                 CmdPrepare(Exe.SqlCmd);
 | |
|                 _cust_op_flag = 0;
 | |
|                 _op_flag = 0;
 | |
|                 return Exe.GetDataReader();
 | |
|             }
 | |
|         }
 | |
|         private DataSet ExecuteDsQuery()
 | |
|         {
 | |
|             using (Execution Exe = new Execution())
 | |
|             {
 | |
|                 CmdPrepare(Exe.SqlCmd);
 | |
|                 this._cust_op_flag = 0;
 | |
|                 this._op_flag = 0;
 | |
|                 if (Exe.SqlCmd.CommandText.Length == 0) return null;
 | |
|                 return Exe.getData();
 | |
|             }
 | |
|         }
 | |
|         protected int getSequence(String SequenceName)
 | |
|         {
 | |
| 
 | |
|             using (Execution Exe = new Execution())
 | |
|             {
 | |
|                 return Exe.getNextSeqValue(SequenceName);
 | |
|             }
 | |
|         }
 | |
|          
 | |
|         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;
 | |
|         }
 | |
| 
 | |
|         protected object VerifyDbnull(object obj )
 | |
|         {
 | |
|             if (obj is string)
 | |
|             {
 | |
|                return (string) obj == string.Empty ?  DBNull.Value  : obj;
 | |
|             }
 | |
|             return obj;
 | |
|         }
 | |
|     }
 | |
| } |