2

我们正在 Windows CE 5.0 设备上部署 SQLAnywhere 解决方案,并且在我们的第一个 SQL 语句中遇到错误。

定义是...

Dim dbf As String = "dbf=\Program Files\sfpwarehousescanner\BRAINY2_remote.udb"
Public conn As ULConnection = New iAnywhere.Data.UltraLite.ULConnection(dbf)
Public cmdDel As ULCommand
Public cmdSel As ULCommand
Public cmdUpd As ULCommand

有问题的代码...

Public Sub GetDefaults()
  Dim SQL As String = ""
  Try
    SQL = "SELECT ISNULL(Dot, 'T'), ISNULL(Distance, 'L'), ISNULL(Force_Change, 'Y') " _
    & "FROM cims.scan_settings " _
    & "WHERE username = '" + UName.ToString + "'"

    cmdSel = conn.CreateCommand()
    cmdSel.CommandText = SQL

    Dim ULReader As ULDataReader

    ULReader = cmdSel.ExecuteReader

我们收到的错误是......

Error (level = 7) in General.GetDefaults: 
IDS_AMP_INVALID_OPER_ON_EXECUTE_CMD - 
SELECT ISNULL(Dot, 'T'), ISNULL(Distance, 'L'), ISNULL(Force_Change, 'Y') 
FROM cims.scan_settings WHERE username = 'test'

任何帮助是极大的赞赏!

我现在已将 sql 简化为“SELECT * FROM scan_settings”,但我仍然遇到同样的问题。

4

2 回答 2

2

我没有在应用程序中包含 ulnet12.dll 和 ulnetclient12.dll。现在运行很好。

于 2011-07-28T21:21:00.770 回答
0

错误消息似乎表明数据库无法进行一些它被要求进行的比较。对于 ISNULL,所有表达式都必须具有可比性 (http://dcx.sybase.com/index.html#1201/en/dbreference/isnull-function.html)。如果 Dot、Distance 和 Force_Change 数据类型无法与 CHAR 比较,则可能是问题所在。

于 2011-07-12T15:38:11.673 回答