ihi*_*lVT 3 .net assemblies adodb consumption asp-classic
我有一个由传统ASP页面使用的.NET程序集.我创建了一个返回ADODB记录集的方法.在我的ADODB命令对象中,我使用以下格式向adCmdStoredProc CommandType属性提供参数...
With ADODBCmd
.ActiveConnection = ADODBConn
.Prepared = True
.CommandType = CommandTypeEnum.adCmdStoredProc
.NamedParameters = True
.CommandText = Sql_GetMyBook
.Parameters.Append(.CreateParameter("@book", DataTypeEnum.adChar, ParameterDirectionEnum.adParamInput, 50, MyBook))
End With
Run Code Online (Sandbox Code Playgroud)
我得到一个投射错误......
System.Exception未处理
Message = System.InvalidCastException:无法将类型为"System .__ ComObject"的COM对象强制转换为类类型"ADODB.InternalParameter".表示COM组件的类型实例不能转换为不代表COM组件的类型; 但是只要底层的COM组件支持对接口的IID的QueryInterface调用,它们就可以转换为接口.
在线:
.Parameters.Append(.CreateParameter("@book", DataTypeEnum.adChar, ParameterDirectionEnum.adParamInput, 50, MyBook))
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
存储过程:
ALTER PROCEDURE [dbo].[GetMybook]
-- Add the parameters for the stored procedure here
@book char(50)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT BookTitle, Author, PulishedDate
FROM Library
WHERE BookTitle=@book
Run Code Online (Sandbox Code Playgroud)
Microsoft ActiveX数据对象库中".CreateParameter"方法的返回值之间存在差异(无意或无意)
2.7 - 返回"ADODB.InternalParameter"(ADODB.Command对象需要)
2.8 - 返回"System .__ ComObject"(ADODB.Command无法处理或不知道如何处理)
出于我的目的,我不得不将我的引用从2.8更改为2.7库,以便将创建的参数附加到命令对象.
感谢Chris Behrens帮助我缩小搜索范围.