很多时候在java代码使用exec 函数调用存储过程很方便 但有时不能将结果返回,虽然使用下面的方法能将readerId
public int readerLogin(String procName,String readerName,String readerPassword){
int readerId =-1;
if(procName!=null&&!procName.equals("")){
getStm(procName);
try{
stm.setString(1,readerName);//传第一个参数
stm.setString(2,readerPassword);//传第二个参数
stm.registerOutParameter(3,Types.INTEGER);//设置返回值
rs=stm.executeQuery();
readerId=stm.getInt(1);
}catch(Exception e){
e.printStackTrace();
System.out.println("执行readerLogin出错");
}
}
return readerId;
----------------------------------------
存储过程如下
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
/*
* @author 何敏
* @date 2009.0728
* @function 验证用户登录
*/
ALTER procedure [dbo].[readerLogin]
@readerName varchar(20),--读者登陆名
@readerPassword varchar(20),--登录密码
@readerId int output --返回读者Id,要是输入的用户名和密码匹配则返回读者Id否则为-1
as
declare
@flag int--定义一个局部变量
select @flag=readerId from tb_reader where readerName=@readerName and readerPassword=@readerPassword
if (@flag>0)--当用户名和密码都匹配时@flag为读者Id这个是大于0的。
set @readerId=@flag;--把读者Id赋值给@readerId输出
else
set @readerId=-1;--否则吧@readerId赋值-1,输出
return @readerId
--------------------------------------------------------
但是要用exec 执行存储过程怎么取得你要的值呢,很好,只要将局部变量,添加到你要的搜索列 里面你就能在ResultSet结果集里面找到你要的字段信息了···
分享到:
相关推荐
调用`ExecProc`方法来执行存储过程。 ```delphi ADOStoredProc1.ExecProc; ``` #### 7. 获取结果 获取输出参数的值,并处理结果。 ```delphi Edit1.Text := ADOStoredProc1.Parameters[0].Value; ``` ### 完整示例...
以下是一个示例,展示如何使用`adodbapi`执行存储过程并获取返回值: ```python from adodbapi import connect server = 'dbserver' user = 'username' password = 'password' database = 'database' sp = ...
odbc访问存储过程/C++ odbc访问存储过程/C++ odbc访问存储过程/C++ odbc访问存储过程/C++ odbc访问存储过程/C++ odbc访问存储过程/C++ odbc访问存储过程/C++ odbc访问存储过程/C++ odbc访问存储过程/C++ odbc访问...
本文实例讲述了C#调用存储过程的方法。分享给大家供大家参考,具体如下: CREATE PROCEDURE [dbo].[GetNameById] @studentid varchar(8), @studentname nvarchar(50) OUTPUT AS BEGIN SELECT @studentname=...
使用 sp_procoption 可以将现有存储过程指定为启动过程,也可以阻止过程在 SQL Server 启动时执行。 启动 SQL Server 时自动执行存储过程可以实现自动化维护、数据初始化、统计信息收集等操作,可以大大提高 SQL ...
### Oracle自动执行存储过程 #### 一、背景与需求 在很多实际应用场景中,我们可能会遇到需要定时执行某些任务的情况,比如数据清理、备份、统计分析等。在Oracle数据库环境中,可以通过创建定时任务来实现对特定...
执行存储过程时,可以使用`exec`命令,如下所示: ```sql exec GetCountOfCustomers exec GetCountOfCustomers 'A%' ``` 2. **流控制与SQL语句** 存储过程不仅包含SQL查询,还可能包含流程控制语句(如IF-...
解决exec调用更新的存储过程的两种方法,批量更新的存储过程用exec调用的方法
存储过程可以用来封装复杂的数据库操作,同时通过返回值报告执行状态;而MD5加密则可以用于确保数据的完整性,尽管对于敏感信息(如密码),更推荐使用更安全的哈希算法,如SHA-256。在实际应用中,要始终考虑安全性...
1. 存储过程的返回值不等于函数的返回值,它主要用于表示执行状态,不能像函数那样直接在表达式中使用。 2. 调用存储过程时,务必使用EXEC关键字,不能直接像调用函数一样调用。 总的来说,存储过程是数据库开发中...
调用有返回值SQL Server存储过程的一些方法 ...本文提供了调用有返回值的SQL Server存储过程的一些方法和步骤,旨在帮助Power Builder用户更好地使用存储过程提高程序的运行效率和系统的易维护性和扩展性。
1. 对于没有返回值的存储过程,可以直接使用`EXEC`命令: ```sql EXEC 存储过程名称 @参数1, @参数2, ... ``` 2. 对于有输出参数的存储过程,需要声明变量并接收返回值: ```sql DECLARE @outputVar INT EXEC ...
- 参数可以用来传递值到存储过程内部,而返回值可以指示过程执行的成功与否。 3. **存储过程应用** - 存储过程可用于批量处理,例如插入大量数据,或者执行复杂的业务逻辑。 - 它们也可以被其他存储过程调用,...
调用存储过程使用`EXECUTE`关键字,或者直接写过程名和参数,如`EXEC proc_name(param_value1, param_value2);` 四、存储过程的参数类型 1. IN参数:传递数据到过程,过程内部不能改变其值。 2. OUT参数:过程结束...
执行存储过程可以通过EXEC或EXECUTE关键字,可以传递参数并获取返回值。查看和修改存储过程,通常使用SHOW PROCEDURE STATUS或ALTER PROCEDURE命令,重命名则使用RENAME对象,删除使用DROP PROCEDURE命令。 触发器...
如果存储过程有多个输出参数或返回值,可以使用`NHibernateUtil`类的`GetType`方法指定输出参数的类型,并在调用后通过`GetResult`或`GetScalar`方法获取结果。 总结,调用存储过程在NHibernate中是一个实用的功能...
要在C#中使用这个存储过程,你需要创建一个`SqlConnection`对象以连接到数据库,然后创建一个`SqlCommand`对象来执行存储过程。有两种主要方法: **方法1:带有参数的SQL语句** 如果你的存储过程不涉及复杂的...
Java可以通过JDBC调用Oracle存储过程,包括`CallableStatement`对象来执行过程并处理输入/输出参数。 9. **更新与权限保留** 使用`CREATE OR REPLACE PROCEDURE`语句更新存储过程时,原有执行权限不会丢失。 10....
不同于输出参数,回参是通过`RETURN`语句来设置的,其值在存储过程的执行过程中只能设置一次。例如: ```sql CREATE PROCEDURE CheckAge @age INT AS BEGIN IF @age RETURN 0; -- 表示未达到年龄要求 ELSE ...