Thiết bị 2.1 Định nghĩa phương thức 1 cho thiết bị Nhập mã khách hàng vào để trả về TÊN THIẾT BỊ | LOẠI THIẾT BỊ | ĐƠN VỊTÍNH.. 3.5 Định nghĩa phương thức 5 cho Nhập Thêm thông tin vào b
Trang 1TRƯỜNG ĐẠI HỌC ĐỒNG THÁP
KHOA SƯ PHẠM TOÁN – TIN
Sinh viên thực hiện:
CƠ SỞ DỮ LIỆU NÂNG CAO QUẢN LÝ KINH DOANH THIẾT BỊ CNTT HIỆP TOÀN
NGÀNH KHOA HỌC MÁY TÍNH Lớp: ĐHCNTT21-L2
Trang 2Ngày nay máy tính trở thành một phương tiện quan trọng được ứng dụng trongmọi lĩnh vực, một trong những ứng dụng đó là quản lý Trong đó, PL/SQL (Procedural
Language/Structured Query Language) là một hệ quản trị cơ sở dữ liệu dùng để tạo và
xử lý dữ liệu, cho phép quản lý dữ liệu một cách có tổ chức thống nhất, liên kết các dữliệu rời rạc thành một hệ thống hoàn chỉnh, thay thế cho việc quản lý dữ liệu bằngcách thủ công Lập trình cơ sở dữ liệu nâng cao là một môn học hay, ứng dụng cao màchúng em được cô trong khoa Khoa SP Toán – Tin Trường Đại học Đồng Tháp giảngdạy Vì những lý do đó, nhóm em đã chọn Đề tài xây dựng CSDL “Quản lý kinh doanhthiết bị CNTT Hiệp Toàn” làm đề tài báo cáo với mục đích ứng dụng những kiến thứcđãđược học
Mặc dù đã hết sức cố gắng nhưng do kiến thức của nhóm em còn nhiều hạn chếnên không tránh khỏi sai sót trong quá trình thưc hiện đề tài Vì vậy, nhóm em rấtmong có được sự đóng góp ý kiến của cô để chương trình của nhóm em được hoànthiện hơn
Nhóm em xin chân thành cảm ơn cô giáo hướng dẫn Nguyễn Thị Mỹ Dung đã
trực tiếp hướng dẫn, chỉ bảo và giúp đỡ nhóm em trong thời gian học
Đồng Tháp, ngày 26 tháng 11 năm 2021
MỤC LỤC
Trang 3CHƯƠNG 1: THIẾT KẾ CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG QUẢN LÝ KINH DOANH
THIẾT BỊ CNTT HIỆP TOÀN
I Giới thiệu
1. Giới thiệu lược đồ quan hệ và sơ đồ lớp (Class – Object) 2. Xây dựng bộ dữ liệu mẫu
II Mô tả các phương thức cho từng lớp (class – Object)
CHƯƠNG 2: THIẾT KẾ CSDL HƯỚNG ĐỐI TƯỢNG QUẢN LÝ KINH DOANH THIẾT BỊ CNTT HIỆP TOÀN
I Cài đặt class và phương thức
1. Cài đặt class <Khách hàng> và phương thức (Khách hàng)
2. Cài đặt class <Thiết bị> và phương thức (Thiết bị) …
3. Cài đặt class <Nhập> và phương thức (Nhập) …
4. Cài đặt class <Xuất> và phương thức (Xuất) …
II Truy vấn dữ liệu hướng đối tượng
1. Thực thi phương thức cho class <Khách hàng> và kết quả
2. Thực thi phương thức cho class <Thiết bị> và kết quả
3 Thực thi phương thức cho class <Nhập> và kết quả 40
4 Thực thi phương thức cho class <Xuất> và kết quả
PHẦN KẾT LUẬN
I Kết quả đạt được
II Hướng phát triển
Trang 5CHƯƠNG 1: THIẾT KẾ CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
QUẢN LÝ KINH DOANH THIẾT BỊ CNNT HIỆP TOÀN
I Giới thiệu
1 Giới thiệu lược đồ quan hệ và sơ đồ lớp (Class – Object)
- Bảng Khách hàng:
- Bảng Thiết bị:
- Bảng Nhập:
Trang 6- Bảng Xuất:
II Mô tả các phương thức cho từng lớp (class – Object)
1 Khách hàng
1.1 Định nghĩa Phương thức 1 cho khách hàng.
Nhập mã khách hàng vào để trả về TÊN KHÁCH HÀNG | NGÀY SINH | ĐỊACHỈ | SỐ ĐIỆN THOẠI
1.2 Định nghĩa phương thức 2 cho khách hàng
Thể hiện ra danh sách tất cả các khách hàng hiện tại với nội dung: MÃ KHÁCHHÀNG | TÊN KHÁCH HÀNG | NGÀY SINH | ĐỊA CHỈ KHÁCH HÀNG | SỐ ĐIỆNTHOẠI KHÁCH HÀNG
1.3 Định nghĩa phương thức 3 cho khách hàng
Đếm TỔNG SỐ KHÁCH HÀNG hiện có bao nhiêu
1.4 Định nghĩa phương thức 4 cho khách hàng
Thêm khách hàng mới với thông tin nhập vào: MÃ KHÁCH HÀNG, TÊNKHÁCH HÀNG, NGÀY SINH(dd-mm-yyyy), ĐỊA CHỈ, SỐ ĐIỆN THOẠI
1.5 Định nghĩa phương thức 5 cho khách hàng
Cập nhật thông tin khách hàng với thông tin nhập vào: MÃ KHÁCH HÀNG(tiến hành cập nhật), TÊN KHÁCH HÀNG MỚI, NGÀY SINH MỚI, ĐỊA CHỈ MỚI,
SỐ ĐIỆN THOẠI MỚI
1.6 Định nghĩa phương thức 6 cho khách hàng
Xóa khách hàng, nhập MÃ KHÁCH HÀNG tiến hành xóa
2 Thiết bị
2.1 Định nghĩa phương thức 1 cho thiết bị
Nhập mã khách hàng vào để trả về TÊN THIẾT BỊ | LOẠI THIẾT BỊ | ĐƠN VỊTÍNH
2.2 Định nghĩa phương thức 2 cho thiết bị
Trang 7Thể hiện ra danh sách tất cả các khách hàng hiện tại với nội dung: MÃ THIẾT BỊ
| TÊN THIẾT BỊ | LOẠI THIẾT BỊ | ĐƠN VỊ TÍNH
2.3 Định nghĩa phương thức 3 cho thiết bị Đếm
TỔNG SỐ THIẾT BỊ hiện có bao nhiêu
2.4 Định nghĩa phương thức 4 cho thiết bị
Thêm thông tin thiết bị mới với thông tin nhập vào: MÃ THIẾT BỊ, TÊN THIẾT
BỊ, LOẠI THIẾT BỊ, ĐƠN VỊ TÍNH
2.5 Định nghĩa phương thức 5 cho thiết bị
Cập nhật thông tin thiết bị với thông tin nhập vào: MÃ THIẾT BỊ (tiến hành cập nhật), TÊN THIẾT BỊ MỚI, LOẠI THIẾT BỊ MỚI, ĐƠN VỊ TÍNH MỚI
2.6 Định nghĩa phương thức 6 cho thiết bị
Xóa thiết bị, nhập MÃ THIẾT BỊ tiến hành xóa
3 Nhập
3.1 Định nghĩa phương thức 1 cho Nhập Liên
kết lấy thông tin từ bảng KHÁCH HÀNG
3.2 Định nghĩa phương thức 2 cho Nhập
Liên kết lấy thông tin bảng THIẾT BỊ
3.3 Định nghĩa phương thức 3 cho Nhập
Lấy thông tin KHÁCH HÀNG theo MÃ THIẾT BỊ
3.4 Định nghĩa Phuong thức 4 cho Nhập
Lấy thông tin THIẾT BỊ theo MÃ KHÁCH HÀNG
3.5 Định nghĩa phương thức 5 cho Nhập
Thêm thông tin vào bảng NHẬP với thông tin nhập vào: MÃ KHÁCH HÀNG,
MÃ THIẾT BỊ, NGÀY NHẬP, SỐ LƯỢNG NHẬP, ĐƠN GIÁ NHẬP, NỘI DUNGNHẬP
4 Xuất
4.1Định nghĩa phương thức 1 cho Xuất
Liên kết lấy thông tin từ bảng KHÁCH HÀNG
4.2Định nghĩa phương thức 2 cho Xuất
Liên kết lấy thông tin từ bảng THIẾT BỊ
4.3Định nghĩa phương thức 3 cho Xuất
Láy thông tin KHÁCH HÀNG theo MÃ THIẾT BỊ
Trang 84.4Định nghĩa phương thức 4 cho Xuất
Lấy thông tin THIẾT BỊ theo MÃ KHÁCH HÀNG
4.5Định nghĩa phương thức 5 cho Xuất
Thêm thông tin vào bảng XUẤT với thông tin nhập vào: MÃ KHÁCH HÀNG,
MÃ THIẾT BỊ, NGÀY XUẤT, SỐ LƯỢNG XUẤT, ĐƠN GIÁ XUẤT, NỘI DUNGXUẤT
CHƯƠNG 2: THIẾT KẾ CSDL HƯỚNG ĐỐI TƯỢNG QUẢN LÝ KINH DOANH THIẾT BỊ CNTT HIỆP TOÀN.
I Cài đặt class và phương thức
1. Cài đặt class <Khách hàng> và phương thức (Khách hàng)
1.1 Tạo đối tượng khách hàng:
CREATE OR REPLACE TYPE KHACHHANG_TYPE AS OBJECT
STATIC PROCEDURE SHOW_TENKH (MA
CHAR), STATIC PROCEDURE DS_KH,
STATIC FUNCTION GET_SOKH RETURN NUMBER,
STATIC PROCEDURE THEMKH (MA CHAR, TEN
VARCHAR2, NS DATE, DC VARCHAR2, SDT CHAR),STATIC PROCEDURE SUAKH (MA CHAR, TENMOI VARCHAR2,
NSMOI DATE, DCMOI VARCHAR2, SDTMOI CHAR), STATIC PROCEDURE XOAKH (MA CHAR)
);
1.2 Tạo bảng khách hàng:
Trang 9CREATE TABLE KHACHHANG OF
KHACHHANG_TYPE (
PRIMARY KEY(MAKH)
);
1.3 Định nghĩa phương thức cho khách hang
CREATE OR REPLACE TYPE BODY KHACHHANG_TYPE
AS Định nghĩa phương thức 1 cho KHACHHANG
STATIC PROCEDURE SHOW_TENKH (MA CHAR)
IS CURSOR C_KH (MA CHAR) ISSELECT TENKH, NGSINH, DIACHI, SODT FROM KHACHHANG WHERE MAKH = MA;
B_KH C_KH%ROWTYPE;
BEGINFOR B_KH IN C_KH(MA)LOOP
DBMS_OUTPUT.PUT_LINE (MA || ' TEN LA: ' || B_KH.TENKH || ',NGAY SINH: '|| B_KH.NGSINH || ', DIA CHI: ' || B_KH.DIACHI || ',
SO DIEN THOAI: ' || B_KH.SODT);
Trang 10FROM KHACHHANG;
B_KH C_KH%ROWTYPE;
BEGINDBMS_OUTPUT.PUT_LINE ('MA KHACH HANG | TEN KHACH HANG |
NGAY SINH | DIA CHI KHACH HANG | SO DIEN THOAI KHACH HANG');
FOR B_KH IN C_KHLOOP
DBMS_OUTPUT.PUT_LINE (B_KH.MAKH || ' | ' || B_KH.TENKH || ' | ' ||
B_KH.NGSINH || ' | ' || B_KH.DIACHI || ' | ' || B_KH.SODT);
END LOOP;
END;
Định nghĩa phương thức 3 cho KHACHHANG
STATIC FUNCTION GET_SOKH RETURN NUMBER IS TSKH NUMBER;
BEGINSELECT COUNT(*) INTO TSKH FROM KHACHHANG;
RETURN TSKH;
END;
Định nghĩa phương thức 4 cho KHACHHANG
STATIC PROCEDURE THEMKH (MA CHAR, TEN VARCHAR2, NS
DATE, DC VARCHAR2, SDT CHAR) ISDEM INT;
BEGINSELECT COUNT(*) INTO DEMFROM KHACHHANG
WHERE MAKH = MA;
IF (DEM = 1) THEN
Trang 11DBMS_OUTPUT.PUT_LINE('TRUNG MA SO KHACH HANG');ELSE
INSERT INTO KHACHHANG VALUES (MA, TEN, NS, DC, SDT); DBMS_OUTPUT.PUT_LINE('DA THEM KHACH HANG');END IF;
END;
Định nghĩa phương thức 5 KHACHHANG
STATIC PROCEDURE SUAKH (MA CHAR, TENMOI VARCHAR2, NSMOI DATE, DCMOI VARCHAR2, SDTMOI CHAR) IS
DEM INT;
BEGINSELECT COUNT(*) INTO DEMFROM KHACHHANG
WHERE MAKH = MA;
IF (DEM = 1) THENUPDATE KHACHHANGSET TENKH = TENMOI, NGSINH = NSMOI, DIACHI = DCMOI, SODT = SDTMOI WHERE MAKH = MA;
DBMS_OUTPUT.PUT_LINE('SUA KHACH HANG THANH CONG');ELSE
DBMS_OUTPUT.PUT_LINE('MA SO KHACH HANG NAY KHONG
CO'); END IF;
END;
Định nghĩa phương thức 6 cho KHACHHANG
Trang 12STATIC PROCEDURE XOAKH (MA CHAR)
IS DEM INT;
BEGINSELECT COUNT(*) INTO DEMFROM KHACHHANG
WHERE MAKH = MA;
IF (DEM = 1) THENDELETE KHACHHANGWHERE MAKH = MA;
DBMS_OUTPUT.PUT_LINE('XOA KHACH HANG THANH CONG'); ELSE
DBMS_OUTPUT.PUT_LINE('MA SO KHACH HANG NAY KHONG
CO'); END IF;
END;
END;
2 Cài đặt class <Thiết bị> và phương thức (Thiết bị)
2.1 Tạo đối tượng thiết bị:
CREATE OR REPLACE TYPE THIETBI_TYPE AS
OBJECT (
MATB CHAR(5),TENTB VARCHAR2(40),LOAITB CHAR(15),DVTTB CHAR(10),STATIC PROCEDURE SHOW_TENTB (MA CHAR),STATIC PROCEDURE DS_TB,
Trang 13STATIC FUNCTION GET_SOTB RETURN NUMBER,STATIC PROCEDURE THEMTB (MA CHAR, TEN VARCHAR2, LOAICHAR, DVT CHAR),
STATIC PROCEDURE SUATB (MA CHAR, TENMOI VARCHAR2, LOAIMOI CHAR, DVTMOI CHAR),
STATIC PROCEDURE XOATB (MA CHAR));
2.2 Tạo bảng thiết bị:
CREATE TABLE THIETBI OF
THIETBI_TYPE (
PRIMARY KEY(MATB));
2.3 Định nghĩ phương thức cho thiết bị
CREATE OR REPLACE TYPE BODY THIETBI_TYPE AS
Định nghĩa phương thức 1 cho THIETBI
STATIC PROCEDURE SHOW_TENTB (MA CHAR) IS
CURSOR C_TB (MA CHAR) IS
SELECT TENTB, LOAITB, DVTTBFROM THIETBI
WHERE MATB = MA;
B_TB C_TB%ROWTYPE;
BEGIN
FOR B_TB IN C_TB(MA)LOOP
DBMS_OUTPUT.PUT_LINE (MA || ' LA THIET BI: ' || B_TB.TENTB || ',LOAI: '|| B_TB.LOAITB || ', DON VI TÍNH: ' || B_TB.DVTTB);
Trang 14B_TB C_TB%ROWTYPE;
BEGINDBMS_OUTPUT.PUT_LINE ('MA THIET BI | TEN THIET BI | LOAI | DON VI TINH');
FOR B_TB IN C_TBLOOP
DBMS_OUTPUT.PUT_LINE (B_TB.MATB || ' | ' || B_TB.TENTB || '
| ' || B_TB.LOAITB || ' | ' || B_TB.DVTTB);
END LOOP;
END;
Định nghĩa phương thức 3 cho THIETBI
STATIC FUNCTION GET_SOTB RETURN NUMBER IS TSTB
Trang 15STATIC PROCEDURE THEMTB (MA CHAR, TEN VARCHAR2, LOAI CHAR, DVT CHAR) IS
INSERT INTO THIETBI VALUES (MA, TEN, LOAI, DVT);
DBMS_OUTPUT.PUT_LINE('DA THEM THIET BI');
END IF;
END;
Định nghĩa phương thức 5 THIETBI
STATIC PROCEDURE SUATB (MA CHAR, TENMOI VARCHAR2, LOAIMOI CHAR, DVTMOI CHAR) IS
DEM INT;
BEGINSELECT COUNT(*) INTO DEM FROM THIETBI WHERE MATB = MA;
IF (DEM = 1) THENUPDATE THIETBISET TENTB = TENMOI, LOAITB = LOAIMOI, DVTTB =DVTMOI
WHERE MATB = MA;
DBMS_OUTPUT.PUT_LINE('SUA THIET BI THANH CONG');ELSE
DBMS_OUTPUT.PUT_LINE('MA SO THIET BI NAY KHONG CO');
Trang 16END IF;
END;
Định nghĩa phương thức 6 cho THIETBI
STATIC PROCEDURE XOATB (MA CHAR) IS
DEM INT;
BEGIN
SELECT COUNT(*) INTO DEM FROM THIETBI WHERE MATB = MA;
IF (DEM = 1) THENDELETE THIETBIWHERE MATB = MA;
DBMS_OUTPUT.PUT_LINE('XOA THIET BI THANH CONG'); ELSE
DBMS_OUTPUT.PUT_LINE('MA SO THIET BI NAY KHONG CO'); END IF;
END;
END;
3 Cài đặt class <Nhập> và phương thức (Nhập)
3.1 Tạo đối tượng nhập:
CREATE OR REPLACE TYPE NHAP_TYPE AS
OBJECT (
NHAPKH REF KHACHHANG_TYPE,NHAPTB REF THIETBI_TYPE,
NGNHAP DATE,SLNHAP NUMBER,DGNHAP NUMBER,
Trang 17NDNHAP VARCHAR2(40),MEMBER FUNCTION GET_KHACHHANG RETURN KHACHHANG_TYPE,
MEMBER FUNCTION GET_THIETBI RETURN THIETBI_TYPE,STATIC FUNCTION GET_KHNHAPTB (MTB NVARCHAR2) RETURN KHACHHANG_TYPE,
STATIC FUNCTION GET_TBNHAPKH (MKH NVARCHAR2) RETURN THIETBI_TYPE,
STATIC PROCEDURE THEM_NHAP (MKH NVARCHAR2, MTB NVARCHAR2, NGAY DATE, SL NUMBER, DG NUMBER, ND VARCHAR2)
);
3.3 Định nghĩa phương thức cho nhập
CREATE OR REPLACE TYPE BODY NHAP_TYPE AS
Định nghĩa phương thức 1 cho NHAP
MEMBER FUNCTION GET_KHACHHANG RETURN KHACHHANG_TYPE IS KH1 KHACHHANG_TYPE;
BEGINSELECT DEREF(SELF.NHAPKH) INTO KH1 FROM DUAL;
Trang 18RETURN KH1;
END;
Định nghĩa phương thức 2 cho NHAP
MEMBER FUNCTION GET_THIETBI RETURN THIETBI_TYPE ISTB1 THIETBI_TYPE;
BEGINSELECT DEREF(SELF.NHAPTB) INTO TB1 FROM DUAL;
RETURN TB1;
END;
Định nghĩa phương thức 3 cho NHAP
STATIC FUNCTION GET_KHNHAPTB (MTB NVARCHAR2)RETURN KHACHHANG_TYPE IS KH2 KHACHHANG_TYPE;
CURSOR C_KH2 ISSELECT DEREF(N.NHAPKH).MAKH AS MAKH2,DEREF(N.NHAPKH).TENKH AS TENKH2, DEREF(N.NHAPKH).NGSINH ASNSKH2, DEREF(N.NHAPKH).DIACHI AS DCKH2, DEREF(N.NHAPKH).SODT ASSDTKH2
FROM NHAP N, KHACHHANG KHWHERE KH.MAKH = DEREF(N.NHAPKH).MAKH ANDDEREF(N.NHAPTB).MATB = MTB;
C_ROWKH C_KH2%ROWTYPE;
BEGINFOR C_ROWKH IN C_KH2LOOP
KH2 := KHACHHANG_TYPE(C_ROWKH.MAKH2,
C_ROWKH.TENKH2, C_ROWKH.NSKH2, C_ROWKH.DCKH2,C_ROWKH.SDTKH2);
END LOOP;
Trang 19RETURN KH2;
END;
Định nghĩa phương thức 4 cho NHAP
STATIC FUNCTION GET_TBNHAPKH (MKH NVARCHAR2)RETURN THIETBI_TYPE IS TB2 THIETBI_TYPE;
CURSOR C_TB2 ISSELECT DEREF(N.NHAPTB).MATB AS MATB2,DEREF(N.NHAPTB).TENTB AS TENTB2, DEREF(N.NHAPTB).LOAITB ASLOAITB2,DEREF(N.NHAPTB).DVTTB AS DVTTB2
FROM NHAP N, THIETBI TBWHERE TB.MATB = DEREF(N.NHAPTB).MATB ANDDEREF(N.NHAPKH).MAKH = MKH;
C_ROWTB C_TB2%ROWTYPE;
BEGINFOR C_ROWTB IN C_TB2LOOP
TB2 := THIETBI_TYPE(C_ROWTB.MATB2,C_ROWTB.TENTB2, C_ROWTB.LOAITB2, C_ROWTB.DVTTB2);
END LOOP;
RETURN TB2;
END;
Định nghĩa phương thức 5 cho NHAP
STATIC PROCEDURE THEM _NHAP(MKH NVARCHAR2, MTBNVARCHAR2, NGAY DATE, SL NUMBER, DG NUMBER, ND VARCHAR2) IS
DEM INT;
BEGINSELECT COUNT(*) INTO DEM FROM NHAP N WHEREDEREF(N.NHAPKH).MAKH = MKH AND DEREF(N.NHAPTB).MATB = MTB;
Trang 20IF (DEM = 1) THENDBMS_OUTPUT.PUT_LINE('TRUNG KHACH HANG DA NHAPTHIET BI NAY');
ELSEINSERT INTO NHAP VALUES(
(SELECT REF(KH) FROM KHACHHANG KH WHERE MAKH
= MKH),
(SELECT REF(TB) FROM THIETBI TB WHERE MATB =MTB),
NGAY, SL, DG, ND);
END;
END;
4 Cài đặt class <Xuất> và phương thức (Xuất)
4.1 Tạo đối tượng Xuất:
CREATE OR REPLACE TYPE XUAT_TYPE AS OBJECT
(
XUATKH REF KHACHHANG_TYPE, XUATTB REFTHIETBI_TYPE, NGXUAT DATE,
SLXUAT NUMBER,DGXUAT NUMBER,
NDXUAT VARCHAR2(40),MEMBER FUNCTION GET_KHACHHANG RETURN KHACHHANG_TYPE,
MEMBER FUNCTION GET_THIETBI RETURN THIETBI_TYPE,
Trang 21STATIC FUNCTION GET_KHXUATTB (MTB NVARCHAR2) RETURN KHACHHANG_TYPE,
STATIC FUNCTION GET_TBXUATKH (MKH NVARCHAR2) RETURN THIETBI_TYPE,
STATIC PROCEDURE THEM_XUAT (MKH NVARCHAR2, MTB NVARCHAR2, NGAY DATE, SL NUMBER, DG NUMBER, ND VARCHAR2)
);
4.3 Định nghĩa phương thức cho Xuất
CREATE OR REPLACE TYPE BODY XUAT_TYPE AS
Định nghĩa phương thức 1 cho XUAT
MEMBER FUNCTION GET_KHACHHANG RETURN KHACHHANG_TYPE IS KH1 KHACHHANG_TYPE;
BEGINSELECT DEREF(SELF.XUATKH) INTO KH1 FROM DUAL;RETURN KH1;
END;
Định nghĩa phương thức 2 cho XUAT
Trang 22MEMBER FUNCTION GET_THIETBI RETURN THIETBI_TYPE ISTB1 THIETBI_TYPE;
BEGINSELECT DEREF(SELF.XUATTB) INTO TB1 FROM DUAL;
RETURN TB1;
END;
Định nghĩa phương thức 3 cho XUAT
STATIC FUNCTION GET_KHXUATTB (MTB NVARCHAR2)RETURN KHACHHANG_TYPE IS KH2 KHACHHANG_TYPE;
CURSOR C_KH2 ISSELECT DEREF(X.XUATKH).MAKH AS MAKH2,DEREF(X.XUATKH).TENKH AS TENKH2, DEREF(X.XUATKH).NGSINH ASNSKH2, DEREF(X.XUATKH).DIACHI AS DCKH2, DEREF(X.XUATKH).SODT ASSDTKH2
FROM XUAT X, KHACHHANG KHWHERE KH.MAKH = DEREF(X.XUATKH).MAKH ANDDEREF(X.XUATTB).MATB = MTB;
C_ROWKH C_KH2%ROWTYPE;
BEGINFOR C_ROWKH IN C_KH2LOOP
Trang 23STATIC FUNCTION GET_TBXUATKH (MKH NVARCHAR2)RETURN THIETBI_TYPE IS TB2 THIETBI_TYPE;
CURSOR C_TB2 ISSELECT DEREF(X.XUATTB).MATB AS MATB2,DEREF(X.XUATTB).TENTB AS TENTB2, DEREF(X.XUATTB).LOAITB ASLOAITB2,DEREF(X.XUATTB).DVTTB AS DVTTB2
FROM XUAT X, THIETBI TBWHERE TB.MATB = DEREF(X.XUATTB).MATB ANDDEREF(X.XUATKH).MAKH = MKH;
C_ROWTB C_TB2%ROWTYPE;
BEGINFOR C_ROWTB IN C_TB2LOOP
TB2 := THIETBI_TYPE(C_ROWTB.MATB2,C_ROWTB.TENTB2, C_ROWTB.LOAITB2, C_ROWTB.DVTTB2);
END LOOP;
RETURN TB2;
END;
Định nghĩa phương thức 5 cho XUAT
STATIC PROCEDURE THEM _XUAT(MKH NVARCHAR2, MTBNVARCHAR2, NGAY DATE, SL NUMBER, DG NUMBER, ND VARCHAR2) IS
DEM INT;
BEGINSELECT COUNT(*) INTO DEM FROM XUAT XWHERE DEREF(X.XUATKH).MAKH = MKH
AND DEREF(X.XUATTB).MATB = MTB;
IF (DEM = 1) THEN
Trang 24DBMS_OUTPUT.PUT_LINE('TRUNG KHACH HANG DA XUATTHIET BI NAY');
ELSEINSERT INTO XUAT VALUES(
(SELECT REF(KH) FROM KHACHHANG KH WHERE MAKH =MKH),
(SELECT REF(TB) FROM THIETBI TB WHERE MATB =
MTB), NGAY, SL, DG, ND);
END;
END;
II Truy vấn dữ liệu hướng đối tượng
1 Thực thi phương thức cho class <Khách hàng> và kết quả
Trang 251.2 Liệt kê danh sách khách hàng:
SET SERVEROUTPUT ON;
SET SERVEROUTPUT ON;
SELECT KHACHHANG_TYPE.GET_SOKH() AS TONGKH FROM DUAL;
* Kết quả: