我正在使用 ISeries Access ODBC驱动程序从 AS400 中检索数据。
连接代码如下所示:
Set myConnect as new ADODB.Connection
With myConnect
.CursorLocation = adUseClient
.Provider = "MSDASQL.1"
.Open "User ID=<user>;Password=<password>;Data Source=<dsource>"
End With
到目前为止这种方法很好。
问题是我们最近为库列的某些(ColOne)引入了加密。
以前看起来像这样的内联SQL字符串:
SELECT ColOne FROM libOne.ColOne WHERE ColOne = <val>
现在需要看起来像这样:
SELECT F_DecFld('FieldIdentifier',ColOne) AS ColOne FROM libOne.ColOne WHERE ColOne = <val>
我知道F_DecFld()函数驻留在加密库中,我已将它包含在我的ODBC中,当我在WinSQL中运行相同的查询(也使用ODBC)时,它会按预期返回数据,但是来自我的程序它返回数据而不解密(没有错误)。
此时我唯一能想到的是 Microsoft ActiveX Data Objects 2.8 库未考虑 F_DecFld()?
谢谢。
答案 0 :(得分:1)
根据http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=/rzaii/rzaiiodbc17.htm获取ODBC跟踪,以查看正在进行的详细记录(并希望来自驱动程序的错误消息)
答案 1 :(得分:1)
加密库添加到AS400用户配置文件中,而不只是添加到ODBC驱动程序的库列表中。