PowerBuilder 12和SQL位数据类型问题(1读错为-1)

时间:2011-06-28 21:04:51

标签: sql powerbuilder bit

我有一个使用SNC连接到SQL 2008 DB的PB 12应用程序。我有一个表位数据类型,用1和0填充,正如您所期望的那样。当PB查询该表时,它将所有1转换为-1。这是我们将旧的PB 9应用程序转换为12后的新行为,也将我们的数据库提供程序从OLEDB切换到SNC(SQL Native Client)。

在网络上挖掘我看到这个问题已在PB 11中报告,唯一的解决方案是将DBParm参数设置为遗留值,从而对性能产生负面影响。 (DBParm'StaticBind'设置为0而不是默认值1。)

从那以后,有没有关于这个bug的工作?人们如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

boolean data types的大多数定义(通常在sql中表示为位类型)表明0为假,非零为真。所以在布尔术语中,-1和+1大致相同。

  

在某些语言中,布尔数据   type被定义为包含多个   两个真理值。例如ISO   SQL 1999标准定义了一个布尔值   值为true,false或   未知(SQL null)。

可能是在查询中返回-1,因为PowerBuilder将结果解释为'unknown'而不是'true'。

所以你应该评估该值是否为0(假),如果不是真的那么。​​