Các tuỳ chọn trên một câu lệnh thao tác dữ liệu của Foxpro2.. 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
Trang 1TRƯỜNG CAO ĐẲNG SƯ PHẠM QUẢNG TRỊ
KHOA CÔNG NGHỆ THÔNG TIN
Trang 21 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
Trang 31 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
Trang 41 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
Trang 51 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
Chương 5 Sửa đổi dữ liệu
Trang 61 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
Trang 71 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
Chương 5 Sửa đổi dữ liệu
Trang 82 Các lệnh cập nhật dữ liệu
Chương 5 Sửa đổi dữ liệu
Trang 92 Các lệnh cập nhật dữ liệu
2.1 Lệnh EDIT
Cú pháp:
EDIT [<phạm vi>] [FIELDS <ds trường>] [FOR <btL>]
[WHILE <btL>]
đổ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
Trang 102 Các lệnh cập nhật dữ liệu
2.2 Lệnh BROWSE
Cú pháp:
BROWSE [<phạm vi>] [FIELDS <ds trường>] [FOR <btL>] [LOCK<n>]
[FREEZE <trường>] [NOAPPEND] [NOEDIT] [NOMODIFY] [FONT
<Font>, <size>, <style>]
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
Trang 112 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
Ctrl-Y
đã tồn tại trước
Trang 122 Các lệnh cập nhật dữ liệu
2.2 Lệnh BROWSE
Ví dụ:
BROW NOAP NOMO
Fox
Chương 5 Sửa đổi dữ liệu
Trang 132 Các lệnh cập nhật dữ liệu
2.3 Lệnh REPLACE
Cú pháp:
REPLACE [<phạm vi>] <trường1> WITH <bt1> [,<trường2> WITH
<bt2> ] [FOR <btL>]
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
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
Trang 143 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]
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
GO 5
INSERT BLANK BEFORE
Chương 5 Sửa đổi dữ liệu
Trang 154 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
Trang 164 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 [<phạm vi>][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
Trang 174 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 [<phạm vi>][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ụ:
GO 8
RECALL RECALL ALL
Chương 5 Sửa đổi dữ liệu
Trang 184 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ụ:
? DELETED()
Chương 5 Sửa đổi dữ liệu
Trang 194 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
Trang 204 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
PACK
Ví dụ: USE HSCB
ZAP
Chương 5 Sửa đổi dữ liệu