Foxtable(狐表)用户栏目专家坐堂 → [求助]存储过程返回参数写法


  共有3215人关注过本帖树形打印复制链接

主题:[求助]存储过程返回参数写法

帅哥哟,离线,有人找我吗?
狐作非为
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:456 积分:7267 威望:0 精华:0 注册:2012/2/6 12:27:00
[求助]存储过程返回参数写法  发帖心情 Post By:2017/4/21 20:01:00 [只看该作者]

  '执行存储过程,并返回参数
              Dim adocomm As New ADODB.Command
              Dim ReturnValue As Integer
              Set adocomm.ActiveConnection = connsys
              adocomm.CommandText = "proc_tabom_constrast"
              adocomm.CommandType = adCmdStoredProc
              adocomm.Parameters.Item("@bomType").Value = "bom"
              adocomm.Parameters.Item("@bomnum").Value = 0
              adocomm.Parameters.Item("@pid").Value = "returnPid"
              adocomm.Execute
              ReturnValue = adocomm.Parameters(0) '存储过程的返回值,返回1则成功执行。
              If ReturnValue = "-1" Then
                 exsheet1.Cells(k, 1) = "编号出错"
                 'MsgBox "历史BOM库中没有找到相同的BOM! 页号:" & j
              Else
     end if

以上为VB代码,请问在foxtable中如何写
[此贴子已经被作者于2017/4/21 20:02:22编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐作非为
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:456 积分:7267 威望:0 精华:0 注册:2012/2/6 12:27:00
  发帖心情 Post By:2017/4/21 20:09:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20170421200945.png
图片点击可在新窗口打开查看

Dim Cnn As New Data.OleDB.OleDbConnection(Connections("ns_sys").ConnectionString)
Cnn.Open()
Dim adoCmd As New Data.OleDB.OleDbCommand("proc_tabom_constrast", Cnn)
adoCmd.CommandType = System.Data.CommandType.StoredProcedure
adoCmd.Parameters.Add("@bomType", System.Data.SqlDbType.NVarchar)
adoCmd.Parameters("@bomType").Value = "bom"
adoCmd.Parameters.Add("@bomnum", System.Data.SqlDbType.Int)
adoCmd.Parameters("@bomnum").Value = 0
adoCmd.Parameters.Add("@pid", System.Data.SqlDbType.NVarchar, 50)
'adoCmd.Parameters("@pid").Value ="returnPid"
adoCmd.Parameters("@pid").Direction = System.Data.ParameterDirection.Output
adoCmd.ExecuteNonQuery()
output.show(adoCmd.Parameters("@pid").Value.ToString())


 回到顶部
帅哥哟,离线,有人找我吗?
狐作非为
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:456 积分:7267 威望:0 精华:0 注册:2012/2/6 12:27:00
  发帖心情 Post By:2017/4/21 20:45:00 [只看该作者]

请版主大人支持下,有点急

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107896 积分:548849 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/4/21 21:26:00 [只看该作者]

存储过程的参数定义发上来看看

 回到顶部
帅哥哟,离线,有人找我吗?
狐作非为
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:456 积分:7267 威望:0 精华:0 注册:2012/2/6 12:27:00
  发帖心情 Post By:2017/4/21 21:38:00 [只看该作者]


ALTER PROCEDURE [dbo].[proc_bom_constrast]
(       @bomType varchar(20),     --BOM类型
        @bomnum  int,             --记录数量
    @pid varchar(80) output   --返回产品ID
)


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107896 积分:548849 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/4/21 22:13:00 [只看该作者]

类型要一致

存储过程改成nvarchar试试

@bomType nvarchar(20)


或者代码使用System.Data.SqlDbType.VarChar

 回到顶部
帅哥哟,离线,有人找我吗?
狐作非为
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:456 积分:7267 威望:0 精华:0 注册:2012/2/6 12:27:00
  发帖心情 Post By:2017/4/21 22:43:00 [只看该作者]

第一种方式无效,报错一样
第二种方式无效,报错(Varchar,没有这个枚举)

[此贴子已经被作者于2017/4/21 22:46:12编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107896 积分:548849 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/4/21 23:12:00 [只看该作者]

System.Data.SqlDbType.VarChar我测试是有的,这是基本类型

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107896 积分:548849 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/4/21 23:14:00 [只看该作者]

连接的是什么数据库?

 回到顶部
帅哥哟,离线,有人找我吗?
狐作非为
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:456 积分:7267 威望:0 精华:0 注册:2012/2/6 12:27:00
  发帖心情 Post By:2017/4/21 23:14:00 [只看该作者]

mssql

 回到顶部
总数 22 1 2 3 下一页