using System.Data;
using System.Data.OracleClient;
using WX.CRM.Model;
using WX.CRM.Model.Enum;
namespace WX.CRM.DAL.Base
{
public class SEQUENCES_DAL
{
public decimal Seq_base_get(PKIDType ntype = PKIDType.SmallTable, string conn = null)
{
if (ConStringHelper.DatabaseType == ConStringHelper.DatabaseTypeNum.SQLSERVER)//SQLServerID是自增的不需要函数返回ID
{
using (var db = new Model.EntitySync.Entities())
{
var seed = new Model.EntitySync.BASE_SEED();
db.BASE_SEED.Add(seed);
db.SaveChanges();
return seed.PKID;
}
}
return ntype == PKIDType.SmallTable ? Seq_smallid_get(conn) : Seq_largeid_get(conn);
}
decimal Seq_smallid_get(string conn = null)
{
OracleParameter[] p = { new OracleParameter("pkid", OracleType.Number) };
p[0].Direction = ParameterDirection.ReturnValue;
if (string.IsNullOrEmpty(conn))
OracleHelper.ExecuteNonQuery(CommandType.StoredProcedure, "PACK_BASE.Seq_smallid_get", p);
else
OracleHelper.ExecuteNonQuery(conn, CommandType.StoredProcedure, "PACK_BASE.Seq_smallid_get", p);
return decimal.Parse(p[0].Value.ToString());
}
decimal Seq_largeid_get(string conn = null)
{
OracleParameter[] p = { new OracleParameter("pkid", OracleType.Number) };
p[0].Direction = ParameterDirection.ReturnValue;
if (string.IsNullOrEmpty(conn))
OracleHelper.ExecuteNonQuery(CommandType.StoredProcedure, "PACK_BASE.Seq_largeid_get", p);
else
OracleHelper.ExecuteNonQuery(conn, CommandType.StoredProcedure, "PACK_BASE.Seq_largeid_get", p);
return decimal.Parse(p[0].Value.ToString());
}
///
/// 统一从合规表中出的ID
///
///
///
public decimal Seq_master_get()
{
OracleParameter[] p = { new OracleParameter("pkid", OracleType.Number) };
p[0].Direction = ParameterDirection.ReturnValue;
OracleHelper.ExecuteNonQuery(ConStringHelper.HGCrmConn, CommandType.StoredProcedure, "PACK_BASE.Seq_master_get", p);
return decimal.Parse(p[0].Value.ToString());
}
}
}