IV.3 MỘT SỐ ĐOẠN CHƯƠNG TRÌNH TRONG BÀI SỬ DỤNG CÁC PHƯƠNG THỨC TRÊN.

Một phần của tài liệu luận văn ứng dụng quản lý bệnh nhân bằng tin học - Cầu ứng dụng quản lý bệnh nhân bằng tin học (Trang 35 - 40)

TRÌNH IV.1 CÁCH KẾT NỐI DỮ LIỆU

IV.3 MỘT SỐ ĐOẠN CHƯƠNG TRÌNH TRONG BÀI SỬ DỤNG CÁC PHƯƠNG THỨC TRÊN.

PHƯƠNG THỨC TRÊN.

Để hiển thị dư liệu đã có trên table ta có đoạn mã lệnh sau:

Private Sub Display_Listview() Dim rs As New ADODB.Recordset Dim Str

Dim mItem As listItem listItem.ListItems.Clear

Str = "select * from tblTinh order by Matinh asc"

Set rs = cn.Execute(Str) 'Thuc Hien Mot Lenh SQL duoc chi ra boi str If rs.EOF = False Then

While Not rs.EOF

Set mItem = listItem.ListItems.Add(, , rs!MaTinh) mItem.SubItems(1) = rs!TenTinh

rs.MoveNext Wend

End If End Sub

Ơ đây ListItem là đối tượng Listview có chức năng hiển thị dữ liệu, trong đoạn chương trình trên ta sử dụng phương thức (Set rs = cn.Execute(Str)) để thực hiện một câu truy vấn (Câu truy vấn trả về một Record là thông tin của table tỉnh)kết quả trả về từ câu truy vấn này được gán cho rs và được hiển thị trên Listview.

Để thêm mới một tỉnh (thành) ta có mã lệnh sau

DE.Sp_NhapTinh MaTinh, TenTinh

Trong đó DE là đối tượng Data Environment mà ta đã nói ở trên còn SP_NhapTinh là các hàm (hay các Stored Procedure) đã được viết và lưu trong cơ sở dữ liệu, câu lệnh truy vấn tạo mới một tỉnh như sau:

Create proc Sp_NhapTinh

@MaTinh nchar(3), -- MaTinh và TenTinh là các tham số dầu vào của @TenTinh char(30) -- Stored Procedure

AS

Insert Into tblTINH ( MaTinh, TenTinh ) Values ( @MaTinh,@TenTinh

) GO

Tương tự với phương Stored Procedure sửa tên tỉnh

Với việc xoá một tỉnh có khác chút ít việc xoá một tỉnh có liên quan đến các ràng buộc toàn vẹn. Việc xoá một tỉnh không chỉ xóa đi tỉnh đó, việc này phải đi kém với việc xoá tất cả các huyện cũng như các xa thuộc tỉnh ngoài ra ta còn phải xoá tất các các bệnh nhân và nhân viên (cùng giấy tờ kèm theo) thuộc tỉnh cần xoá. Mã lệnh có dạng như sau:

--- Thủ tục dùng để xoá một tỉnh --- CREATE PROCEDURE Sp_XoaTinh

@Matinh nchar(3), ‘Tham số đầu vào của Stored Procedure @TenTinh char(30)

AS

--- Xoá khám bệnh úng với bệnh nhân thuộc tỉnh DELETE From tblKhamBenh

Where tblKhamBenh.MaBenhNhan in ( Select MaBenhNhan

From TblBenhNhan

Where tblBenhNhan.maXa in (Select MaXa From tblXa Where tblXa.MaHuyen in

(Select MaHuyen From tblHuyen

Where tblHuyen.MaTinh=@MaTinh))) --- Xoá khám bệnh úng với nhân viên thuộc tỉnh

DELETE From tblkhamBenh

Where tblKhamBenh.MaNhanVien in ( Select MaNhanVien

From TblNhanVien

Where tblNhanVien.maXa in (Select MaXa From tblXa Where tblXa.MaHuyen in

(Select MaHuyen From tblHuyen Where tblHuyen.MaTinh=@MaTinh))) ---- Xóa dùng thuốc ứng với đơn thuốc của bệnh nhân

DELETE From tblDungThuoc

Where tblDungThuoc.MaDonThuoc in (Select MaDonThuoc From tblDonThuoc Where tblDonThuoc.MaBenhNhan in (Select MaBenhNhan From tblBenhNhan Where tblBenhNhan.maXa in (Select MaXa From tblXa Where tblXa.MaHuyen in

Where tblHuyen.MaTinh=@MaTinh)))) -- Xoá đơn thuốc của bệnh nhân thuộc tỉnh

DELETE From tblDonThuoc

Where tblDonThuoc.MaBenhNhan in (Select MabenhNhan

From tblBenhNhan

Where tblBenhNhan.maXa in (Select MaXa From tblXa Where tblXa.MaHuyen in

(Select MaHuyen From tblHuyen

Where tblHuyen.MaTinh=@MaTinh))) --- Xoá tạm ứng của bệnh nhân thuộc tỉnh

DELETE From tblTamUng

Where tblTamUng.MaBenhNhan in ( Select MaBenhNhan From TblBenhNhan

Where tblBenhNhan.maXa in (Select MaXa From tblXa Where tblXa.MaHuyen in

(Select MaHuyen From tblHuyen

Where tblHuyen.MaTinh=@MaTinh))) --- Xoá bệnh án của bệnh nhân

