sqlServer 存储过程编写和调用

只是简单的存储过程的编写,基本的语法,留个记录。

以下是一个简单的用户表的创建,和存储过程的添加用户,sql的调用的笔记


1:创建表:

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[tbluAccount](
	[UserID] [int] IDENTITY(1,1) NOT NULL,
	[UserName] [varchar](32) NOT NULL,
	[PassWord] [varchar](32) NOT NULL,
	[CreateTime] [datetime] NULL,
 CONSTRAINT [PK_tbluAccount] PRIMARY KEY CLUSTERED 
(
	[UserID] ASC
)WITH (FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]

GO


2:添加账号的存储过程:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[GSP_GG_Add_Account]
	@iUserID int OUTPUT,				--玩家唯一标识
	@szUserName varchar(32),
	@szPassWord varchar(32),
	@CreateTime datetime
AS
	SET NOCOUNT ON
	BEGIN TRAN
	--家族名称是否已经被用
	IF EXISTS(SELECT @iUserID FROM tbluAccount WHERE UserID = @iUserID)
	BEGIN 
		ROLLBACK TRAN
		RETURN -1
	END

	IF @iUserID < 0 
	BEGIN
		ROLLBACK TRAN
		RETURN -2
	END
	
	SET @iUserID = @@IDENTITY

	INSERT INTO tbluAccount(UserName,PassWord,CreateTime) VALUES (@szUserName,@szPassWord,@CreateTime);
	

	COMMIT TRAN

SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON


注意此时的@iUserID 是从0开始滴。。。


3:sqlserver中的调用存储过程测试:

declare @iUserID int
declare @Now datetime
SET @Now = GetDate()

EXEC [dbo].[GSP_GG_Add_Account] @iUserID OUTPUT,'lg8','lg8',@Now

SELECT @iUserID


4:C++中调用存储过程

CDBSqlServer sqlServer;
SQLWCHAR * pDSN = L"DRIVER={SQL Server};SERVER=SH-LIUGAO;DATABASE=uu278;UID=lg2;PWD=lg456&&;";

STACCOUNTINFO stAccountInfo;
bool bOK = sqlServer.DriverConnectSqlServer(pDSN);
if (bOK)
{
	int iEorrID = 0;
	int iUserID = 3;
		
	sqlServer.InitBindParam();
	sqlServer.BindParam(iEorrID, SQL_PARAM_OUTPUT);
	sqlServer.BindParam(iUserID);

	SQLWCHAR * strSql3 = L"{? = call dbo.GSP_GG_AccountInfo_GetInfo(?)}";
	bool bRet = sqlServer.ExecuteDirect(strSql3);
	sqlServer.InitBindCol();
	sqlServer.BindCol(stAccountInfo.iUserID);
	sqlServer.BindCol(stAccountInfo.szUserName, MAX_NAME_LEN+1);
	sqlServer.BindCol(stAccountInfo.szUserPWD, MAX_NAME_LEN + 1);
	sqlServer.BindCol(stAccountInfo.stCreateTime);

	bool bOK = sqlServer.Fetch();
	int id = 0;
	if (bOK)
	{
		id  = stAccountInfo.iUserID;
	}

	sqlServer.ClearMoreResult();
		
}




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值