存储过程中的参数如何使用?

mooninglover 2004-04-29 02:46:58
还是存储过程的问题,想问一下如何使用存储过程中的参数。
下面是我做的例子,目的是把一个表中的数据抽出,插到另一个表中,参数时表名和数据抽出的条件,则么也编译不过去~~~

CREATE PROCEDURE table_manage(
@table varchar(100), --原表名
@old_table varchar(100), --想插入的表明
@condition varchar(1000) --抽数据的条件
)
AS

SET NOCOUNT ON

--事务开始
BEGIN TRANSACTION

--锁定表
SELECT COUNT(*) FROM @table WITH (TABLOCK,HOLDLOCK)

--把指定条件的数据抽出,插入到另一个表中
insert into @old_table
select * from @table where @condition

IF @@ERROR <> 0 BEGIN ROLLBACK TRANSACTION RETURN -4 END

--把已经移走的数据从源表中删除
delete * from @table where @condition

IF @@ERROR <> 0 BEGIN ROLLBACK TRANSACTION RETURN -5 END

--事务提交
COMMIT TRANSACTION

RETURN 0
GO
...全文
65 2 点赞 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
mooninglover 2004-04-29
现在不是执行的事,是我写的那个存储过程就编译不过去,根本建立不了,我不知道哪里不对??
  • 打赏
  • 举报
回复
ukyoxh 2004-04-29
给你一个使用存储过程的例子,你自己看一看

Append 和 CreateParameter 方法范例
该范例使用 Append 和 CreateParameter 方法执行具有输入参数的存储过程。

Public Sub AppendX()

Dim cnn1 As ADODB.Connection
Dim cmdByRoyalty As ADODB.Command
Dim prmByRoyalty As ADODB.Parameter
Dim rstByRoyalty As ADODB.Recordset
Dim rstAuthors As ADODB.Recordset
Dim intRoyalty As Integer
Dim strAuthorID As String
Dim strCnn As String

' 打开连接。
Set cnn1 = New ADODB.Connection
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
cnn1.Open strCnn
cnn1.CursorLocation = adUseClient

' 使用一个参数打开命令对象。
Set cmdByRoyalty = New ADODB.Command
cmdByRoyalty.CommandText = "byroyalty"
cmdByRoyalty.CommandType = adCmdStoredProc

' 获取参数值并追加参数。
intRoyalty = Trim(InputBox("Enter royalty:"))
Set prmByRoyalty = cmdByRoyalty.CreateParameter("percentage", _
adInteger, adParamInput)
cmdByRoyalty.Parameters.Append prmByRoyalty
prmByRoyalty.Value = intRoyalty

' 通过执行命令创建记录集。
Set cmdByRoyalty.ActiveConnection = cnn1
Set rstByRoyalty = cmdByRoyalty.Execute

' 打开 Authors 表以获取作者姓名进行显示。
Set rstAuthors = New ADODB.Recordset
rstAuthors.Open "authors", cnn1, , , adCmdTable

' 打印记录集中的当前数据,从 Authors 表中添加作者姓名。
Debug.Print "Authors with " & intRoyalty & " percent royalty"
Do While Not rstByRoyalty.EOF
strAuthorID = rstByRoyalty!au_id
Debug.Print " " & rstByRoyalty!au_id & ", ";
rstAuthors.Filter = "au_id = '" & strAuthorID & "'"
Debug.Print rstAuthors!au_fname & " " & rstAuthors!au_lname
rstByRoyalty.MoveNext
Loop

rstByRoyalty.Close
rstAuthors.Close
cnn1.Close

End Sub

  • 打赏
  • 举报
回复
相关推荐
军队作战SLG小游戏策划案+公式设计+JSON实例模拟打包 公元135年,相传高祖病重后继无人,宦官专权祸乱朝纲,同年群雄逐鹿风起云涌。乱世的暗流涌动,引起了不少英雄豪杰的注意。在广袤的疆域上,战马赫赫战鼓阵阵,纷飞的战火,是敌人还是朋友也逐渐清晰了起来,这一战不止为了义气还为了和平。 在你身边的有从军队一路砍杀过来的勇士,也有行侠仗义的游侠,也有代父从军的女子,也有从小被培养的刺客。他们组成了一支军队,运用自己擅长的作战方式,听从你的指挥,一切性命都系在你的身上,如何判断作战情况都在你的一念之间。当然军师会协助你,招兵买马,扩充军队,上阵步兵,作战方式均可与其商讨,谋而后立裁决果断并不冲突。 当然战场上武器一定是需要配备的,作战失去了武器就等同于失去了性命,如何为军队所有人配置趁手的武器也是作为主帅的你需要考虑的事情。训练军队的同时也要建设城镇,满满的谷仓,成群的鸡鸭,后方有稳健的保障,前方作战才能更加的果敢。 乱世出英雄,在各种战役飞快成长,创建一番属于自己的天地吧 实例对比描述: 实例说明: 实例展示了不同情况的军队作战效果,只需要调整参数既可以达到差异化目的。 第一组实例:1000军队的骑兵对战1000军队的骑兵,先手攻击方的
发帖
数据库(包含打印,安装,报表)
加入

1191

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
帖子事件
创建了帖子
2004-04-29 02:46
社区公告
暂无公告