(+84) 236.3827111 ex. 402

Gọi thủ tục trong DB2


Những đoạn mã sau đây sẽ chỉ ra cách gọi một thủ tục bằng các ngôn ngữ lập trình khác nhau.

Gọi thủ tục từ ứng dụng CLI/ODBC

SQLCHAR *stmt = (SQLCHAR *)
“CALL MEDIAN_RESULT _SET( ? )” ;
SQLDOUBLE sal = 20000.0; /*Chỉ ra parameter marker trong stmt */
SQLINTEGER salind = 0; /*Chỉ định giá trị
(variable) cho sal */
sqlrc = SQLPrepare(hstmt, stmt, SQL_NTS);
sqlrc = SQLBindParameter(hstmt, 1, SQL_PARAM_OUTPUT,
SQL_C_DOUBLE, SQL_DOUBLE, 0, 0, &sal, 0, &salind);
SQLExecute(hstmt);
if (salind == SQL_NULL_DATA)
printf(“Median Salary = NULL\n”);
else
printf(“Median Salary = %.2f\n\n”, sal);
/* Lấy tập kết quả đầu tiên */
sqlrc = StmtResultPrint(hstmt);
if (sqlrc == SQL_SUCCESS) {
/* Có 1 kết quả
khác */
sqlrc = SQLMoreResult(hstmt);

}

Gọi thủ tục từ ứng dụng VB.NET

Try
‘ Tạo một DB2 Command để chạy thủ tục
Dim procName As String = “TRUNC_DEMO”
Dim cmd As DB2Command = conn.CreateCommand()
Dim parm As DB2Parameter
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = procName
ng ký các tham s u ra cho DB2Command
parm = cmd.Parameters.Add(“v_lastname”, DB2Type.VarChar)
parm.Direction = ParameterDirection.Output
parm = cmd.Parameter.Add(“v_msg”, DB2Type.VarChar)
parm.Direction = ParameterDirection.Output
‘ Gọi lại thủ tục

Dim reader As DB2DataReader = cmd.ExecuteReader
Catch myException As DB2Exception
DB2ExceptionHandler(myException)
Catch
UnhandledExceptionHandler()
End Try

Gọi thủ tục từ ứng dụng Java

try
{
// Kết nối CSDL mẫu
String url = “jdbc:db2:sample”;
con = DriverManager.getConnection(url);
CallableStatement cs = con.prepareCall(“CALL
trunc_demo(?, ?)”);
// Đăng ký tham số đầu ra
callStmt.registerOutParameter(1, Types.VARCHAR);
callStmt.registerOutParameter(2, Types.VARCHAR);
cs.execute();
con.close();
}catch (Exception e)
{
/* Xử lý ngoại lệ ở đây */

}