在SQL Server中使用存储过程的代码

作者:未知 来源:未知 添加时间:2006年7月3日 字体:

先在SQL Server中创建存储过程如下: 
CREATE PROCEDURE InsertOrtho 
(@ChildID varchar(10) out, 
@date datetime out, 
@therapistID varchar(10) out, 
@clinicID integer out, 
@skeletal varchar(1) out, 
@angleClass varchar(1) out, 
@deflection varchar(1) out, 
@OrthoNotes varchar(200) out) 
AS 
BEGIN 
INSERT INTO tblPatientOrtho &#118alueS 
(@ChildID, @date, @TherapistID, @ClinicID, @Skeletal, @angleClass, @deflection, @OrthoNotes) 
RETURN 
END 

这是一个向数据库插入的存储过程,所有的参数都是输出的,在JAVA里可以这样调用这个存储过程,程序如下: 
前面数据库的连接我就不写了 
public boolean InsertOrtho(Ortho ortho, String childID) 

boolean success = true; 


try 

CallableStatement stmt = con.prepareCall("{call InsertOrtho(?, ?, ?, ?, ?, ?, ?, ?)}"); 
stmt.registerOutParameter(1, java.sql.Types.VARCHAR); 
stmt.registerOutParameter(2, java.sql.Types.TIMESTAMP); 
stmt.registerOutParameter(3, java.sql.Types.VARCHAR); 
stmt.registerOutParameter(4, java.sql.Types.INTEGER); 
stmt.registerOutParameter(5, java.sql.Types.VARCHAR); 
stmt.registerOutParameter(6, java.sql.Types.VARCHAR); 
stmt.registerOutParameter(7, java.sql.Types.VARCHAR); 
stmt.registerOutParameter(8, java.sql.Types.VARCHAR); 


stmt.setString(1, childID); 
stmt.setObject(2, ortho.GetDate()); 
stmt.setString(3, ortho.GetTherapistID()); 
stmt.setInt(4, ortho.GetClinicID()); 
stmt.setString(5, ortho.GetSkeletal()); 
stmt.setString(6, ortho.GetAngleClass()); 
stmt.setString(7, ortho.GetDeflection()); 
stmt.setString(8, ortho.GetOrthoNotes()); 
stmt.executeUpdate(); 
stmt.clearParameters(); 
stmt.close(); 

catch (SQLException e) 

database.AddSQLError(e, "InsertOrtho()"); 
e.printStackTrace(); 
success = false; 

catch (java.lang.Exception e) 

database.AddException(e, "InsertOrtho()"); 
e.printStackTrace(); 
success = false; 

return success; 


希望对大家的数据库开发有所帮助 

ppdesk