Foxtable(狐表)用户栏目专家坐堂 → [分享]存储过程使用方法详记


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

主题:[分享]存储过程使用方法详记

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


加好友 发短信
等级:四尾狐 帖子:941 积分:7792 威望:0 精华:0 注册:2013/7/7 13:37:00
[分享]存储过程使用方法详记  发帖心情 Post By:2014/11/25 8:46:00 [只看该作者]

本人对存储过程比较陌生,这几天在论坛大能的帖子里整理学习了下。以下内容供分享及交流,不足之处还请指证
1.存储过程写法(例)
USE [PClothData]
GO
/****** 对象: StoredProcedure [dbo].[GroupStorePro] 脚本日期: 11/25/2014 08:37:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[GroupStorePro]

@FieldStr nvarchar(255) = '款号,颜色,尺码',
@FilterStr nvarchar(1000) = '1=1',
@HavingStr nvarchar(255) = '',
@OrderStr nvarchar(255) = '款号,颜色,尺码'
AS

Declare @sql NVarchar(4000)
Set @sql='Select '+@FieldStr+', Sum(数量) As [库存数量],Sum(CASE WHEN 正负 = 1 THEN 数量 ELSE 0 END) As [入库数量],Sum(CASE WHEN 正负 = -1 THEN 数量 ELSE 0 END)*-1 As [出库数量],round((CASE WHEN Sum(CASE WHEN 正负 = 1 THEN 数量 ELSE 0 END) = 0 then 0 else (Sum(CASE WHEN 正负 = -1 THEN 数量 ELSE 0 END)*-1)/(Sum(CASE WHEN 正负 = 1 THEN 数量 ELSE 0 END)*1.0) end),2) As [出库率] From 单据详情 Inner JOIN 单据列表 ON 单据列表.[单据编号] = 单据详情.[单据编号] Where '+@FilterStr+' Group By '+@FieldStr+' '+@HavingStr+' Order by '+@OrderStr+''
Exec sp_executesql @sql

2.调用方法(传统)
Dim cmd As New SQLCommand
cmd.Connection Name = "ClothData"
cmd.CommandText = "Exec GroupStorePro,'参数1','参数2','参数3','参数4'"
库存查询表 = cmd.ExecuteReader
Tables("库存查询_TablePageBill").DataSource = 库存查询表
库存查询表为全局变量datatable

3.调用方法(新发现)
Tables("库存查询_TablePageBill").Fill("Exec GroupStorePro,'参数1','参数2','参数3','参数4'","PClothData",True)
4.存储过程中select及where 用到的文本字段建非聚集索引,可成倍提高查询速度。

---------------------------------------------------
堪误 :  "Exec GroupStorePro,'参数1','参数2','参数3','参数4'"   写法错误,红色逗号处应为空格,也就是说 过程名与 参数要用空格分开
正确写法"Exec GroupStorePro   '参数1','参数2','参数3','参数4'"  


[此贴子已经被作者于2014-11-26 13:10:34编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/11/25 8:57:00 [只看该作者]

谢谢分享

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


加好友 发短信
等级:版主 帖子:1693 积分:12135 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2014/11/25 9:00:00 [只看该作者]

不错,顶


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


加好友 发短信
等级:八尾狐 帖子:1822 积分:19501 威望:0 精华:0 注册:2013/4/10 14:38:00
  发帖心情 Post By:2014/11/25 23:28:00 [只看该作者]

不错,暂时用不上,要开发大系统才用得上

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


加好友 发短信
等级:四尾狐 帖子:822 积分:5885 威望:0 精华:0 注册:2013/7/29 12:00:00
  发帖心情 Post By:2014/11/26 13:03:00 [只看该作者]


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


加好友 发短信
等级:五尾狐 帖子:1100 积分:8985 威望:0 精华:0 注册:2014/3/15 14:36:00
  发帖心情 Post By:2015/4/28 0:58:00 [只看该作者]

顶,正要用。

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


加好友 发短信
等级:狐神 帖子:6885 积分:43595 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2015/4/28 7:53:00 [只看该作者]

楼主的帖子有人看懂如何用了吗?

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


加好友 发短信
等级:一尾狐 帖子:459 积分:3842 威望:0 精华:0 注册:2016/8/21 3:43:00
  发帖心情 Post By:2020/4/17 13:45:00 [只看该作者]

哈哈 正需要 谢谢

 回到顶部