下流人真是虚空;上流人也是虚假;放在天平里就必浮起;他们一共比空气还轻。

×××××××××××××××××

这是一个关于NULL的问题。具体的说,是关于VT_NULL的问题。

程序最近总是出现奇怪的错误,特别114版以后常见。但是又无法重现。昨天eric将accounts中的数据全部关闭,才发现这个错误只所在。

我以前用select从数据库中取值,返回空结果集的校验是

if (pResult->EOF() && pResult->BOF())

同时达到头和尾,当然就是空了。

但是新的版本采用存储过程,这样无论如何都会返回一条记录来。哪怕全部是空值。所以,这时的检验要变为:

pResult->Fields(“field”)->Value.vt == VT_NULL 之类。vt是variable类型的真实类型。

所以,这个问题就很好的解决了。用了一个下午debug。