浏览 2515 次
锁定老帖子 主题:请教java执行存储过程的问题
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-01-29
CREATE PROCEDURE set_sche @task_id int,@emp_id int,@content nchar(50),@id int out AS Declare @ta_id int ,@date datetime ,@countask int set @date=convert(char(10),GETDATE(),111) select @ta_id=a_id from M72assign where task=@task_id and emp=@emp_id if @ta_id is null return 0 else begin select @countask=count(*) from M72tasksche where ta_id=@ta_id if @countask='0' insert into M72tasksche (ta_id,sche_date,sche_content) values(@ta_id,convert(char(10),GETDATE(),111),@content) else begin if @date not in (select sche_date from M72tasksche where ta_id=@ta_id) insert into M72tasksche (ta_id,sche_date,sche_content) values(@ta_id,convert(char(10),@date,111),@content) else update M72tasksche set sche_content=@content where ta_id=@ta_id and sche_date=@date end select @id=@ta_id return @id end GO 在sql server的查询分析器里输入三个参数是可以输出参数并插入或更新记录的,但是通过jdbc就只有输出参数,没有执行插入和更新,也没有报错,这咋整呢?java代码如下: package DAO; import java.sql.*; import com.myPerform.database.Database; import bean.task; //import com.myPerform.database.Database; public class scheprocedure { Connection conn =null; public void setSche(task task){ try { conn=Database.getConnection(); CallableStatement cs = conn.prepareCall("{call set_sche(?,?,?,?)}"); cs.setInt(1, Integer.parseInt(task.getT_id()));//参数的传送 cs.setInt(2,Integer.parseInt(task.getEmpId())); cs.setString(3,task.getSche()); cs.registerOutParameter(4, Types.VARCHAR);//指定第4个参数为输出参数 cs.executeUpdate(); String strName = cs.getString(4);//从存诸过程中得到第4个参数内容 System.out.println(strName); cs.close(); conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * @param args */ public static void main(String[] args) { task ta=new task(); ta.setEmpId("10000002"); ta.setT_id("10006"); ta.setSche("zzzzzzzzzzz"); scheprocedure sp=new scheprocedure(); sp.setSche(ta); } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-01-29
会不会是事务没有提交呢?
|
|
返回顶楼 | |
发表时间:2008-01-29
应该不是,我单独抽出来的并没有写事务啊...
|
|
返回顶楼 | |
发表时间:2008-01-29
的确要通过事务才行,大谢!
|
|
返回顶楼 | |