CREATE procedure AutoAddKey
@KeyName nchar(30),
@KeyId char(10) OUTPUT
AS
select @keyid=isnull(max(@KeyName),str(year(getdate()))+str(month(getdate()))+'0001') from db_contract where @KeyName like str(year(getdate()))+str(month(getdate()))+'%'
GO
@KeyName nchar(30),
@KeyId char(10) OUTPUT
AS
select @keyid=isnull(max(@KeyName),str(year(getdate()))+str(month(getdate()))+'0001') from db_contract where @KeyName like str(year(getdate()))+str(month(getdate()))+'%'
GO
2:没必要用游标吧?
2. 尽量不要用游标
accessQQ.com 2004-3-4 ---------------------------------
ALTER PROCEDURE sp_2
@p int output,
@p1 int,
@p2 intas
set @p = @p1+@p2
return 99
---------------------------------Function returnP() Dim cmd As New ADODB.Command
Set cmd.ActiveConnection = CONN
'@return_value"这个参数在输入参数的最前面,名称是固定的
cmd.Parameters.Append cmd.CreateParameter("@return_value", adInteger, adParamReturnValue)'输入和输出的参数顺序同存储过程的参数顺序 cmd.Parameters.Append cmd.CreateParameter("@p", adInteger, adParamOutput)
cmd.Parameters.Append cmd.CreateParameter("@p1", adInteger, adParamInput,,1)
cmd.Parameters.Append cmd.CreateParameter("@p2", adInteger, adParamInput,,2) cmd.CommandText = "sp_2"
cmd.CommandType = adCmdStoredProc cmd.Execute Dim i As Integer For i = 0 To cmd.Parameters.Count - 1
Debug.Print cmd.Parameters(i).Name & "=" & cmd.Parameters(i).Value
Next iSet cmd.ActiveConnection = Nothing
Set cmd = NothingEnd Function'----------测试---------? returnP()
@return_value=99
@p=3
@p2=2
@p1=1