Tải bản đầy đủ (.pdf) (20 trang)

Bài giảng hệ quản trị CSDL foxpro chương 5 CĐSP quảng trị

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (22.54 MB, 20 trang )

TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN


Chương 5. Sửa đổi dữ liệu
1. Các tuỳ chọn trên một câu lệnh thao tác dữ liệu của Foxpro
2. Các lệnh cập nhật dữ liệu
3. Các lệnh bổ sung dữ liệu
4. Các lệnh loại bỏ dữ liệu


Chương 5. Sửa đổi dữ liệu
1. Các tuỳ chọn trên một câu lệnh thao tác dữ liệu của
Foxpro
Câu lệnh tổng quát:
<LỆNH> [<Phạm vi>] [FIELDS <Ds trường>] [FOR <btL>]
[WHILE <btL>]
1.1. Tuỳ chọn phạm vi
1.2. Tùy chọn FIELDS <Ds trường>
1.3. Tùy chọn FOR <btL> và WHILE <btL>


Chương 5. Sửa đổi dữ liệu
1. Các tuỳ chọn trên một câu lệnh thao tác dữ liệu của
Foxpro
1.1. Tuỳ chọn phạm vi
Trong các lệnh của Foxpro tùy chọn phạm vi có nghĩa là vùng các bản
ghi liên tiếp nhau mà lệnh sẽ tác động lên đó, nó sẽ mang một trong
bốn giá trị và có ý nghĩa sau đây:
ALL - Tất cả các bản ghi
Record <n> - Bản ghi có số hiệu n


NEXT <n> - n bản ghi tính từ bản ghi hiện thời
REST - Từ bản ghi hiện thời đến cuối tệp.
Chú ý: Với mỗi lệnh của Foxpro sẽ có một phạm vi ngầm định. Phạm
vi này có thể là ALL hoặc bản ghi hiện thời.
Ví dụ: Lệnh LIST có phạm vi ngầm định là ALL còn DISPLAY có
phạm vi ngầm định là bản ghi hiện thời.


Chương 5. Sửa đổi dữ liệu
1. Các tuỳ chọn trên một câu lệnh thao tác dữ liệu của
Foxpro
1.1. Tuỳ chọn phạm vi
Ví dụ:
Tệp HSCB.DBF có 20 bản ghi
USE HSCB
DISP ALL
DISP Record 5
GO 10
DISP Next 5
GO 18
DISP Rest

Fox


Chương 5. Sửa đổi dữ liệu
1. Các tuỳ chọn trên một câu lệnh thao tác dữ liệu của
Foxpro
1.2. Tùy chọn FIELDS <Ds trường>
Không có tùy chọn này thì lệnh sẽ tác động lên tất cả các trường

của tệp CSDL đang mở còn nếu có tùy chọn này thì lệnh chỉ tác
động lên những trường của tệp đó có mặt trong danh sách. Tất
nhiên tất cả những trường được liệt kê này phải tồn tại trong tệp
đang mở.
Ví dụ:
USE HSCB
LIST FIELDS MSCB,HD,TEN
Fox


Chương 5. Sửa đổi dữ liệu
1. Các tuỳ chọn trên một câu lệnh thao tác dữ liệu của Foxpro
1.3. Tùy chọn FOR <btL> và WHILE <btL>
a. FOR <btL>
Lệnh chỉ tác động lên các bản ghi thỏa mãn <btL>
b. WHILE <btL>
Khi gặp bản ghi đầu tiên không thỏa mãn <btL> thì lệnh kết thúc.
c. Sự khác nhau của hai tùy chọn FOR <btL> và WHILE <btL>
Hai tùy chọn này đều chỉ cho phép lệnh tác động lên các bản ghi thỏa mãn <btL>
nhưng chúng khác nhau ở chỗ khi dùng tùy chọn FOR <btL> thì Foxpro sẽ tuyển
chọn tất cả các bản ghi của tệp CSDL để tác động lên những bản ghi thỏa mãn
<btL> còn tùy chọn WHILE <btL> thì cho phép lệnh bắt đầu từ đầu tệp để tác động
lên các bản ghi thỏa mãn <btL> nhưng ngay lần đầu tiên gặp bản ghi không thỏa
mãn <btL> thì lệnh sẽ kết thúc ngay.
Ví dụ: USE HSCB
LIST FOR HSL>3
LIST WHILE HSL>3

