RSS 2.0 Feed
程序人生
摘要:用过Reporting service (后面都用RS代替)的人对sum这个函数都不会陌生,这个函数的使用率极高并且非常好用,下面我们就来谈谈使用这个函数可能会遇到的一个问题。 我们先假设报表使用的dataset传过来的数据如下 Supplier      Revenue A                   0.00 B                   0.00 报表的需求是要算出每个Supplier的Revenue所占的比率。我们在报表中新建一个table,table中新建一个group,group绑定的值为Fields!SupplierName.Value,group的名字为SupplierGroup,该Dataset的名字为Dssup。报表如下: 可以看到比率的计算公式为: =FormatPercent(Sum(Fields!Revenue.Value,"SupplierGroup")/Sum(Fields!Revenue.Value,"Dssup"),2) 但事实上,由这个计算公式得到的值却是这样: 这个很好理解,是因为我们的计算公式的分母为0,所以出现了NaN这种值,这个时候,按照正常的逻辑,我们都会选择先判断一下分母,改后的计算公式是这样(为了便于查看,先去掉函数FormatPercent): iif(Sum(Fields!Revenue.Value,"Dssup") = 0, 0.00%, Sum(Fields!Revenue.Value,"SupplierGroup")/Sum(Fields!Revenue.Value,"Dssup"))   这个是说如果分母为0,那么传回0.00%,反之通过公式计算。从这个公式来看,没有问题,但是不幸的是,结果依然是NaN。 那么怎么办呢,继续尝试下去,改计算公式为 iif(Sum(Fields!Revenue.Value,"SupplierGroup")/Sum(Fields!Revenue.Value,"Dssup")=’NaN’, 0.00%, Sum(Fields!Revenue.Value,"SupplierGroup")/Sum(Fields!Revenue.Value,"Dssup"))   结果证明,改成这样,还是不行。 这个时候,考虑到当Sum(Fields!Revenue.Value,"Dssup") = 0 时,Sum(Fields!Revenue.Value,"SupplierGroup")一定也为0,所以改计算公式为: Sum(Fields!Revenue.Value,"SupplierGroup")/iif(Sum(Fields!Revenue.Value,"Dssup")=0,1,Sum(Fields!Revenue.Value,"Dssup")) 既如果分母为0,那么强制将分母变为1,最后结果为 这是我们想要的结果。最终计算公式是: =FormatPercent(Sum(Fields!Revenue.Value,"SupplierGroup")/iif(Sum(Fields!Revenue.Value,"Dssup")=0,1,Sum(Fields!Revenue.Value,"Dssup")),2) 留言请访问如下链接: Reporting Service Tips 101(#2) - 关于使用Sum函数会遇到的问题(1)...[阅读全文]

posted @ | Feedback (0) | Filed Under [ 程序人生 ]

摘要:Reporting Service有三种报表发布方式: 一、是在报表管理器上直接上传报表,创建数据源,这种方式很麻烦,只适用于少量的报表。 二、是在VS.net里的project里面直接发布,这种只适用于开发环境。 三、就是使用RSS脚本进行自动发布。下面我们就来初步了解一下RSS这种发布方式。 默认情况下,安装完Reporting Service,我们可以在Microsoft SQL Server\90\Samples\Reporting Services\Script Samples目录下找到一个名为PublishSampleReports.rss的文件,同时在联机文件中,我们也可以找到该文件。这个RSS文件就是自动发布的脚本,但是内容比较基础简单,下面我们在这个文件基础上进行一些扩展。 1.    这个是一个比较重要的问题,提供的RSS脚本,要求默认windows认证或者允许匿名访问,但是在实际的生产环境中,一般是用的域认证,且出于安全考虑,禁止匿名访问。所以这一块,我们要改变RSS的认证方式。        已有的代码是: rs.Credentials = System.Net.CredentialCache.DefaultCredentials        改为: rs.Credentials = new System.Net.NetworkCredential(User_Name,User_Password,User_domin)        然后在命令行里面加上这三个参数即可: rs -i PublishSampleReports.rss -s http://ReportServerName/reportserver -u UserName -p UserPassword\Userdomin        在指定的服务器上进行发布时,有关权限问题这一块,我们还应当考虑是否拥有报表服务器的访问权限,以及是否对对要访问的报表服务器的根文件夹具有相应的权限。在实际操作中,权限问题是报得最多的error。 2.该脚本必须用Visual Studio VB.NET语言编写,因此也可以用VB.NET进行一些额外的操作,例如判断报表是否已经被发布。 留言请访问:Reporting Service Tips 101(#1) - 使用RSS在指定的服务器上自动进行ReportingService报表发布...[阅读全文]

posted @ | Feedback (0) | Filed Under [ 程序人生 ]

摘要:先从SQL注入攻击说起吧。 前一段时间的SQL注入攻击可以说让国内以及国外大量网站沦陷,几个攻击变种中幸好是update而不是delete,否则众多网站损失更大,不过从犯罪的角度来说,并不是这些攻击者心慈手软,而是update才能置入网页木马,也才能在置入成功后获得预期的利润。此次大规模的SQL Injection是使用一个叫做Asprox的自动化工具来借助Google搜索引擎寻找目标网站并自动实施SQL注入的,就连趋势科技网站也未能幸免,惨被注入。此次SQL注入攻击风潮从3月份开始,进入6月份后被攻击的网站仍在大量沦陷。 在很多所谓的开发高手来看,SQL注入只是菜鸟才会犯的低级错误,其实不然。一个中大型的网站,在他不断发展的过程中,网站门户的程序都是Patch模式的逐步叠加,随着页面的增加以及版本的螺旋上升,SQL注入的危险百分比也会指数增长,尤其是国内各个网站开发的模式而言。当一个中大型网站的页面达到几万甚至几十万的时候,当这个网站的程序不断叠加积累,诸多历史页面已经处于失控的时候,如何避免SQL Inject攻击将会是一件令人非常头疼的事情,因为你此时是不可能完全重写整个网站或者完全对所有页面做代码安全审核的。 在这众多的历史页面代码中,一个微小的疏漏就导致你的DB完全向攻击者敞开,甚至威胁到服务器磁盘数据。不要侥幸的认为,你的漏洞页面有可能隐藏的很深,现在对于Google而言,什么都不是隐藏的,再加上SQL注入的自动化操作,你的历史页面越多,你的危险就越大。 我以SQL Injection为例就是为了说明其实Web威胁攻击并不是说需要多么高深的技术才可以进行实施,这些攻击往往是你在认为很简单就可以抵御的时候来进行实施的。另外一个极端就是,所谓的社会工程学攻击,各位可以Google一下就会了解。可以说 ,目前的各类攻击已经不再像很早以前那样为了显示自身技术而进行的有意或无意的攻击破坏了,现在大量的Web攻击都是带有利益驱使性的,也更具危害性。 这些Web攻击都是非常危险的,因为不论你的硬件防火墙或者入侵检测系统如何强大,是无法判断这类Web攻击的,因为它们都是合法的HTTP请求。所以根据统计,目前的Web攻击除了操作系统以及各类服务器端应用软件的漏洞外,绝大部分(70%以上)都是此类“合法的”Web攻击。 因此,抵御此类攻击一是需要检测你的应用程序代码,二是可以采用服务器端的针对访问请求以及内容的检测过滤。 针对第一类,目前业界有非常多的安全检测工具,比如HP WebInspect,NStalker-WAS(NStalker-Web Application Security Scanner),IBM Rational AppScan(Watchfire AppScan),Acunetix Web Vulnerability Scanner等等,当然这里我列举的都是商业软件,而没有包含相应的开源软件,在这方面而言,商业软件用来做安全威胁评估的优势更明显,也更合适。 这类模拟攻击检测软件有庞大的规则库以及模拟场景库,可以代替繁杂易错的人工检测。 针对第二类,则可以通过服务器端的过滤和监测机制来最大程度上保证IIS Web服务器的安全,比如微软的IIS Lock。在IIS 7推出后,做此类过滤更加简单和便捷了。国内外也有针对此类的软件产品,比如Port80 ServerDefender。这类产品可以在服务器端对于HTTP Request / POST / Cookie等做过滤和检测,抵御此类Web攻击。 (此图片转自于IBM网站,特注明)   排名前两位的是XSS攻击以及SQL Injection攻击。对于XSS攻击,很多开发者想必会嗤之以鼻的,因为目前而言XSS攻击都很少能破坏掉服务器端的数据,但是XSS最大危害在于钓鱼式攻击,这对于一个成功的网站而言,对其信誉的打击将是致命的,因为展现在用户面前的是合法的网站URL地址,只是XSS攻击部分被编码了。一旦用户遭受此类攻击,对于你网站的信任将会大大降低,现在有什么比得罪你的忠实用户的危害性更大呢? 上面我们提到了很多安全检测工具,其中提到的那四种工具我都有过一定使用(Trial或者Test),其中的AppScan是我印象最为深刻的,也是效果较好的一个。Rational家族随着IBM的不断收购,已经越来越庞大,通过收购Watchfire从而获得了这款企业级安全检测产品,并被Rational产品系列所整合,使之符合Rational的完整涵盖软件生命周期的目的。 Rational AppScan开发版本会有针对于Visual Studio 的AddIn,来在程序开发过程中就能进行代码安全审计和检测;同时也有QA版本;当然我们使用更多的是产品发布后定期的安全审计以及检测了。各版本的比较可以参见:http://www-142.ibm.com/software/dre/hmc/compare.wss?HMC02=C126096V43460Q17  Rational AppScan 7.7全功能测试版本在IBM网站可以免费下载到(http://www14.software.ibm.com/webapp/download/search.jsp?pn=Rational+AppScan),目前CSDN好像也在进行AppScan的市场活动,有兴趣可以去CSDN找一下即可。 下一个post会详细讲述一下如何针对一个真实网站进行安全审计。   --- 可能的大概目录 Web攻击和防御(一) - 安全检测工具(1)介绍 Web攻击和防御(二) - 安全检测工具(2)AppScan详解 Web攻击和防御(三) - 安全检测工具(3)AppScan数据分析 Web攻击和防御(四) - IIS安全防护,IIS Filter介绍 Web攻击和防御(五) - IIS安全防护,IIS Extend介绍 Web攻击和防御(六) - IIS安全防护,IIS......[阅读全文]

posted @ | Feedback (2) | Filed Under [ 程序人生 ]

摘要:UMD格式是国内手机阅读中使用较多的一种格式,但其公司却并没有将UMD数据格式公开,但是却用另外一种方式将其公开,你去访问一下他们的站点然后下载他的制作工具就知道。 下面的是文本的UMD相关处理代码,图形的下一篇post出来。   namespace Ikari {     using ICSharpCode.SharpZipLib.Zip.Compression;     using System;     using System.Collections;     using System.IO;     using System.Reflection;     using System.Runtime.InteropServices;     using System.Text;     using System.Windows.Forms;     public class UMD_GENEGINE     {         private const int A_32K_BYTE = 0x8000;         private byte ACTUAL_WIDTH_S60_HORI = 0xcc;         private byte ACTUAL_WIDTH_S60_VERT = 0xac; ......[阅读全文]

posted @ | Feedback (0) | Filed Under [ 程序人生 ]

摘要:今天发现电脑有些不正常,svchost.exe进程频繁和外界通讯,关闭网络就会开始不断出现 svchost.exe 错误对话框,提示远端地址被中断或者ICMP无效,经常一下子出来40多个对话框,不胜其烦,如果你连接网络,则直接打开 奇虎MP3搜索 mp3.qihoo.com , 我已经无语了。 我没有使用过任何和奇虎相关的软件或者服务,当然不排除无意中中招了。 Windows Defender 和 一起其他反流氓软件完全检测也没有任何结果。 大家都知道 奇虎360一直标榜着自己是反流氓软件的卫士,但是这次呢?当然不排除竞争对手恶意针对奇虎栽赃的。。。不过可能性比较低。 经过分析发现,流氓软件来自 Windows\Media\ClickMe.exe以及Windows\Media\svchost.exe 这两个文件,利用Unlocker删除这两个文件就天下太平了。 不知道奇虎MP3搜索 是不是还在用老路子(类似3721那样的手段)来推广?如果是的话,那自己竟然还出奇虎360,那岂不是 笑掉大牙? 谁敢用? 当然,如果不是,那也给奇虎360 一个改进建议,因为我使用它也没有查出这个流氓软件(我最后还下载了奇虎360来查了查),如果这个流氓软件恶意给奇虎栽赃话,奇虎360更要第一时间杀了,人家都给你扣黑帽子了,你竟然还查不出来。。。  ...[阅读全文]

posted @ | Feedback (13) | Filed Under [ 程序人生 ]

摘要:开心见谅,在此寻觅一个熟悉SPPS的合作伙伴。 今有一项目涉及到SPPS,寻觅合作伙伴。 要求: 1、熟悉SPPS 2003的架构,能熟练在其基础上进行开发以及整合动作。 2、良好的客户沟通能力,能比较清晰的捕获客户需求,能撰写良好的SA文档 酬劳:请按人天报价 联系: MSN: uestc95@263.net ...[阅读全文]

posted @ | Feedback (1) | Filed Under [ 程序人生 ]

摘要:这段时间一直在翻译两本比较新的外文技术书籍,也顺便分享给大家几本好的书籍英文版,有时间的话,可以找来看看。 《Pro SQL Server 2005 Database Design and Optimization》 ISBN: 1590595297Title: Pro SQL Server 2005 Database Design and OptimizationAuthor: Louis Davidson Kevin Kline Kurt Windisch Publisher: ApressPublication Date: 2006-05-01Number Of Pages: 672Average Amazon Rating: 5.0 介绍:Pro SQL Server 2005 Database Design and Optimization will teach you effective strategies for designing proper databases. It covers everything from how to gather business requirements to logical data modeling and normalization. It then shows you how to implement your design on SQL Server 2005.The authors also describe how to optimize and secure access to this data, covering indexing strategies, SQL design and optimization, and strategies for increased......[阅读全文]

posted @ | Feedback (18) | Filed Under [ 程序人生 ]

摘要:微软已经提供了IE7 Beta 2的下载。 Internet Explorer 7 Beta 2 for Windows XP SP2 但是这个Beta 2我在使用的过程中仍然遇到一个和之前CTP版本同样的问题,就是如果你在Tools里面设置了你的HTTP代理的话,即便你钩选掉这个选项了,IE同样还是去尝试连接这个代理服务器,然后告诉你无法连接。 这次本来以为在Beta 2内能修复这个Bug,但是又上当了,我把注册表里面所有和Proxy相关的地方都删除了,重启动IE后,仍然发现他创建了这个代理,并且让他有效。 甚至我在卸载了IE7之后,发现IE6也同样发生了这个问题,在之前所有的CTP版本都有这个问题,没想到正式的Beta 2还是这样。 实在没有办法,就只好又开始用FF了,我两次被迫使用FF都是因为IE7的这个缘故。。。 又由于 博客堂的Blog不支持FF,甚至也不支持IE7,我写的文字就全成一团了,不能换行,不能使用格式,我只能直接使用HTML来自己格式化这片Blog ......[阅读全文]

posted @ | Feedback (23) | Filed Under [ 程序人生 ]

摘要:SQL Server 2005 SP1如期发布了。 http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=cb6c71ea-d649-47ff-9176-e7cac58fd4bc SP1增强的内容和Bug Fix可以看这个 http://support.microsoft.com/kb/916940  ...[阅读全文]

posted @ | Feedback (115) | Filed Under [ 程序人生 ]

摘要:上月在和一个国内大型家电企业的IT经理沟通交流的事情,曾经被问到过我们目前的技术平台是否打算迁移升级到64位服务器上面。 说实话,我还真的第一次被客户直接问到这个问题,也感觉到64位平台在企业级应用上面会越走越快,尤其是Windows Server平台。 随后在拜访另外一家国内大型IT企业的时候,对方也同样很关注这个问题,甚至已经有了明确的规划。也就是说,如果我们的产品不能够流畅毫无问题的支持64位服务器,也就别想切进这个项目了。 看来64位计算的脚步越走越快了,06年或许会是进入主流的关键一年。而目前的Visual Studio 2005则已经给我们做好了这方面的准备,可以协助我们快速的升级到64位平台上面来。 当然,现有的应用程序并非可以100%不作修改,只是针对64位平台进行编译就可以了,这些也只能依靠我们技术人员来逐步测试调整了。 有一篇Blog讲到一些 64-bit and Visual Studio 2005 ,也粗略提到如何在VS2005里面针对不同64位平台来编译我们的应用程序以及VS2005各个版本对于64位的支持情况。 PS:如果你在建立一个单独项目之后,始终找不到那个解决方案的“配置管理器”。那么是因为你的设置里面默认没有选择“工具”-〉“选项”-〉“项目和解决方案”-〉“常规”-〉“总是显示解决方案”即可。...[阅读全文]

posted @ | Feedback (11) | Filed Under [ 程序人生 ]

Full 程序人生 Archive