随笔 - 30  文章 - 1 评论 - 88 trackbacks - 2

赞助商广告


与我联系

搜索

 

常用链接

留言簿

随笔分类

随笔档案

文章分类

好友的Blog

牛人的Blog

积分与排名

  • 积分 - 17353
  • 排名 - 3132

最新评论

阅读排行榜

评论排行榜

     摘要: Spring的野心

象我们描述一般的社会迭代的过程一样:上一代的人依据权利和社会资源牢牢的控制着整个社会的根基,但是他们在下一代人看来,他们的想法是如此的陈旧,行事如此的没有理性,于是打破这种腐朽成了年轻一代与年老一代开战的导火索,弱势的年轻一代从边缘战役和时间的协助,最终将老一代尘封到历史中,他们的痕迹一点也不留。而年轻一代站稳脚跟的时候,生长中的下一代同样开始挑衅起来刚坐稳屁股的这一代。
  阅读全文
posted @ 2008-05-07 13:11 最远距离 阅读(2606) | 评论 (29)编辑
  这是使用动态Sql的人都会碰到这样的问题,需要从动态执行的sql中返回值,下面给一个简单的实现例子。

 
IF EXISTS(SELECT * FROM SYSOBJECTS WHERE NAME = 'ValueFromSql')
   
DROP PROC ValueFromSql
GO
create proc ValueFromSql

 
as begin

declare @value varchar(100)


exec sp_executesql N'select @value=''From Sql'' ',N'@value varchar(100) out ',@value out

print @value


end
执行结果为; From Sql

如果想把sql语句当成变量传入,定义应该如下,注意@sql的类型应该是nvarchar
IF EXISTS(SELECT * FROM SYSOBJECTS WHERE NAME = 'ValueFromSql')
   
DROP PROC ValueFromSql
GO
create proc ValueFromSql

 
as begin

declare @value varchar(100)
declare @sql nvarchar(4000)

set @sql='select @value=''From Sql'' '

exec sp_executesql @sql,N'@value varchar(100) out ',@value out

print @value


end
posted @ 2008-04-22 09:09 最远距离 阅读(206) | 评论 (0)编辑
     摘要: 简介 从OO到AOP,一路走来就是眼花缭乱的术语,蒙蔽了这些东西的本来面目。如果你还在驻足,那你就该尝试着看看这个软件开发的世界里,是谁在狂欢!Martin Fowler 很大师,两篇论文就搞的开发界鸡飞狗跳、鸡犬不宁。一篇当然是《Inversion of Control Containers and the Dependency Injection pattern》(04年 控制反转和依赖注入)... 阅读全文
posted @ 2008-04-18 12:53 最远距离 阅读(3476) | 评论 (18)编辑
     摘要: 持久化的问题是一个很古老的问题,看似和我们的日常应用没有什么联系,但是一些情况下还是很有用处的。场景描述: 应用场景介绍: CS下 (Windows程序) BS下(Web页面) 做原型时候,没有确定BS和CS结构的情况下,需要构建一个简单的模型,使得你构建的简单界面既能支持cs又能支持BS。我们的目的是在cs情况下编辑,然后在BS下生成编辑好的页面。 简单实现: 下面只提供整个应用场景的拙劣实现,... 阅读全文
posted @ 2008-04-08 14:56 最远距离 阅读(3348) | 评论 (10)编辑

两种实现方法如下:
方法一:

CREATE   TABLE   #tabTmp(id   int)  
  
INSERT   #tabTmp   EXECUTE('SELECT   id   FROM   '+@TableName)  
   
  
declare   curOne   cursor   for    
  
SELECT   id   FROM   #tabTmp  
  
open   curOne  
  
FETCH   NEXT   from   curOne   into     @ID

方法二:

exec('
    declare curOne cursor global
     for
' + @aSql)
    
open curOne 
    
fetch  curOne 


本人比较喜欢第二种,比较简单易懂。

 
posted @ 2008-04-02 14:11 最远距离 阅读(84) | 评论 (0)编辑
  系统是在开发完毕后才采用了Log4net的框架,结果很多东西都需要引用log4Net的东西,所以想写一个通用的类,写一些公共的静态方法,那样大家就Happy了,于是又发现一个问题:配置文件的%M老记录静态方法中的方法名,而不记录出错的方法名。于是顺着log4net的藤摸他的瓜。 找到了StackTrace 和StackFrame这些类,其实我对这些类是不太清楚。

    即使这样我们也得修改呀。

 
 public class LogMgr
    
{
        
private static ILog log = LogManager.GetLogger(MethodInfo.GetCurrentMethod().DeclaringType);

        
public static string LogPosition()
        
{
            StackTrace st 
= new StackTrace();
            StackFrame sf 
= st.GetFrame(1);
            
return "Position:" + sf.GetMethod().DeclaringType.Name+"["+sf.GetMethod().Name+"]\r\n";
        }


        
public void Error(string message)
        
{
            log.Error(LogPosition()
+message);
        }

        
public void Debug(string message)
        
{
            log.Debug(LogPosition()
+ message);
       
        }

        
public void Info(string message)
        
{
            log.Info(message);
        }

        
public void Warn(string message)
        
{
            log.Warn(message);
        }

    }


  这个类记录了当前方法的位置,即LogMgr所在方法的方法名。

 

  
posted @ 2008-01-30 16:21 最远距离 阅读(247) | 评论 (0)编辑
     摘要: 几乎所有的大型应用都会有自己的用于跟踪调试的API。因为一旦程序被部署以后,就不太可能再利用专门的调试工具了。然而一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的问题。

经验表明,日志记录往往是软件开发周期中的重要组成部分。......
  阅读全文
posted @ 2008-01-10 17:14 最远距离 阅读(139) | 评论 (0)编辑