Fox



Chương 5. Sửa đổi dữ liệu
2. Các lệnh cập nhật dữ liệu
2.1. Lệnh EDIT
2.2. Lệnh BROWSE
2.3. Lệnh REPLACE


Chương 5. Sửa đổi dữ liệu
2. Các lệnh cập nhật dữ liệu
2.1. Lệnh EDIT
Cú pháp:
EDIT [] [FIELDS <ds trường>] [FOR <btL>]
[WHILE <btL>]
Giải thích: Phạm vi ngầm định là ALL. Lệnh cho phép sửa
đổi dữ liệu của từng bản ghi với khuôn dạng giống như khi ta
làm việc với lệnh APPEND.
Ví dụ:
USE HSCB
EDIT
Fox


Chương 5. Sửa đổi dữ liệu
2. Các lệnh cập nhật dữ liệu
2.2. Lệnh BROWSE
Cú pháp:
BROWSE [] [FIELDS <ds trường>] [FOR <btL>] [LOCK<n>]
[FREEZE <trường>] [NOAPPEND] [NOEDIT] [NOMODIFY] [FONT
<Font>, <size>, <style>]

Giải thích: Phạm vi ngầm định là ALL. Lệnh cho phép sửa đổi dữ liệu của
từng bản ghi với khuôn dạng là một bảng hai chiều mà mỗi cột là một trường và
mỗi dòng là một bản ghi.

Continue


Chương 5. Sửa đổi dữ liệu
2. Các lệnh cập nhật dữ liệu
2.2. Lệnh BROWSE
LOCK <n>: Chia màn hình thành hai cửa sổ, cố định n trường bên trái tệp ở
cửa sổ trái và các trường còn lại ở cửa sổ phải. Ta có thể di chuyển ngang
các trường trên cửa sổ phải mà không là di chuyển ngang các trường trên
cửa sổ trái. Tùy chọn này được dùng khi bề ngang của tệp CSDL đã vượt
quá bề ngang màn hình.
FREEZE <trường>: Chỉ cho phép con trỏ di chuyển trên trường <trường>.
Tùy chọn này đươc dùng trong trường hợp ta chỉ tiến hành sửa đổi trên một
trường.
NOAPPEND: Không cho phép thêm bản ghi trống bằng cách ấn tổ hợp phím
Ctrl-Y.
NOEDIT, NOMODIFY: Không cho phép sửa đổi nội dung của các bản ghi
đã tồn tại trước.


Chương 5. Sửa đổi dữ liệu
2. Các lệnh cập nhật dữ liệu
2.2. Lệnh BROWSE
Ví dụ:
USE HSCB
BROW LOCK 3

BROW FREE HSL
BROW NOAP NOMO

Fox


Chương 5. Sửa đổi dữ liệu
2. Các lệnh cập nhật dữ liệu
2.3. Lệnh REPLACE
Cú pháp:
REPLACE [] <trường1> WITH <bt1> [,<trường2> WITH
<bt2> ...] [FOR <btL>]
Giải thích: Phạm vi ngầm định là bản ghi hiện thời. Trên mỗi bản ghi
mà lệnh có hiệu lực, Lệnh thay thế giá trị <trường1> bằng <bt1>,
<trường2> bằng <bt2> ...
Ví dụ: Tính lương
USE BLUONG
REPL ALL LCB WITH HSL*290000, LPC WITH HSPC*290000
REPL ALL TONG WITH LCB+LPC
Fox


Chương 5. Sửa đổi dữ liệu
3. Các lệnh bổ sung dữ liệu
3.1 Lệnh APPEND
3.2 Lệnh BROWSE
3.3 Lệnh INSERT
Cú pháp:
INSERT [BLANK] [BEFORE]
Giải thích: Lệnh chèn một bản ghi mới. Nếu có tùy chọn BLANK bản

