中国开发网: 论坛: 程序员情感CBD: 贴子 589541
李战
发现SQL Server 2005一个重大BUG, 新增的HashBytes对NULL值的处理有严重问题啊!
在Microsoft SQL Server Management Studio中执行下列查询

declare @D varchar(max)
set @D = ''
select HashBytes('MD5', @D) --此处每次返回 NULL值
set @D = NULL
select HashBytes('MD5', @D) --此处每次却返回不固定的奇怪值

再看:
declare @D1 varchar(max), @D2 varchar(max)
select HashBytes('MD5', @D1), HashBytes('MD5', @D2)

默认情况,如果变量未赋值,其初始值为NULL,然而上述返回值一样不可确定。

显然忘记对NULL的判断了,也许直接把变量指向的某块不确定的内存数据给HASH了。

让我费了半天工夫才查处问题,只好自己做判断,绕开这个BUG。

微软那位编HashBytes函数的程序员,该打屁股!

李战(leadzen).深圳 2007-12-16
李战(leadzen)

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录