2011年7月2日
#
Access:
select * From 表 Where id in(1,5,3) order by instr(',1,5,3,',','&id&',')
MSSQL:
select * From 表 Where id in(1,5,3) order by charindex(','+rtrim(cast(id as varchar(10)))+',',',1,5,3,')
MySQL:
select * From 表 Where id in (1,5,3) order by instr(',1,5,3,',',CONCAT(',',id,','))
2011年1月20日
#
最近又遇一奇怪问题
为产品加入产品描述内容,包括英语、法语等6门语言的描述,而且需要可视化编辑用以网页展示。
当然,首选ckeditor,一个面页放6个ekeditor。
但马上发现问题,有的框能取到值,有的取不到,很容易想到是不是ckeditor这控件一下加载6个太多了导致的问题,后来改为点击文字后再加载,想想这样应该不会有这问题了吧。
但很快,多次测试后,还是有的值能取到有的不能,我测试的时候竟然发现每次输入hi ok这些简单的单词提交没问题,我以为是ckeditor检查拼字的原因,
于是其修改config.js文件:
config.disableNativeSpellChecker = false;
config.scayt_autoStartup = false;
但问题如故!
又是一番上网查资料、不停的测试找规律。
测试发现,输入简短单词没问题,长了出问题,我猛然想到是否是hbm配置文件错了(orm都是用codesmith自动生成的),
果然,配置是这样的:
<property name="Description" type="String">
<column name="Description" length="16" sql-type="ntext" not-null="false"/>
</property>
而持久层文件如下:
virtual public string Description
{
get { return _description; }
set
{
if (value != null && value.Length > 16)
throw new ArgumentOutOfRangeException("Invalid value for Title", value, value.ToString());
_description = value;
}
}
很明显当长度大于16会抛出异常导致值为空(这里看不到抛出的异常)。
一直怀疑是ckeditor的问题,原来是这里的问题,花了大半天时间,晕!
分别修改如下,问题解决:
<property name="Description" type="StringClob">
<column name="Description" length="16" sql-type="ntext" not-null="false"/>
</property>
virtual public string Description
{
get { return _description; }
set
{
_description = value;
}
}
2010年12月20日
#
前段时间出了一奇怪问题,在OA上修改某一个值后却无法保存,经过分析程序是没问题的,费了很多时间,只能回想起最近修改了什么,得知道总监修改过IIS设置。去网上找了下资料:
在您创建应用程序池时,就会通知 IIS 6 创建一个工作进程,以传送指派给该应用程序池的 Web 站点、文件和文件夹的内容。您可以将应用程序池配置为启动多个,而非一个工作进程,这样可以提高可扩展性。这个功能的名为 Web 园,是小型的“Web 农场”。您无需使用多台计算机来传送相同的内容(Web 农场),而是可以使用一台计算机中的多个进程来传送相同的内容。
在将 IIS 6 应用程序配置为 Web 园时,您只需在“应用程序池属性”的“性能”选项卡的“最大工作进程数”框中,设置一个大于 1 的工作进程数。如果这个值大于 1,每个请求都将启动一个新的工作进程实例,可启动的最多进程数为您所指定的最大工作进程数。后续的请求将以循环的方式发送至工作进程。
Web 园在您的应用程序资源有限的情况下非常有用。例如,如果您到数据库的连接很慢,那么您可以使用多个工作进程来增加用户吞吐量,从而增加到数据库的连接数。
尽管在有些情况下使用 Web 园的用处非常大,但是要注意,每个工作进程的会话信息都是唯一的。由于请求以循环的方式路由到应用程序池工作进程,因此 Web 园对于会话信息存储在进程中的应用程序作用可能不大。在少数情况下,让多个工作进程运行同一个应用程序会造成资源竞争。例如,如果所有工作进程都试图将信息记录到日志文件中,或是使用那些不是专用于多个并发访问的资源,那么可能出现资源竞争问题。
原来如此,在修改字段后是用session保存传值(这种传值方式真白痴,还好这代码不是我写的),IIS设置工作进程大于1后,可能导致获取不到Session信息。
2010年7月30日
#
摘要: 最近在学习和使用Entity Framework,同样,在业务层的开发中会把经常使用的方法写在基类中。在这里把写好的基类发表出来,目的是为了共同学习,因为使用EF时有很多问题还是不太理解,一是自己能力不足,二是EF还存在很多问题吧。代码如下,欢迎指出其中问题,真诚感谢!RepositoryCode highlighting produced by Actipro CodeHighlighter (...
阅读全文
2010年7月21日
#
在使用MVC开发时,遇到了一个问题,在视图中要使用一个对象,比如说资源类时,必须输入完整的名称空间才引用到对象:
<%=OA.Data.Resources.Msg.Add %>
这样虽然暂时不影响整个开发,但感觉不爽,想了很多加法都不能用Msg.Add这样来使用。但问题终于解决了,其实很简单,也许是之前没这样用过,所以不知道。
在Web.config下配置下就可以了:
<pages>
<namespaces>
<add namespace="OA.Data.Resources" />
</namespaces>
</pages>
2010年6月29日
#
摘要: 在写系统尤其是在写课程系统是经常会遇到类似如下纵-横转换,在使用group by ... with cube/rollup + grouping() 来实现是非常容易做到的。1. 用于测试的数据如下:[代码]2. 实现此效果的SQL语句如下:[代码]这里没有考虑做到通用,如果做到通用可能会比较复杂,也不知道性能会怎么样。
阅读全文
2010年5月10日
#
摘要: FOR XML PATH 语句的应用本文非原创,资料来自于:http://hi.baidu.com/dyzhong/blog/item/f1b8422c0586afe78a1399ab.html大家都知道在SQL Server中利用 FOR XML PATH 语句能够把查询的数据生成XML数据,下面是它的一些应用示例。DECLARE @TempTable table(UserID int , Us...
阅读全文
2009年2月7日
#
摘要: 无意间对163邮箱的层确认对话框产生了兴趣,弹出一个层来询问用户的操作,其它部分用阴影覆盖,看上去比较爽,于是决定做一个这样的样式用于公司的OA系统中。以下是JS实现代码:[代码].aspx前台调用如下:[代码]注意:因为JS提交到服务器需要用到 __EVENTTARGET、__EVENTARGUMENT ,要是执行时提示__EVENTTARGET为空则加入一个LinkButton控件就可以了,如...
阅读全文