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

PowerBuilder 12和SQL位数据类型问题(1误读为-1),sql,powerbuilder,bit,Sql,Powerbuilder,Bit,我有一个pb12应用程序,它使用SNC连接到sql2008db。我有一个包含位数据类型的表,正如您所期望的,这些位数据类型用1和0填充。PB查询此表时,会将所有1转换为-1。这是我们将一个旧的PB9应用程序转换为12之后的新行为,同时将我们的DB提供程序从OLEDB切换到SNCSQL本机客户端 翻开网页,我发现这个问题在PB11中有报道,唯一的解决方案是将DBParm参数设置为对性能产生负面影响的遗留值。DBParm“StaticBind”设置为0,而不是默认值1 从那以后,有没有针对这个bug

我有一个pb12应用程序,它使用SNC连接到sql2008db。我有一个包含位数据类型的表,正如您所期望的,这些位数据类型用1和0填充。PB查询此表时,会将所有1转换为-1。这是我们将一个旧的PB9应用程序转换为12之后的新行为,同时将我们的DB提供程序从OLEDB切换到SNCSQL本机客户端

翻开网页,我发现这个问题在PB11中有报道,唯一的解决方案是将DBParm参数设置为对性能产生负面影响的遗留值。DBParm“StaticBind”设置为0,而不是默认值1

从那以后,有没有针对这个bug做过任何工作?人们是如何解决这个问题的

谢谢

的大多数定义通常表示为sql状态中的位类型,即0为false,非零为true。所以在布尔术语中,-1和+1大致相等

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

可能是查询中返回了-1,这是因为PowerBuilder将结果解释为“未知”而不是“真”

因此,您应该评估该值是否为0 false,如果不是true。

的大多数定义通常表示为sql状态下的位类型,即0为false,非零为true。所以在布尔术语中,-1和+1大致相等

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

可能是查询中返回了-1,这是因为PowerBuilder将结果解释为“未知”而不是“真”


因此,您应该评估该值是否为0 false,如果不是真的。

为避免false可以表示为1或-1时出现问题,通常使用ifvalue==0进行检查,并且每当该检查失败时,您都知道该位具有非零值。为避免false可以表示为1或-1时出现问题,通常使用ifvalue==0和-1进行检查每当该检查失败时,您就会知道该位有一个非零值。本质上,这是我在powerbuilder的数据窗口中必须做的。我刚刚更改了代码,以反映-1是“真”值,而不是1。当DW保存回SQL DB时,表中的值仍然是1,因为SQL本机客户端正在进行一些转换,我想这就是我在powerbuilder的datawindow中必须做的事情。我刚刚更改了代码,以反映-1是“真”值,而不是1。当DW保存回SQL DB时,表中的值仍然是1,因为SQL本机客户端正在进行一些转换。