DELETE From tblBenhAn

Where tblBenhAn.MaBenhNhan in ( Select MaBenhNhan From TblBenhNhan

Where tblBenhNhan.maXa in (Select MaXa From tblXa Where tblXa.MaHuyen in

(Select MaHuyen From tblHuyen

Where tblHuyen.MaTinh=@MaTinh))) ---Xoá các bệnh nhân thuộc tỉnh ---

DELETE From tblBenhNhan Where tblBenhNhan.maXa in

(Select MaXa From tblXa Where tblXa.MaHuyen in

(Select MaHuyen From tblHuyen

Where tblHuyen.MaTinh=@MaTinh)) --- Xoá dùng thuốc mà nhân viên thuộc tỉnh lập

DELETE From tblDungThuoc

Where tblDungThuoc.MaDonThuoc in (Select MaDonThuoc

From tblDonThuoc

(Select MaNhanVien From tblNhanVien

Where tblNhanVien.maXa in (Select MaXa From tblXa Where tblXa.MaHuyen in

(Select MaHuyen From tblHuyen

Where tblHuyen.MaTinh=@MaTinh)))) --- Xoá đơn thuốc mà nhân viên lập

DELETE From tblDonThuoc

Where tblDonThuoc.MaNhanVien in (Select MaNhanVien

From tblNhanVien

Where tblNhanVien.maXa in (Select MaXa From tblXa Where tblXa.MaHuyen in

(Select MaHuyen From tblHuyen

Where tblHuyen.MaTinh=@MaTinh))) --- Xoá bệnh án mà nhân viên lập

DELETE From tblBenhAn

Where tblBenhAn.MaNhanVien in ( Select MaNhanVien From TblNhanVien

Where tblNhanVien.maXa in (Select MaXa From tblXa Where tblXa.MaHuyen in

(Select MaHuyen From tblHuyen

Where tblHuyen.MaTinh=@MaTinh)) ) ---Xoá tất cả nhân viên thuộc tỉnh---

DELETE From tblNhanVien Where tblNhanVien.maXa in

(Select MaXa From tblXa Where tblXa.MaHuyen in

(Select MaHuyen From tblHuyen

Where tblHuyen.MaTinh=@MaTinh)) --- Xoá tất cả các xã thuộc tỉnh--- DELETE From tblXa

Where tblXa.MaHuyen in

(Select MaHuyen From tblHuyen Where tblHuyen.MaTinh = @Matinh) ---Xoá tất cả các huyện thuộc tỉnh--- DELETE From tblHuyen

Where tblHuyen.Matinh = @Matinh --- Xoá tỉnh có mã tỉnh được chỉ ra--

DELETE From tblTinh Where MaTinh=@Matinh GO

Đối với các thủ tục xoá một huyện cũng nhaư một xã ta cũng phải đi xó tất cả các bệnh nhân và nhân viên trực thuộc địa danh đó.

Trong qúa trình trình bày dữ liệu chúng tôi đã sử dụng một số View để kết nối bảng ví dụ với View địa chỉ như sau:

CREATE VIEW dbo.vwDiaChi AS

SELECT dbo.tblTINH.TenTinh, dbo.tblHUYEN.TenHuyen, dbo.tblXA.TenXa, dbo.tblXA.Maxa FROM dbo.tblHUYEN INNER JOIN

dbo.tblTINH ON dbo.tblHUYEN.MaTinh = dbo.tblTINH.MaTinh INNER JOIN

dbo.tblXA ON dbo.tblHUYEN.MaHuyen = dbo.tblXA.MaHuyen Để tìm kiếm một bệnh nhân chúng tôi sử dụng một hàm tìm kiếm hàm này trả về một table các tiêu chí tìm kiếm được chỉ ra bằng các tham số đầu vào của hàm. Ví dụ về một hàm tìm kiếm bệnh nhân theo họ và tên đầy đủ trong chương trình.

CREATE FUNCTION udf_TimBenhNhanTheoHoTen (@HoBenhNhan Char(20), @TenBenhNhan char(20)) RETURNS Table --- AS --- Return Select * From tblBenhNhan

Where (tblBenhNhan.HoBenhNhan= @HoBenhNhan) and (tblBenhNhan.TenBenhNhan= @TenBenhNhan) GO

---

Trọng đoạn chương trình trên việc tìm một bệnh nhân là khá đơn giản. Giả sử ta nhớ đầy đủ họ và tên đầy đủ của bệnh nhân ta có thể tìm theo phương pháp trên. Song nếu chỉ nhớ được họ hoặc tên của bệnh nhân thi ta cũng có thể tìm được bệnh nhân bằng các hàm tìm theo họ, theo tên bệnh nhân, trong chương trình còn sử dụng một số hàm khác mà chúng tôi không tiện trình bày trong báo cáo này.

Thoạt tiên ta có cảm giác một hàm (Function) hơi giống với một View song với View thì không có dữ liệu đầu vào còn với hàm thì ngược lại. Rõ ràng để truy xuất dữ liệu với hàm là linh hoạt hơn với View rất nhiều.

Một phần của tài liệu luận văn ứng dụng quản lý bệnh nhân bằng tin học - Cầu ứng dụng quản lý bệnh nhân bằng tin học (Trang 35 - 40)

Tải bản đầy đủ (PDF)

(44 trang)