Danh mục

Toán - Tin Học Hệ Quản Trị phần 3

Số trang: 12      Loại file: pdf      Dung lượng: 222.26 KB      Lượt xem: 10      Lượt tải: 0    
Jamona

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Tham khảo tài liệu toán - tin học hệ quản trị phần 3, công nghệ thông tin, cơ sở dữ liệu phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
Toán - Tin Học Hệ Quản Trị phần 3 23Bài gi ng tóm t t H qu n tr cơ s d li u óng gói ch các thao tác cho phép trên CSDL vào các SP và quy nh truy xu t − d li u ph i thông qua SP. Ngoài ra còn có th phân quy n trên SP H tr t t hơn cho vi c m b o an toàn (security) cho CSDL. − SP giúp cho vi c k t xu t báo bi u b ng Crystal Report tr nên ơn gi n và hi u qu hơn r t nhi u so v i vi c k t xu t d li u tr c ti p t các b ng và khung nhìn.2. Khai báo và s d ng th t cCú pháp khai báo: Create {proc | procedure} procedure_name {Parameter_name DataType [=default] [output] }[,…n] As { kh i l nh } GoLưu ý: Tên tham s t theo qui t c như tên bi n c c b . Giá tr tr v c a SP dùng m t (hay m t s ) tham s output.Ví d : − Xây d ng SP cho bi t danh sách sinh viên c a m t l p có mã cho trư c Create proc DS_Lop @MaLop varchar(10) As Select SV.MaSV, SV.HoVaTen, SV.NgaySinh From SinhVien SV where SV.Lop = @MaLop Go − Xây d ng SP tính toán giá tr cho ơn hàng có mã cho trư c v i quan h DonHang như sau: DonHang(Ma, SoLuong, DonGia, ThueSuat, ChietKhau, ThanhTien) Create proc TongTien @MaDH varchar(10) As Declare @ThanhTien float Declare @TienThue float Declare @TienChietKhau float Declare @DonGia float,@SoLuong int Set @SoLuong = (select SoLuong from DonHang where Ma = @MaDH) 24Bài gi ng tóm t t H qu n tr cơ s d li u Set @DonGia = (select DonGia from DonHang where Ma = @MaDH) Set @TienThue = (select ThueSuat from DonHang where Ma = @MaDH) Set @TienChietKhau = (select ChietKhau from DonHang where Ma = @MaDH) Set @ThanhTien = @DonGia*@SoLuong Set @TienThue = @ThanhTien*@TienThue/100 Set @ThanhTien = @ThanhTien + @TienThue Set @TienChietKhau = @ThanhTien*@TienChietKhau/100 Set @ThanhTien = @ThanhTien - @TienChietKhau Update DonHang set ThanhTien = @ThanhTien where Ma = @MaDH Go − Vi t th t c thêm m t ăng ký c a sinh viên vào m t h c ph n (t ng quát ví d trong ph n If …else) Create procedure usp_ThemDangKy @MaSV char(5), @MaHP char(5), @SiSo int = 0 output As select @SiSo = SiSo from HocPhan where MaHP= @MaHP if @SiSo < 50 Begin insert into DANG_KY(MaSV, MaHP) values(@MaSV, @MaHP) set @SiSo = @SiSo+1 return 1 End return 0 Go - Xây d ng SP tính i m trung bình và x p lo i cho sinh viên thu c l p cho trư c. Gi s có các quan h như sau: SinhVien (MaSV, HoTen, DTB, XepLoai, Lop) MonHoc (MaMH, TenMH) KetQua (MaMH, MaSV, LanThi, Diem) trong ó: 25Bài gi ng tóm t t H qu n tr cơ s d li u − i m thi ch tính l n thi sau cùng. − X p lo i: Xu t s c [9, 10], Gi i [8, 8.9], Khá [7, 7.9], Trung bình [5.0, 6.9], Y u [0,4.9]. − K t qu xu t d ng tham s output, không ghi xu ng CSDL.Gi iCreate proc XepLoaiSV @MaSV varchar(10), @DTB float out put, @XL nvarchar(20) out putAs Set @DTB = (Select avg(Diem) from KetQua Kq Where MaSV = @MaSV and not exists (select * from KetQua Kq1 where Kq1.MaSV = @MaSV and Kq1.MaMH=Kq.MaMH and Kq1.LanThi > Kq.LanThi)) If @DTB >= 9 Set @XL = N’Xu t s c’ Else if @DTB >= 8 Set @XL = N’Gi i’ Else if @DTB >= 7 Set @XL = N’Khá’ Else if @DTB >= 5 Set @XL = N’Trung bình’ Else Set @XL = N’Y u’GoCú pháp g i th c hi n th t c: EXEC| EXECUTE { [ @return_status = ] procedure_name { [ @parameter _name = ] value [ OUTPUT ] } [ ,...n ]Lưu ý: o Khi g i th c hi n SP, dùng t khóa Exec và c n truy n tham s v i ki u d li u phù h p và th t chính xác như khai báo trong nh nghĩa SP. o Có th truy n giá tr cho tham s u vào (input) là m t h ng ho c m t bi n ã gán giá tr , không truy n ư c m t bi u th c. nh n ư c giá tr k t qu (thông qua tham s u ra), c n truy n vào m t bi n o và có t khóa output. Ví d : o G i th t c usp_The ...

Tài liệu được xem nhiều: