Vb6 Visual Basic ODBC AS400 iSeries加密

Vb6 Visual Basic ODBC AS400 iSeries加密,vb6,odbc,adodb,ibm-midrange,cryptography,Vb6,Odbc,Adodb,Ibm Midrange,Cryptography,我正在使用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

我正在使用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
SELECT ColOne FROM libOne.ColOne WHERE ColOne = <val>
SELECT F_DecFld('FieldIdentifier',ColOne) AS ColOne FROM libOne.ColOne WHERE ColOne = <val>
将myConnect设置为新的ADODB.Connection
与myConnect
.CursorLocation=adUseClient
.Provider=“MSDASQL.1”
.Open“用户ID=;密码=;数据源=”
以
到目前为止,这一切都很顺利

问题是,我们最近对一些库列(冒号)引入了加密

一个内联SQL字符串,以前看起来像这样:

Set myConnect as new ADODB.Connection

With myConnect
.CursorLocation = adUseClient
.Provider = "MSDASQL.1"
.Open "User ID=<user>;Password=<password>;Data Source=<dsource>"
End With
SELECT ColOne FROM libOne.ColOne WHERE ColOne = <val>
SELECT F_DecFld('FieldIdentifier',ColOne) AS ColOne FROM libOne.ColOne WHERE ColOne = <val>
从libOne.ColOne中选择冒号,其中冒号=
现在需要如下所示:

Set myConnect as new ADODB.Connection

With myConnect
.CursorLocation = adUseClient
.Provider = "MSDASQL.1"
.Open "User ID=<user>;Password=<password>;Data Source=<dsource>"
End With
SELECT ColOne FROM libOne.ColOne WHERE ColOne = <val>
SELECT F_DecFld('FieldIdentifier',ColOne) AS ColOne FROM libOne.ColOne WHERE ColOne = <val>
选择F_DecFld('FieldIdentifier',colon)作为libOne.colon中的冒号,其中冒号=
我知道F_DecFld()函数位于加密库中,我已将其包含在我的ODBC中,当我在WinSQL中运行相同的查询(也使用ODBC)时,它会按预期返回数据,但从我的程序返回数据,而不进行解密(无错误)。

此时我唯一能想到的是Microsoft ActiveX Data Objects 2.8库没有考虑F_DecFld()


谢谢。

根据获取ODBC跟踪,以查看正在发生的情况的详细说明(希望是来自驱动程序的错误消息)

需要将加密库添加到AS400用户配置文件中,而不仅仅是ODBC驱动程序上的库列表中