Ошибка SQL в SQLAnywhere с Ultralite базой данных в Windows CE 5.0 - VB.net - PullRequest
2 голосов
/ 03 июня 2011

Мы развертываем решение SQLAnywhere на устройствах Windows CE 5.0 и сталкиваемся с ошибкой в ​​нашем первом операторе 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», и у меня все еще остается та же проблема.

Ответы [ 2 ]

2 голосов
/ 29 июля 2011

Я не включал ulnet12.dll и ulnetclient12.dll в приложение. Отлично работает сейчас.

0 голосов
/ 12 июля 2011

В сообщении об ошибке, похоже, говорится, что база данных не может выполнить некоторые сравнения, которые ее просят сделать. Для ISNULL все выражения должны быть сопоставимы (http://dcx.sybase.com/index.html#1201/en/dbreference/isnull-function.html). Если типы данных Dot, Distance и Force_Change не сопоставимы с CHAR, это может быть проблемой.

...