前言:
框架的主要成长在CYQ.Xml名称空间下成长的较多,好多细节的修改,没写什么日记记录,所以本文介绍的内容相对较少。
下面就介绍下V4.0中有日志记录部分的更新。
本次版本升级记录:
2:MAction:开放DalType属性,允许获取当前操作的数据库类型
3:Pager:解决分页存储过程order by参数过长问题,参数加长
4:修正Pager的Access数据库分页,并使用3次top方式分页
5:修正bit类型对“1”的转换为true
6:修改自定义表语句查询无数据时,也返回表架构
7:Xml类里增加RSS功能
8:Proc 修正从sql切换到存储过程的bug
9:其它,随着秋色园一起成长优化的CYQ.Xml名称空间下的几个类。
以下对升级记录进行详解
一:Case语句的多数据库处理
示例代码:节选自秋色园
说明:
如果需要变成普通的语句,只需要把[#]替换掉即可。
二:MAction:开放DalType属性,允许获取当前操作的数据库类型
示例代码:
{
using (MAction action = new MAction(TableNames.Blog_Content))
{
switch (action.DalType)
{
case CYQ.Data.DAL.DalType.Access:
//do access something
break;
case CYQ.Data.DAL.DalType.Oracle:
//do Oracle something
break;
case CYQ.Data.DAL.DalType.Sql:
//do Sql something
break;
}
}
}}
}
三:Pager:解决分页存储过程order by参数过长问题,参数加长
框架内部提供的MSSQL的分页存储过程中,有一条原始的语句:cast(@OrderBy as nvarchar)
当order by 语句条件很复杂很长时,长度不够[默认好像是50个长度]将引发问题,因此,
框架内部长度改成400个长度如下:cast(@OrderBy as nvarchar(400))
如果遇到了,请注意一下。
四:修正Pager的Access数据库分页,并使用3次top方式分页
于是内部修正时使用了另两种分页语句:一种是not in分页,另一种是3次top。
在没有数据比较的情况下,使用了not in,并在秋色园中持续了一段时间。
前几天发现秋色园的分页速度有点慢,于是切到3次top查询分页,速度刷的一下上去了。
五:修正bit类型对“1”的转换为true
六:修改自定义表语句查询无数据时,也返回表架构
于是增加在查询失败或无数据时,自动填充返回的MDataTable,使之结构完整。
七:Xml类里增加RSS功能
示例代码:节选自秋色园-完整RSS处理逻辑

{
string cacheKey = "rss_" + DomainID;
object outXml = Cache.Get(cacheKey);
if (outXml != null)
{
return outXml.ToString();
}
else
{
Rss rss = new Rss();
MutilLanguage seoDoc = new MutilLanguage(MapPath(Config.GlobalSkinPath + IDPage.SiteTitle),true,false);
if (DomainID == 0)//系统Rss
{
rss.Set(seoDoc.Get(IDLang.sitetitle) + " - " + seoDoc.Get(IDLang.powerby), Config.HttpHost, seoDoc.Get(IDLang.description));
}
else//用户Rss
{
string title =GetLangText(IsUserLang,DomainUser.Get<string>(Users.SpaceName));
if (string.IsNullOrEmpty(title))
{
title = GetLangText(IsUserLang,DomainUser.Get<string>(Users.UserName));
}
rss.Set(title + " - " + seoDoc.Get(IDLang.sitename), Config.HttpHost + "/" + Domain, DomainUser.Get<string>(Users.SpaceIntro));
}
rss.SetImg(Config.HttpHost +Config.SystemTechSkinPath+"images/logo_"+seoDoc.LanKey.ToString().Substring(3)+".jpg", seoDoc.Get(IDLang.sitetitle) + " Logo", Config.HttpHost);
string sql = CustomSQL.Rss + (DomainID > 0 ? " and UserID=" + DomainID : "");
using (MProc proc = new MProc(sql))
{
rss.LoadData(proc.ExeMDataTable());
rss.SetMap(RssItemName.Title, null, Content.Title);
rss.SetMap(RssItemName.Link, Config.HttpHost + "/{0}/article-detail-{1}", Users.UserName, Content.ID);
rss.SetMap(RssItemName.Author, null, Users.NickName);
rss.SetMap(RssItemName.PubDate, null, Content.CreateTime);
rss.SetMap(RssItemName.Description, null, Content.Body);
}
string xml = rss.OutXml;
Cache.Add(cacheKey, xml, null, cacheTime);
return xml;
}
}
八:Proc 修正从sql切换到存储过程的bug
本版本修正了这一小bug。
九:框架整体的优化
由于考虑到CYQ.Xml方面应用的人不多,所以日志记录也相对较少。
不过重点说一句,在秋色园的整体应用中,CYQ.Xml名称空间下的类,是核心应用成员,希望大家伙空多关注下这方面的应用。
十:V4.0框架下载
下载地址:下载中心-秋色园
上一篇文章:QBlog博客 V2.5 版本发布 增加健康频道[支持多语言、多用户、多数据库、目录级URL]
后续,会写一两篇CYQ.Xml方面的应用示例文章,欢迎大家关注下。
版权声明:本文原创发表于 博客园,作者为 路过秋天 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。 |
个人微信公众号![]() |
Donation(扫码支持作者):支付宝:![]() |
Donation(扫码支持作者):微信:![]() |
![]() |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)