PRB: Implicit Conversion Error Calling Second Stored ProcedureID: Q178038
|
The following error occurs when you execute an Active Server Pages (ASP)
page that is making subsequent stored procedure calls:
Implicit conversion from the datatype 'varchar' to 'int' is not allowed. Use the convert function to run this query.
Two conditions that cause this error to occur are as follows:
Delete the parameter(s) in question using the "Delete" method of the
collection object.
collection.Delete Index
This behavior is by design.
create procedure sp_varchar
@cust varchar
AS
SELECT *
FROM employee
create procedure sp_int
@cust int
AS
SELECT *
FROM employee
==============sample ASP code===============
<%
Set pubs = Server.CreateObject("ADODB.Connection")
pubs.ConnectionTimeout = Session("pubs_ConnectionTimeout")
pubs.CommandTimeout = Session("pubs_CommandTimeout")
pubs.Open Session("pubs_ConnectionString"),
Session("pubs_RuntimeUserName"), Session("pubs_RuntimePassword")
Set cmdTemp = Server.CreateObject("ADODB.Command")
Set DataCommand1 = Server.CreateObject("ADODB.Recordset")
cmdTemp.CommandText = "dbo.""sp_varchar"""
cmdTemp.CommandType = 4
Set cmdTemp.ActiveConnection = pubs
'Syntax:
'Set parameter = command.CreateParameter(Name, Type, Direction, Size,
'Value)
'200 is the value for Varchar datatype.
'1 is the value for an input parameter.
Set tmpParam = cmdTemp.CreateParameter("@cust", 200, 1, 6,"mytest")
cmdTemp.Parameters.Append tmpParam
DataCommand1.Open cmdTemp, , 0, 1
%>
<%
'========================
'The commented out line below is required to correctly clear the
'varchar parameter before creating the int parameter. Uncomment the
'line below and the code will work correctly.
'========================
'cmdTemp.Parameters.Delete "@cust"
Set DataCommand2 = Server.CreateObject("ADODB.Recordset")
cmdTemp.CommandText = "dbo.""sp_int"""
cmdTemp.CommandType = 4
Set cmdTemp.ActiveConnection = pubs
'Integer data type with a value of 3
Set tmpParam = cmdTemp.CreateParameter("@cust", 3, 1, 4,3)
cmdTemp.Parameters.Append tmpParam
DataCommand2.Open cmdTemp, , 0, 1
%>
========end sample ASP code=================
kbMDAC150, kbADO100, kbMDAC200
Additional query words: kbdsi
Keywords :
Version : WINDOWS:1.0,2.0; winnt:
Platform : WINDOWS winnt
Issue type : kbprb
Last Reviewed: March 11, 1999