当我与字符串连接以插入数据库表时,我的visual basic 6转换为葡萄牙语布尔变量

时间:2016-12-12 13:16:21

标签: vb6

当我与字符串连接以插入数据库表时,我的visual basic 6转换为葡萄牙语布尔变量。

实施例: " Updata tableX set value =" &安培;真

正如vb6解释: " Updata tableX set value = verdadeiro"

在葡萄牙语中,true是verdadeiro,导致错误插入数据库

3 个答案:

答案 0 :(得分:1)

你用什么作为后端?如果是SQL Server,您可能只想:

// attempt initialization
if let foo = Foo(.asDegree(11.0)) {

    // getter
    if case .asString(let windDirection) = foo.windDirection {
        print(windDirection) // N
    }

    // setter
    foo.windDirection = .asDegree(15.75)

    // getter
    if case .asString(let windDirection) = foo.windDirection {
        print(windDirection) // NE
    }
}

代替。

或者,如果您可以使用:

 "Update tableX set value = " & iif(value, 1, 0) 

这本质上是一个压缩的if语句。这将需要从混合中取出字符串转换,这正是导致问题的原因。

答案 1 :(得分:1)

这是Visual Basic 6的bug

  

当布尔常量或变量连接成字符串且区域设置不是英语时,Visual Basic 6.0会将布尔值强制转换为包含值文本的字符串。例如,当“区域设置”设置为“法语”时,您会看到字符串" Vrai"为真。不幸的是," Vrai"即使应用了CBool​​,也不会将其转换回布尔值True。如果将CBool​​应用于包含本地化字的字符串,则会发生类型不匹配错误。

已在Service Pack 3中修复

  

此错误已在Visual Studio 6.0 Service Pack 3中得到纠正。

我建议安装所有可用的更新:

答案 2 :(得分:0)

您隐式调用CStr()函数,区域设置感知

也许试试:

"Updata tableX set value = " & Str$(True)

Str$()函数始终使用不变区域设置。

呃,或者只是:

"Updata tableX set value = True"