ZhiYeJianKang_PeiXun/cyqdata-master/DAL/MsSqlDal.cs
2025-02-20 15:41:53 +08:00

97 lines
3.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Data.Common;
using CYQ.Data.Cache;
using System.Reflection;
using System.IO;
namespace CYQ.Data
{
internal partial class MsSqlDal : DalBase
{
private DistributedCache _Cache = DistributedCache.Local;//Cache操作
public MsSqlDal(ConnObject co)
: base(co)
{ }
protected override void AddReturnPara()
{
AddParameters("ReturnValue", null, DbType.Int32, 32, ParameterDirection.ReturnValue);
}
internal override void AddCustomePara(string paraName, ParaType paraType, object value, string typeName)
{
if (Com.Parameters.Contains(paraName))
{
return;
}
switch (paraType)
{
case ParaType.OutPut:
case ParaType.ReturnValue:
case ParaType.Structured:
SqlParameter para = new SqlParameter();
para.ParameterName = paraName;
if (paraType == ParaType.Structured)
{
para.SqlDbType = SqlDbType.Structured;
para.TypeName = typeName;
para.Value = value;
}
else if (paraType == ParaType.OutPut)
{
para.SqlDbType = SqlDbType.NVarChar;
para.Size = 2000;
para.Direction = ParameterDirection.Output;
}
else
{
para.SqlDbType = SqlDbType.Int;
para.Direction = ParameterDirection.ReturnValue;
}
Com.Parameters.Add(para);
break;
}
}
protected override DbProviderFactory GetFactory()
{
return SqlClientFactory.Instance;//发布到Linux 发现为null查了半天发现是发布模式问题【可移值该选项不支持】=》Linux x64
}
protected override bool IsExistsDbName(string dbName)
{
try
{
IsRecordDebugInfo = false || AppDebug.IsContainSysSql;
bool result = ExeScalar("select 1 from master..sysdatabases where [name]='" + dbName + "'", false) != null;
IsRecordDebugInfo = true;
return result;
}
catch
{
return true;
}
}
//protected override string FormatConnString(string connString)
//{
// SqlConnectionStringBuilder sb = new SqlConnectionStringBuilder(connString);
// if (sb.Pooling && sb.MaxPoolSize == 100)
// {
// sb.MaxPoolSize = 512;
// }
// return connString;
//}
}
internal partial class MsSqlDal
{
protected override string GetUVPSql(string type)
{
bool for2000 = Version.StartsWith("08");
return @"Select o.name as TableName, p.value as Description from sysobjects o " + (for2000 ? "left join sysproperties p on p.id = o.id and smallid = 0" : "left join sys.extended_properties p on p.major_id = o.id and minor_id = 0")
+ " and p.name = 'MS_Description' where o.type = '" + type + "' AND o.name<>'dtproperties' AND o.name<>'sysdiagrams'" + (for2000 ? "" : " and category in(0,32)") + " order by o.name";
}
}
}