Một số modul chính của chơng trình

Một phần của tài liệu phân tích và thiết kế hệ thống thông tin quản lý bệnh nhân tại bệnh viện đa khoa tỉnh Hải Dương.DOC (Trang 38 - 44)

Để hiển thị dữ liệu trong trong một Table ta sử dụng đối tởng Listview

đối tợng này tơng đối tiện lợi để hiển thị dữ liệu cụ thể 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

Trong đó listItem là đối tợng Listview có chức năng hiển thị dữ liệu, biến rs có kiểu Recordset để lu trữ dữ liệu trong một Recor (dữ liệu trong bảng). Trong đoạn chơng trình trên ta còn sử dụng phơng thức Set rs = cn.Execute(Str) để thực hiện câu truy vấn (SQL) trong ngoặc, câu truy vấn này lấy về dữ liệu đợc cất trong biến Record (rs) và đợc hiển thị trên Listview.

Để thêm mới dữ liệu vào một Table trong chơng trình ta sử dụng đối t- ợng Data Environment đối tợng này cho phép gọi các hàm hoặc các thủ tục nh cách gọi của Visual Basic. Dới đây là ví dụ cách gọi một hàm có tên Sp_NhapTinh có chức năng thêm một tỉnh mới

DE.Sp_NhapTinh MaTinh, TenTinh

38

Trong đó DE là đối tợng Data Environment và hàm Sp_NhapTinh là hàm (có thể là các thủ tục thậm chí là một View) đợc viết và lu trong cơ sở dữ liệu.

Tơng tự với các thủ tục khác cũng đợc thực hiện bằng cách gọi nh trên, tuy nhiên đối với thủ tục xóa dữ liệu trong một Table lại là một việc khá

phức tạp bởi việc này còn liên quan đế một số ràng buộc về khóa. Ví dụ việc xóa một tỉnh thành, ta phải đi xóa toàn bộ các huyện, xã trực thuộc tỉnh đó, không những vậy ta còn phải xóa tất cả các bệnh nhân và nhân viên cùng các giấy tờ có liên quan, cụ thể ta có mã lệnh nh sau:

CREATE PROCEDURE Sp_XoaTinh

@MaTinh Char(2) AS

---

-- Xoa Tat ca can bo la benh nhan truc thuoc tinh Delete From tblCanBo

Where tblCanBo.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)))

--- ---

-- Xoa Tat ca cac bao hiem y te cua benh nhan thuoc tinh Delete From tblBaoHiemYTe

Where tblBaoHiemYte.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)))

--- --

-- Xoa tam ung cua cac benh nhan thuoc tinh Delete From tblTamUng

39

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)))

--- ---

-- Xoa Dung dich vu ma benh an dung Delete From tblDichVuDung

Where tblDichVuDung.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)))

--- ---

-- Xoa Dung Dich Vu

Delete From tblDichVuDung

Where tblDichVuDung.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)))

--- ---

-- Xoa Benh An cua Benh Nhan thuoc tinh tren Delete From tblBenhAn

Where tblBenhAn.MaBenhNhan in(Select MaBenhNhan

From tblBenhNhan

40

Where tblBenhNhan.MaXa in(Select MaXa

From tblXa

Where tblXa.MaHuyen in(Select MaHuyen From tblHuyen

Where tblHuyen.MaTinh=@MaTinh)))

--- ---

-- Xoa Benh An ma Nhan Vien lap 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)))

--- ---

--Xoa dong kham benh cua benh nhan Delete From tblDongKhamBenh

Where tblDongKhamBenh.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)))

--- ---

-- Xoa Dong Kham Benh Ma Nhan Vien kham Delete From tblDongKhamBenh

Where tblDongKhamBenh.MaNhanVien in (Select MaNhanVien

From tblNhanVien

Where tblNhanVien.MaXa in (Select MaXa

41

From tblXa

Where tblXa.MaHuyen in(Select MaHuyen From tblHuyen

Where tblHuyen.matinh=@MaTinh)))

--- ---

--- Xoa Thuoc ma Nhan vien cap cho don thuoc Delete From tblThuocDung

Where tblThuocDung.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)))

--- ---

-- Xoa thuoc dung cho benh nhan thuoc tinh Delete From tblThuocDung

Where tblThuocDung.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)))

--- ---

-- Xoa benh nhan thuoc tinh Delete From tblBenhNhan Where tblBenhNhan.MaXa

in(Select MaXa From tblXa

Where tblXa.MaHuyen in(Select MaHuyen From tblHuyen

Where tblHuyen.MaTinh=@MaTinh))

42

--- ---

-- Xoa Nhan Vien thuoc tinh Delete From tblNhanVien Where tblNhanVien.MaXa

in(Select MaXa From tblXa

Where tblXa.MaHuyen in(Select MaHuyen From tblHuyen

Where tblHuyen.MaTinh=@MaTinh))

--- ---

-- Xoa Xa truc thuoc tinh Delete From tblXa Where tblXa.MaHuyen

in(Select MaHuyen From tblHuyen

Where tblHuyen.MaTinh=@Matinh)

--- ---

-- Xoa Huyen trong tinh Delete From tblHuyen

Where tblHuyen.MaTinh=@MaTinh

--- ---

-- Xoa Tinh can Xoa Delete From tblTinh

Where tblTinh.MaTinh=@Matinh

--- ---

GO

Đối với các thủ tục xóa huyện, xã cũng tơng tự nh việc xóa một tỉnh nên cũng phải xóa tất cả các dữ liệu có liên quan.

Để trình bày dữ liệu em dùng view để kết nối các bảng. Ví dụ đối với view địa chỉ la sự kết nối của ba bảng Tỉnh, Huyện, Xã 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

43

dbo.tblXA ON dbo.tblHUYEN.MaHuyen = dbo.tblXA.MaHuyen

Để tìm kiếm dữ liệu trong chng trình em sử dụng hàm tìm kiếm đợc xây dựng sẵn trong cơ sở dữ liệu ví dụ tìm kiếm một bệnh nhân ta có đoạn truy vấn sau:

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

Hàm này trả về một Table và các tiêu chí tìm kiếm đợc chỉ ra trong dữ

liệu đầu vào là @HoBenhNhan và @TenBenhNhan. Tơng tự nh vậy ta có thể tìm kiếm bất kỳ dữ liệu nào có trong cơ sở dữ liệu và với các tiêu chí đ- ợc đa ra ở đầu vào.

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 không có dữ liệu đầu vào, song với hàm thì ngợc lại. Do đó

để truy xuất dữ liệu thì với hàm là linh hoạt hơn rất nhiều so với view.

Một phần của tài liệu phân tích và thiết kế hệ thống thông tin quản lý bệnh nhân tại bệnh viện đa khoa tỉnh Hải Dương.DOC (Trang 38 - 44)

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

(42 trang)
w