首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

用VB去调用存储过程的有关问题

2012-04-06 
用VB去调用存储过程的问题SQL codeCREATE DEFINER`root`@`localhost` PROCEDURE `Code_Search_Code`(c va

用VB去调用存储过程的问题

SQL code
CREATE 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 得到返回值。

热点排行