Access 2010 执行SQLServer 2008 R2存储过程获取返回值
2011-11-10 16:02
591 查看
该示例描述了如何利用Access ADO 执行SQLServer 中的存储过程
1、运行SQL Server Management Studio, 创建数据库TestDb和如下图的表Customers:
2. 创建存储过程sp_AddCustomer
3. 创建Access Form并设计成如下:
4. 给ExcuteSqlProc添加事件:
5. 执行该存储过程会判断表中LastName是否存在,不存在就会插入一条记录并返回该记录的IdentityId。
1、运行SQL Server Management Studio, 创建数据库TestDb和如下图的表Customers:
2. 创建存储过程sp_AddCustomer
USE [TestDb] GO /****** Object: StoredProcedure [dbo].[sp_AddCustomer] Script Date: 11/10/2011 15:55:34 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[sp_AddCustomer] ( @ID int output, @CustomerLevelID numeric, @ContactFirstName nvarchar(255), @ContactLastName nvarchar(255) ) AS IF @ContactFirstName IS NOT NULL BEGIN IF NOT EXISTS ( SELECT * FROM Customers WHERE ContactLastName=@ContactLastName ) BEGIN INSERT INTO Customers ( [ContactFirstName] ,[ContactLastName] ,[CustomerLevelID] ) VALUES ( @ContactFirstName, @ContactLastName, @CustomerLevelID ) select @ID = @@IDENTITY return END ELSE select -1 return END ELSE select 0 return
3. 创建Access Form并设计成如下:
4. 给ExcuteSqlProc添加事件:
Option Compare Database Private Sub Command0_Click() AddCustomer End Sub Private Sub AddCustomer() DoCmd.Hourglass True Dim cn As ADODB.Connection Dim sp As ADODB.Command Set cn = New ADODB.Connection 'cn.ConnectionString = "Data Source=localhost;Initial Catalog=TestDb;Integrated Security=SSPI;" cn.ConnectionString = "Provider=SQLNCLI10;" _ & "Server=(local);" _ & "Database=TestDb;" _ & "Integrated Security=SSPI;" _ & "DataTypeCompatibility=80;" cn.Open Set sp = New ADODB.Command sp.ActiveConnection = cn sp.CommandType = adCmdStoredProc sp.CommandText = "sp_AddCustomer" sp.Parameters.Refresh sp.Parameters("@CustomerLevelID") = IIf(Me.txtCustomerLevelID = "", 0, Me.txtCustomerLevelID) sp.Parameters("@ContactFirstName") = Me.txtContactFirstName sp.Parameters("@ContactLastName") = Me.txtCustomerLastName sp.Execute Me.txtCustomerID = sp.Parameters("@ID").Value 'MsgBox sp.Parameters("@ID").Value cn.Close DoCmd.Hourglass False End Sub
5. 执行该存储过程会判断表中LastName是否存在,不存在就会插入一条记录并返回该记录的IdentityId。
相关文章推荐
- Python中执行存储过程及获取存储过程返回值的方法
- PHP调用sqlserver存储过程并获取返回值
- SqlServer获取存储过程返回值的实例
- asp.net/C# 执行存储过程技术要点,获取Return返回值,解决“存储过程总返回-1”的问题
- 在Sqlserver里获取存储过程返回值和带入参数实例
- sqlserver获取存储过程返回值
- sqlserver获取存储过程返回值
- SqlServer获取存储过程返回值的实例
- SqlServer获取存储过程返回值的实例
- EF中执行存储过程,获取output返回值
- asp.net/C# 执行存储过程技术要点,获取Return返回值,解决“存储过程总返回-1”的问题
- ASP.NET执行存储过程,并获取存储过程的返回值
- Python如何执行存储过程,获取存储过程返回值
- EF中执行存储过程,获取output返回值
- 升级到SQL Server 2008 R2,复制监视器中进程无法在“XXX”上执行“sp_replcmds”
- sqlserver 2008 R2 方便插入多行数据
- 获取存储过程返回值及代码中获取返回值
- SQL技巧:如何获取存储过程用return返回的值与判断SQL Server事务是否执行成功?
- SqlServer 2008 R2 域环境镜像问题小结
- thinkphp3.2.3连接sqlserver 2008 R2 数据库