`
hemin108
  • 浏览: 93868 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

使用exec执行存储过程 取得返回值

Go 
阅读更多

很多时候在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结果集里面找到你要的字段信息了···

 

分享到:
评论

相关推荐

    delphi如何调用sql存储过程,并获取结果

    调用`ExecProc`方法来执行存储过程。 ```delphi ADOStoredProc1.ExecProc; ``` #### 7. 获取结果 获取输出参数的值,并处理结果。 ```delphi Edit1.Text := ADOStoredProc1.Parameters[0].Value; ``` ### 完整示例...

    Python中执行存储过程及获取存储过程返回值的方法

    以下是一个示例,展示如何使用`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++ odbc访问...

    C#调用存储过程详解(带返回值、参数输入输出等)

    本文实例讲述了C#调用存储过程的方法。分享给大家供大家参考,具体如下: CREATE PROCEDURE [dbo].[GetNameById] @studentid varchar(8), @studentname nvarchar(50) OUTPUT AS BEGIN SELECT @studentname=...

    启动SQL Server时自动执行存储过程

    使用 sp_procoption 可以将现有存储过程指定为启动过程,也可以阻止过程在 SQL Server 启动时执行。 启动 SQL Server 时自动执行存储过程可以实现自动化维护、数据初始化、统计信息收集等操作,可以大大提高 SQL ...

    oracle 自动执行存储过程

    ### Oracle自动执行存储过程 #### 一、背景与需求 在很多实际应用场景中,我们可能会遇到需要定时执行某些任务的情况,比如数据清理、备份、统计分析等。在Oracle数据库环境中,可以通过创建定时任务来实现对特定...

    存储过程教程,vs2008下使用、调试存储过程

    执行存储过程时,可以使用`exec`命令,如下所示: ```sql exec GetCountOfCustomers exec GetCountOfCustomers 'A%' ``` 2. **流控制与SQL语句** 存储过程不仅包含SQL查询,还可能包含流程控制语句(如IF-...

    更新的存储过程如何用exec 调用

    解决exec调用更新的存储过程的两种方法,批量更新的存储过程用exec调用的方法

    使用存储过程访问MsSqlServer2000并带返回值+MD5加密

    存储过程可以用来封装复杂的数据库操作,同时通过返回值报告执行状态;而MD5加密则可以用于确保数据的完整性,尽管对于敏感信息(如密码),更推荐使用更安全的哈希算法,如SHA-256。在实际应用中,要始终考虑安全性...

    存储过程入门教程,适合新手

    1. 存储过程的返回值不等于函数的返回值,它主要用于表示执行状态,不能像函数那样直接在表达式中使用。 2. 调用存储过程时,务必使用EXEC关键字,不能直接像调用函数一样调用。 总的来说,存储过程是数据库开发中...

    有返回值SQL Server存储过程的一个调用方法.pdf

    调用有返回值SQL Server存储过程的一些方法 ...本文提供了调用有返回值的SQL Server存储过程的一些方法和步骤,旨在帮助Power Builder用户更好地使用存储过程提高程序的运行效率和系统的易维护性和扩展性。

    创建存储过程

    1. 对于没有返回值的存储过程,可以直接使用`EXEC`命令: ```sql EXEC 存储过程名称 @参数1, @参数2, ... ``` 2. 对于有输出参数的存储过程,需要声明变量并接收返回值: ```sql DECLARE @outputVar INT EXEC ...

    sql存储过程学习,详细的解说存储过程的语法,结构和用法。

    - 参数可以用来传递值到存储过程内部,而返回值可以指示过程执行的成功与否。 3. **存储过程应用** - 存储过程可用于批量处理,例如插入大量数据,或者执行复杂的业务逻辑。 - 它们也可以被其他存储过程调用,...

    ORACLE存储过程最全教程

    调用存储过程使用`EXECUTE`关键字,或者直接写过程名和参数,如`EXEC proc_name(param_value1, param_value2);` 四、存储过程的参数类型 1. IN参数:传递数据到过程,过程内部不能改变其值。 2. OUT参数:过程结束...

    创建存储过程,触发器

    执行存储过程可以通过EXEC或EXECUTE关键字,可以传递参数并获取返回值。查看和修改存储过程,通常使用SHOW PROCEDURE STATUS或ALTER PROCEDURE命令,重命名则使用RENAME对象,删除使用DROP PROCEDURE命令。 触发器...

    NHibernate调用存储过程全集,值.

    如果存储过程有多个输出参数或返回值,可以使用`NHibernateUtil`类的`GetType`方法指定输出参数的类型,并在调用后通过`GetResult`或`GetScalar`方法获取结果。 总结,调用存储过程在NHibernate中是一个实用的功能...

    NET中如何使用存储过程

    要在C#中使用这个存储过程,你需要创建一个`SqlConnection`对象以连接到数据库,然后创建一个`SqlCommand`对象来执行存储过程。有两种主要方法: **方法1:带有参数的SQL语句** 如果你的存储过程不涉及复杂的...

    oracle存储过程(语法实例).pdf

    Java可以通过JDBC调用Oracle存储过程,包括`CallableStatement`对象来执行过程并处理输入/输出参数。 9. **更新与权限保留** 使用`CREATE OR REPLACE PROCEDURE`语句更新存储过程时,原有执行权限不会丢失。 10....

    执行带回参动态SQL的带回参存储过程

    不同于输出参数,回参是通过`RETURN`语句来设置的,其值在存储过程的执行过程中只能设置一次。例如: ```sql CREATE PROCEDURE CheckAge @age INT AS BEGIN IF @age RETURN 0; -- 表示未达到年龄要求 ELSE ...

Global site tag (gtag.js) - Google Analytics