• Thứ Bảy, 27/12/2003 11:25 (GMT+7)

    Câu hỏi :
    Khi viết trên ASP (Active Server Pages) có thể dùng câu lệnh WHERE trong SQL để truy cập hệ cơ sở dữ liệu dưới dạng biến chứ không phải là hằng số được không? Cho ví dụ minh họa.

    Trả lời :

    Dĩ nhiên là được và rất dễ dàng vì đây chính là điểm mạnh của ASP. Thật vậy, bạn có thể dùng môi trường lập trình InterDev của Microsoft để xây dựng các trang ASP truy xuất dữ liệu dùng giao tiếp ADO thông qua 2 điều khiển có sẵn ‘RecordSet’ và ‘Grid’. Để nhúng 1 điều khiển vào trang Web (hay ASP), bạn chỉ cần dùng cơ chế ‘drag mouse’ để kéo icon của nó từ cửa sổ Toolbox vào trang ASP, sau đó nhấn phải chuột trên RecordSet vừa tạo và chọn mục ‘Properties’ để hiển thị cửa sổ thuộc tính của RecordSet. Ở đây bạn sẽ khai báo 3 thuộc tính cơ bản nhất là ‘Name’ (tên nhận dạng RecordSet), ‘Connection’ (tên data source chứa database cần duyệt) và chọn checkbox ‘SQL Statement’. Tuy nhiên lúc này ta chỉ có thể nhập phát biểu SQL tìm kiếm ở dạng tĩnh. Để hiệu chỉnh lại phát biểu SQL ở dạng động, bạn có thể ‘override’ method ‘onbeforeopen’, đây là method sẽ được chạy mỗi khi RecordSet được mở. Để override method onbeforeopen của RecordSet, nhấn phải chuột trên phần tử RecordSet rồi chọn mục ‘Edit script’ để hiển thị cửa sổ ‘Script Outline’, mở mục ‘Server Objects & Events để tìm tên RecordSet, mở mục RecordSet và tìm hàm onbeforeopen(), nhấn đúp vào hàm để đi đến đoạn code của hàm và soạn thảo code theo mẫu sau:

    Sub

    KetquaTraDienThoai_onbeforeopen()

    ‘ Xây dựng lại phát biểu SQL mới trong biến newSQL

    ....

    ‘ Thiết lập lệnh SQL mới cho RecordSet

    KetquaTraDienThoai.setSQLText(newSQL)

    End Sub

    Chuyên mục: Mạng - truyền thông