ghi mới là rỗng, nếu không thì phải điền dữ liệu cho bản ghi đó. Nếu có
tùy chọn BEFORE thì bản ghi được chèn ở trên bản ghi hiện thời, nếu
không thì ở dưới bản ghi hiện thời.
Ví dụ:

USE HSCB
GO 5
INSERT BLANK BEFORE


Chương 5. Sửa đổi dữ liệu
4. Các lệnh loại bỏ dữ liệu
Việc xóa trong FoxPro có hai loại xóa logic và xóa vật lý.
4.1. Xóa logic (Đánh dấu xóa)
4.2. Phục hồi các bản ghi bị xóa logic.
4.3. Hàm DELETED()
4.4. Lệnh SET DELETED ON/OFF
4.5. Xóa vật lý


Chương 5. Sửa đổi dữ liệu
4. Các lệnh loại bỏ dữ liệu
4.1. Xóa logic (Đánh dấu xóa)
a. Khái niệm: Xóa logic hay đánh dấu xóa là chỉ đánh dấu một hoặc
nhiều bản ghi để sau đó tuỳ trường hợp ta có thể xác lập môi trường để
cho chúng có hiệu lực tác động lên hay không.
b. Lệnh đánh dấu xóa
DELETE [][FOR <btL1>][WHILE <BtL2>]
Phạm vi ngầm định là bản ghi hiện thời. Lệnh sẽ xóa các bản ghi
trong phạm vi thỏa mãn <btL1> hoặc kết thúc ngay khi gặp bản ghi

không thỏa mãn <btL2>
Ví dụ: USE HSCB
GO 6
DELE
DELE FOR RECN()=2 OR RECN()=8


Chương 5. Sửa đổi dữ liệu
4. Các lệnh loại bỏ dữ liệu
4.2. Phục hồi các bản ghi bị xóa logic.
Các bản ghi bị đánh dấu xóa sẽ được phục hồi bởi lệnh:
RECALL [][FOR <btL1>][WHILE <BtL2>]
Phạm vi ngầm định là bản ghi hiện thời. Lệnh sẽ phục hồi các bản ghi
trong phạm vi thỏa mãn <btL1> hoặc kết thúc ngay khi gặp bản ghi
không thỏa mãn <btL2>.
Ví dụ:
USE HSCB
GO 8
RECALL
RECALL ALL


Chương 5. Sửa đổi dữ liệu
4. Các lệnh loại bỏ dữ liệu
4.3. Hàm DELETED()
Cho kết quả là .T. nếu bản ghi hiện thời bị đánh dấu xóa, ngược lại
cho giá trị .F.
Ví dụ:
USE HSCB
? DELETED()



Chương 5. Sửa đổi dữ liệu
4. Các lệnh loại bỏ dữ liệu
4.4. Lệnh SET DELETED ON/OFF
Xác lập môi trường đối với các bản ghi bị đánh dấu xóa. Nếu thiết lập
bằng lệnh SET DELE ON thì các bản ghi bị đánh dấu xóa sẽ không có hiệu
lực đối với các lệnh tác động lên tệp. Nếu SET DELE OFF thì tất cả các bản
ghi trên tệp đều như sau không phân biệt bị đánh dấu xóa hay không. Ngầm
định là SET DELE OFF
Ví dụ:

USE HSCB
GO 6
DELE REST
SET DELE ON
BROW
SET DELE OFF
BROW


Chương 5. Sửa đổi dữ liệu
4. Các lệnh loại bỏ dữ liệu
4.5. Xóa vật lý
Là loại bỏ hẵn khỏi tệp CSDL và không thể phục hồi bằng lệnh
RECALL.
a. Lệnh PACK
Các bản ghi bị đánh dấu xóa sẽ bị xóa vật lý nếu ta dùng lệnh PACK.
b. Lệnh ZAP
Tất cả các bản ghi trong tệp CSDL không phân biệt có bị đánh dấu xóa

hay không, sẽ bị xóa vật lý khi ta dùng lệnh ZAP.
Ví dụ:
USE HSCB
DELE FOR HSL=0
PACK
Ví dụ:
USE HSCB
ZAP



×