예제 #1
0
파일: BUSBase.cs 프로젝트: Lonfar/PURCHASE
        /// <summary>
        /// Generate sql sentence
        /// </summary>
        /// <param name="pkValue"></param>
        /// <returns></returns>
        /// 业务主键验证,sql
        private string GenerateSQLToCheckBUSPK(string tableName, DataRow dr, string busPKName, string deletedParas)
        {
            string sql    = "";
            string errMsg = "";

            if (busPKName == "")
            {
                return("");
            }
            sql  = ConstructDMLSql.ConstructCheckBusPKSql(tableName, dr, busPKName);
            sql += deletedParas;
            if (sql == "")
            {
                return(BUSDATERR_SQL);
            }
            try
            {
                DataTable dt = _da.GetDataTable(sql);
                if ((int)dt.Rows[0][0] == 0)
                {
                    errMsg = "";
                }
                else
                {
                    errMsg = BUSDATERR_PK;
                }
            }
            catch (SqlException e)
            {
                errMsg = BUSDATERR_SQL;
            }
            return(errMsg);
        }
예제 #2
0
파일: DAEBase.cs 프로젝트: Lonfar/PURCHASE
        /// <summary>
        /// if business pk exists then return the  physical pk of this table,else return "";
        /// </summary>
        /// <param name="pkValue"></param>
        /// <returns></returns>
        /// 业务主键验证,以确认新增记录应该是insert还是update
        private string CheckBUSPKExistForInsert(string tableName, DataRow dr, string busPKName, string pkFieldName, out string pkValue)
        {
            string sql    = "";
            string errMsg = "";

            pkValue = "";
            sql     = ConstructDMLSql.ConstructCheckBusPKSql(tableName, dr, busPKName, pkFieldName);
            if (sql == "")
            {
                return(ERR_DAE_SAVE_PKCHECK);
            }
            try
            {
                DataTable dt = _da.GetDataTable(sql);
                if (dt.Rows.Count == 0)
                {
                    pkValue = "";
                }
                else
                {
                    pkValue = dt.Rows[0][0].ToString();
                }
            }
            catch (SqlException e)
            {
                errMsg = GetDataBaseErrorsMessage(e);
            }
            return(errMsg);
        }
예제 #3
0
파일: DAEBase.cs 프로젝트: Lonfar/PURCHASE
        public virtual string Delete(ArrayList alDeleteData)
        {
            string sqlDelete = "SET   XACT_ABORT   ON begin TRANSACTION  Deletetran ";
            string errMsg    = "";

            for (int i = 0; i < alDeleteData.Count; i++)
            {
                string _tbname      = ((IDeleteEventDate)alDeleteData[i]).TableName;
                string _pkFieldName = ((IDeleteEventDate)alDeleteData[i]).PkName;
                string pkValue      = ((IDeleteEventDate)alDeleteData[i]).PkValue;
                sqlDelete  = sqlDelete + ConstructDMLSql.ConstructDeleteSql(_tbname, _pkFieldName, pkValue) + ";";
                sqlDelete += "   IF @@ERROR<>0 begin  ROLLBACK TRANSACTION  Deletetran return end  ";
            }
            sqlDelete += " else COMMIT TRANSACTION Deletetran ";
            if (sqlDelete.Trim().Length == 0)
            {
                return(ERR_DAE_DELETE);
            }
            try
            {
                errMsg = _da.ExecuteDMLSQL(sqlDelete);
            }
            catch (System.Data.SqlClient.SqlException e)
            {
                return(GetDataBaseErrorsMessage(e));
            }
            return(errMsg);
        }
예제 #4
0
파일: DAEBase.cs 프로젝트: Lonfar/PURCHASE
        private string SaveRowsData(string tableName, DataRow dr, string pkName, string busPKName)
        {
            string sql     = "";
            string errMsg  = "";
            string pkValue = "";

            if (dr.RowState == DataRowState.Deleted)
            {
                dr.RejectChanges();
                sql = ConstructDMLSql.ConstructDeleteSql(tableName, pkName, dr[pkName].ToString());
            }
            else
            {
                if (dr["RowStatus"].ToString().ToUpper() == "NEW")
                {
                    sql = ConstructDMLSql.ConstructInsertSql(tableName, dr);
                }
                else if (dr["RowStatus"].ToString().ToUpper() == "EDIT")
                {
                    if (CheckTimeStampExistForUpdate("", ""))
                    {
                        sql = ConstructDMLSql.ConstructUpdateSql(tableName, dr, pkName, pkValue);
                    }
                }
            }
            try
            {
                errMsg += _da.ExecuteDMLSQL(sql);
                dr.AcceptChanges();
                if (dr["RowStatus"].ToString().ToUpper() == "NEW" && errMsg.Trim().Length == 0)
                {
                    dr["RowStatus"] = "EDIT";
                }
            }
            catch (SqlException e)
            {
                errMsg += GetDataBaseErrorsMessage(e);
            }
            return(errMsg);
        }