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 */
}
- Sinh viên IT hẹp cửa xin việc nếu 'chỉ biết code đơn thuần
- Tìm hiểu quy ước đặt tên thiết bị lưu trữ trong Linux
- Tìm hiểu cấu trúc i-node và cách đọc thông tin tệp tin trong Linux
- Xu hướng mới trong phân tích và thiết kế hệ thống thông tin
- MuZero – Thuật toán Trí tuệ nhân tạo có khả năng tự học mạnh mẽ