有时,转换规范的字符值无效

时间:2013-10-14 10:24:23

标签: sql vb6

我正在调查有时会发生的错误。我还没有看到任何行为模式。我有一个与服务器通信的vb6 com + -application。

Err: Invalid character value for cast specification. (&H80040E21)
Src: Microsoft OLE DB Provider for SQL Server
Stacktrace:
GetClientRS("SELECT * FROM Visit where GUID=?")
GetVisit("('{5EF4A26A-0909-4371-97F7-A2597CB7ADE3}')")

这是有时发生的错误。它可能每5次被称为1-2次。我在SQL Server Profiler中尝试过跟踪,但我无法检测到任何错误。

有没有人有我可以尝试的想法?

Edit:
Code for calling the command:
GetVisit:
    Set cmd = CreateCommand("SELECT * FROM dbo.per_Visit WHERE GUID=?")
    cmd.Parameters.Append cmd.CreateParameter(, adGUID, , , SafeGUID(sGUID))

    Set GetVisit = GetClientRS(cmd, True)

SafeGUID:
     If Mid$(sGUID, 1, 1) <> "{" Then                                  
         sGUID = "{" & sGUID & "}"                                     
    End If

   SafeGUID = sGUID

1 个答案:

答案 0 :(得分:1)

SafeGUID功能可能不够聪明。

sGUID = "('{5EF4A26A-0909-4371-97F7-A2597CB7ADE3}')"

实际作为参数传递的值是

{('{5EF4A26A-0909-4371-97F7-A2597CB7ADE3}')}

这不是有效的GUID。