0

我正在使用 dreamfactory REST API 来调用 SQL Server 存储过程。SQL Server 数据库对存储过程的一些参数使用用户定义的数据类型。

这是我通过 Dreamfactory 的 API Docs 区域调用它的方式:

 {
 "params": [
      {
      "name": "Number",
      "param_type": "IN",
      "value": "123456"
      },
      {
      "name": "IdNumber",
      "param_type": "IN",
      "value": "0x0048F1F5A7DC5A2A431CBAD70270E59C5FA0"
     }
 ],
 "schema": {
 "_field_name_": ""
  },
 "wrapper": "",
 "returns": ""
  }

错误是:

不允许从数据类型 nvarchar 到 varbinary 的隐式转换

我相信问题出在第二个参数IdNumber上,它是用户定义的数据类型。如果我删除参数,我只会得到一个IdNumber预期的错误并且丢失。

数据类型是用户定义的类型,我不确定它为什么要尝试将其转换为varbinary. 我真的不知道任何转换或存储值的方法,因为它使用的是 REST API。我认为我不能将任何东西转换为存储过程参数是否正确?

我知道这是一个非常具体的问题,但感谢任何帮助。在这个项目上,我一直在与 dreamfactor 抗争,如果答案是朝另一个方向发展,我对此持开放态度。

4

2 回答 2

1

我相信它试图将其转换为 varbinary 的原因是:

"value": "0x0048F1F5A7DC5A2A431CBAD70270E59C5FA0"

我相信值中的前导 0x 正在触发它。通常,以 0x 开头的值被视为十六进制值。

我不熟悉 MS SQL Server,但是,如果您不打算允许用户定义的数据类型为二进制,也许您可​​以过滤输入以不允许前导 0x。

希望这可以帮助

于 2015-06-23T13:36:25.197 回答
0

在与 Dreamfactory 技术支持合作后,这是 Dreamfactory 的一个问题,他们希望尽快解决。

于 2015-08-25T17:12:59.207 回答