本帖最后由 Noel 于 2018-5-7 10:01 编辑
关于oracle存储过程的连接,请见这篇帖子。下面是关于Sql Server 中存储过程的连接说明。
最近正好做了例子。请见附件。
步骤:
1. 导入用于连接存储过程的自定义web api.
详见:
http://help.grapecity.com.cn/pages/viewpage.action?pageId=5972594
其中导入了2个webapi:
POST executenonquery 用于连接修改数据类型的存储过程,返回值是影响行数
POST executequery 用于连接读取数据类型的存储过程,返回值是数据
2. 配置数据库连接字符串
新建数据表“_DataSources”,新建2个文本类型字段Name,ConnectionString
Name: 使用时的名字
ConnectionString: 数据库连接字符串
3. executenquery示例
请见页面1 的 获取某类别的产品数量 按钮
Js代码解释:
- //向ExecuteQuery发送post请求
- $.ajax(Forguncy.ForguncyData.ForguncyRoot+'customapi/spapi/ExecuteQuery', {
- method:'post',
- dataType:'json', //返回数据为json格式
- data:JSON.stringify({ //发送json格式参数
- ConnectionName:'dev03', //数据连接名称
- ProcedureName:'GetProductByCategory', //存储过程名称
- Parameters:{'@cid': Forguncy.Page.getCell('cid').getValue()} //存储过程参数
- })
- }).done(function(data){
- alert(data.ExecuteResult.length); //返回结果
- });
复制代码
4. executenonquery 示例
请见页面1 的 更新当前行的库存量 按钮。
需要注意的是,调用此接口需要用户已登录。
JS代码解释:
- var p = Forguncy.Page,
- storedCount = p.getCell('storedCount').getValue(),
- list = p.getListView('表格1'),
- id = list.getValue(list.getSelectedRowIndex(), 'id');
- //向ExecuteNonQuery'接口发送post请求
- $.ajax(Forguncy.ForguncyData.ForguncyRoot+'customapi/spapi/ExecuteNonQuery', {
- method:'post',
- data:JSON.stringify({ //请求中的json格式参数
- ConnectionName:'dev03', //数据库连接名称
- ProcedureName:'UpdateProductStoredCount', //存储过程名称
- Parameters:{'@id': id, '@storedCount': storedCount} //存储过程参数
- })
- }).done(function(data){ //返回处理
- var result = data.ExecuteResult;
- alert(result == 1 ? 'Success!' : 'Failed!');
- if(result == 1) list.reload();
- });
复制代码
5. executenonquery与Output类型参数 示例
- $.ajax(Forguncy.ForguncyData.ForguncyRoot+'customapi/spapi/ExecuteNonQuery', {
- method:'post', dataType:'json',
- data:JSON.stringify({
- ConnectionName:'dev03',
- ProcedureName:'GetProductCount',
- Parameters:{'@cid': Forguncy.Page.getCell('cid').getValue()},
- OutputParameters:{'@count':0} //设定Output类型参数和用于确定类型的默认值
- })
- }).done(function(data){
- alert(data.Output['@count']); //获取Output参数的返回值
- }).fail(function(data){
- alert(data);
- });
复制代码 |