用VB去调用存储过程的问题SQL codeCREATE DEFINER`root`@`localhost` PROCEDURE `Code_Search_Code`(c va
用VB去调用存储过程的问题
SQL codeCREATE DEFINER=`root`@`localhost` PROCEDURE `Code_Search_Code`(c varchar(20), s int,out hs int)begindeclare stmt varchar(2000); set @sql = concat('select code from warehouse where code like ''%',c,'%'' limit 0,',s);prepare stmt from @sql; execute stmt; set hs=FOUND_ROWS();end;
VB调用
Dim MyComm As New ADODB.Command '定义一个命令对象
With MyComm
.ActiveConnection = Conn '数据连接
.CommandText = "Code_Search_Code" '存储过程名称
.CommandType = adCmdStoredProc '表明这是一个存储过程
.Prepared = True '要求将SQL命令先行编译
.Parameters.Append .CreateParameter("@c", adVarChar, 1, 20, ReplaceStr(code_text.Text))
.Parameters.Append .CreateParameter("@s", adInteger, 1, 3, 6)
.Parameters.Append .CreateParameter("@hs", adInteger, 2)
.Execute
End With
红色部分为设置输出参数,可这句放进去就会出错,存储过程我试过是正常的,把这句去了再把存储中那个输出参数也去了,就能运行正常,说明就只错在这句的设置上,谁告诉我,怎么处理?
[解决办法]提示什么
[解决办法].Parameters.Append .CreateParameter("@hs", adInteger, 2)
这里需要设置成out吧,没环境,测试部了。
另外一个办法就是你直接
dim rs as new adodb.recordset
set rs=MyComm.execute("call sp(11,2,@a);select @a ";
[解决办法]将MYSQL ODBC升级到5.1.6试试,此表有TRIGGER?
[解决办法]没有办法,只能使用这种方法 select @x 得到返回值。