Giáo trình Hệ quản trị cơ sở dữ liệu
Mục lục
Mục lục ....................................................................................................................................... 1
Chƣơng 1. TỔNG QUAN VỀ VISUAL FOXPRO .................................................................... 5
1.1. Tổng quan về Visual FoxPro ........................................................................................... 5
1.1.1. Giới thiệu .................................................................................................................. 5
1.1.2. Khởi động và thoát khỏi Visual Foxpro. ................................................................. 6
1.1.3. Các chế độ làm việc ................................................................................................. 7
1.2. Các khái niệm cơ bản ...................................................................................................... 7
1.2.1. Kiểu dữ liệu .............................................................................................................. 7
1.2.2. Các phép toán ........................................................................................................... 8
1.2.3. Hằng ....................................................................................................................... 11
1.2.4. Biến ......................................................................................................................... 11
1.2.5. Hàm ........................................................................................................................ 12
1.2.6. Biểu thức................................................................................................................. 14
1.2.7. Từ khoá ................................................................................................................... 14
1.2.8. Lệnh và chƣơng trình.............................................................................................. 14
1.3. Quản lý đề án ( Project Manager) .................................................................................. 15
1.3.1. Giới thiệu Project Manager .................................................................................... 15
1.3.2. Tạo một đề án ......................................................................................................... 17
1.3.3. Mở đề án ................................................................................................................. 17
1.3.4. Dịch đề án ............................................................................................................... 17
1.3.5. Chạy đề án .............................................................................................................. 18
1.4. Tạo lập cơ sở dữ liệu: .................................................................................................... 18
Chƣơng 2. BẢNG DỮ LIỆU (TABLE) ................................................................................... 20
2.1. Một số khái niệm ........................................................................................................... 20
2.2. Tạo bảng cơ sở dữ liệu .................................................................................................. 22
2.3. Đổi tên một bảng trong cơ sở dữ liệu ............................................................................ 27
2.4. Xoá bảng khỏi cơ sở dữ liệu .......................................................................................... 27
2.5. Thêm bảng vào cơ sở dữ liệu......................................................................................... 27
2.6. Sửa cấu trúc bảng cơ sở dữ liệu ..................................................................................... 27
2.7. Làm việc với các bản ghi ............................................................................................... 27
2.7.1. Xem nội dung của bảng .......................................................................................... 27
2.7.2. Xem nội dung bảng kết hợp với chỉ mục ............................................................... 28
2.7.3. Xoá bản ghi ............................................................................................................. 29
2.7.4. Khơi phục các bản ghi bị đánh dấu xố .................................................................. 30
2.7.5. Xoá các bản ghi đã bị đánh dấu xoá khỏi bảng dữ liệu .......................................... 30
2.7.6. Cập nhật dữ liệu vào bảng ...................................................................................... 31
2.8. Đặt mối quan hệ giữa các bảng ..................................................................................... 31
1
Giáo trình Hệ quản trị cơ sở dữ liệu
2.8.1. Chuẩn bị ................................................................................................................. 32
2.8.2 Thiết lập mối quan hệ giữa các bảng ...................................................................... 32
2.8.3. Hiệu chỉnh mối quan hệ giữa các bảng ................................................................. 33
2.8.4. Xoá mối quan hệ giữa các bảng: ........................................................................... 33
Chƣơng 3. TÌM KIẾM THƠNG TIN (QUERY & VIEW) ..................................................... 38
3.1. Query (truy vấn) ............................................................................................................ 38
3.1.1. Khái niệm Query ........................................................................................................ 38
3.1.2. Tạo Query .................................................................................................................. 38
3.2. View (khung nhìn) ........................................................................................................ 49
3.2.1. Khái niệm View ..................................................................................................... 49
3.2.2. Tạo View ................................................................................................................ 50
Chƣơng 4. MẪU BIỂU (FORM) ............................................................................................. 55
4.1. Khái niệm Form ............................................................................................................ 55
4.2.Tạo Form bằng công cụ wizard...................................................................................... 55
4.2.1. Tạo Form dạng Form Wizard................................................................................. 56
4.2.2. Tạo Form dạng One - to - many Form wizard ....................................................... 60
4.3. Sửa form ........................................................................................................................ 64
4.4. Chạy forrm .................................................................................................................... 64
4.5. Tạo form bằng công cụ Form Designer ........................................................................ 65
Chƣơng 5. BÁO CÁO VÀ NHÃN (REPORT VÀ LABEL) ................................................... 69
5.1. Report ............................................................................................................................ 69
5.1.1. Khái niệm report .................................................................................................... 69
5.1.2. Tạo một Report Layout ......................................................................................... 69
5.1.3. Chỉnh sửa Report Layout ........................................................................................... 93
5.1.4. Xem và in Report ................................................................................................... 94
5.2. Label.............................................................................................................................. 95
5.2.1 Khái niệm Label ...................................................................................................... 95
5.2.2 Tạo Label Layout .................................................................................................... 95
5.2.3. Chỉnh sửa Label Layout ...................................................................................... 100
5.2.4. Xem và in Label ................................................................................................... 100
5.2.5 Ví dụ về thiết kế Label layout ............................................................................... 100
Chƣơng 6. BẢNG CHỌN (MENU) ....................................................................................... 102
6.1. Khái niệm Menu.......................................................................................................... 102
6.2. Tạo Menu .................................................................................................................... 103
6.3. Sửa Menu .................................................................................................................... 104
6.4. Dịch Menu................................................................................................................... 104
6.5. Chạy Menu .................................................................................................................. 104
6.6. Gắn các câu lệnh vào Menu. ...................................................................................... 105
6.7. Tạo thủ tục trong menu ............................................................................................... 105
2
Giáo trình Hệ quản trị cơ sở dữ liệu
6.8. Một số tuỳ biến trong tạo Menu .................................................................................. 105
6.8.1. Tạo nhóm các mục trong Menu ............................................................................ 105
6.8.2. Tạo SDI menu ....................................................................................................... 105
6.8.3. Gắn menu vào Form ............................................................................................. 106
6.8.4. Tạo phím tắt (ShortCut)........................................................................................ 106
6.8.5. Làm mất hay có tác dụng một mục Menu ............................................................ 107
6.9. Ví dụ ............................................................................................................................ 107
Chƣơng 7. LẬP TRÌNH TRONG VISUAL FOXPRO .......................................................... 111
7.1. Giới thiệu về lập trình .................................................................................................. 111
7.1.1. Các kỹ thuật lập trình trong Visual FoxPro .......................................................... 111
7.1.2. Lƣu file chƣơng trình............................................................................................ 113
7.1.3. Sửa chƣơng trình .................................................................................................. 113
7.1.4. Thực hiện chƣơng trình ........................................................................................ 113
7.1.5. Ghi chú trong chƣơng trình .................................................................................. 113
7.2. Chƣơng trình con ......................................................................................................... 114
7.2.1 Hàm tự tạo ............................................................................................................. 114
7.2.2. Thủ tục .................................................................................................................. 115
7.2.3 Cách tổ chức chƣơng trình con .............................................................................. 116
7.3. Biến tồn cục, biến cục bộ ........................................................................................... 118
7.3.1. Biến toàn cục ........................................................................................................ 118
7.3.2. Biến cục bộ ........................................................................................................... 118
7.3.3. Che các biến nhớ .................................................................................................. 118
7.4. Truyền tham số ........................................................................................................... 120
7.4.1. Truyền theo giá trị (truyền theo tham trị): ............................................................ 120
7.4.2. Truyền theo địa chỉ (truyền theo tham biến): ....................................................... 120
7.5. Một số câu lệnh của Visual FoxPro ............................................................................. 123
7.5.1 Các câu lệnh thiết lập môi trƣờng làm việc ........................................................... 123
7.5.2 các câu lệnh vào, ra dữ liệu đơn giản .................................................................... 124
7.5.3 Các lệnh in dữ liệu ra màn hình ............................................................................. 125
7.5.4 Lệnh SAY…GET…READ ................................................................................... 126
7.6. Các cấu trúc điều khiển chƣơng trình .......................................................................... 127
7.6.1 Cấu trúc tuần tự (ngầm định) ................................................................................. 127
7.6.2 Cấu trúc rẽ nhánh ................................................................................................... 127
7.6.3. Cấu trúc lặp ........................................................................................................... 130
7.7. Một số câu lệnh thao tác với bảng dữ liệu ................................................................... 134
7.7.1. Mở và đóng bảng dữ liệu ...................................................................................... 134
7.7.2. Dịch chuyển con trỏ bản ghi – Lệnh GO và SKIP ............................................... 134
7.7.3. Lệnh LOCATE ..................................................................................................... 135
7.7.4. Lệnh BROWSE .................................................................................................... 135
3
Giáo trình Hệ quản trị cơ sở dữ liệu
7.7.5. Bổ sung bản ghi – Lệnh APPEND ...................................................................... 136
7.7.6. Xóa bản ghi – Lệnh DELETE, RECALL, PACK, ZAP ...................................... 136
7.7.7. Các câu lệnh dặt lọc dữ liệu ................................................................................. 137
7.7.8. Lệnh REPLACE ................................................................................................... 138
7.7.9. Cấu trúc SCAN .................................................................................................... 138
7.8. Một số ví dụ về lập trình cơ sở dữ liệu ....................................................................... 139
7.8.1. Chƣơng trình nhập dữ liệu cho một bảng ............................................................ 139
7.8.2. Chƣơng trình tìm kiếm và xử lý bản ghi của một bảng ....................................... 140
7.8.3. Tìm kiếm trên nhiều bảng .................................................................................... 142
LẬP TRÌNH HƢỚNG ĐỐI TƢỢNG .................................................................................... 144
8.1 Một số khái niệm cơ bản .............................................................................................. 147
8.1.1. Đối tƣợng trong Visual FoxPro............................................................................ 147
8.1.2. Class và Object..................................................................................................... 148
8.1.3. Các Class cơ sở trong Visual FoxPro................................................................... 149
8.2. Lớp Form .................................................................................................................... 151
8.2.1. Một số thuộc tính thơng dụng của lớp form và các control ................................. 151
8.2.2. Một số sự kiện thông dụng của form và các control ............................................ 159
8.2.3. Một số Method (phƣơng thức) thông dụng của form và các control ................... 163
8.2. Bổ sung các đối tƣợng vào Form ................................................................................ 165
8.3.1. Bổ sung một biểu tƣợng lớp vào thanh công cụ Form Controls .......................... 165
8.3.2. Bổ sung một Control vào Form............................................................................ 165
8.3.3. Một số Control thơng dụng trên form .................................................................. 165
8.4. Một số ví dụ lập trình điều khiển trên Form ............................................................... 176
8.4.1. Lập trình giải bất phƣơng trình ax + b > 0 ........................................................... 176
8.4.2. Lập trình giải bất phƣơng trình bậc 2................................................................... 179
8.4.3. Lập trình điều khiển dữ liệu trên Form ................................................................ 182
Chƣơng 9. PHÂN PHỐI ỨNG DỤNG VÀ TẠO BỘ ĐĨA CÀI ĐẶT .................................. 195
9.1 Phân phối ứng dụng .................................................................................................... 195
9.2. Tạo bộ đĩa cài đặt cho ứng dụng bằng Setup Wizard ............................................... 198
BI TP THC HNH........................................................................................................ 205
Tài liệu tham khảo...................................................................................................... 261
4
Chương 1 Tổng quan về Visual Foxpro
Chƣơng 1. TỔNG QUAN VỀ VISUAL FOXPRO
1.1. Tổng quan về Visual FoxPro
1.1.1. Giới thiệu
Visual Foxpro là một ngơn ngữ lập trình thế hệ thứ tƣ. Trong mơi trƣờng ngơn
ngữ thế hệ thứ tƣ có:
- Hệ quản trị cơ sở dữ liệu
- Từ điển dữ liệu
- Một ngơn ngữ lập trình có câu trúc, hƣớng đối tƣợng.
- Một ngơn ngữ hỏi đáp có cấu trúc (SQL).
- Một bộ công cụ Case.
- ...
a) Cơ sở dữ liệu (cơ sở dữ liệu) là một tập hợp các dữ liệu có quan hệ với nhau, đƣợc
tổ chức và lƣu trữ trong máy tính theo một qui định nhất định nhằm phục vụ cho một
mục đích nào đó.
b) Hệ quản trị cơ sở dữ liệu (DBMS) là một hệ thống chƣơng trình nhằm quản lý, khai
thác và biến đổi các cơ sở dữ liệu.
Visual Foxpro là một hệ quản trị cơ sở dữ liệu quan hệ của hãng Microsoft. Nó cho
phép:
- Tạo lập, cập nhật các cơ sở dữ liệu, các bảng dữ liệu
- Sắp xếp, tìm kiếm thơng tin
- Hỏi đáp, tổng hợp, báo cáo thông tin
c) Ngôn ngữ hỏi đáp có cấu trúc (SQL) là ngơn ngữ hỏi đáp có cấu trúc phi thủ tục
giúp truy xuất nhanh thông tin.
d) Một bộ các công cụ Case cho phép xây dựng các ứng dụng một cách nhanh chóng,
thay vì phải lập trình rất phức tạp ta chỉ cần nêu ra các ý tƣởng cần thực hiện, chẳng
hạn:
- Công cụ tạo bảng cho phép tạo cấu trúc bảng cơ sở dữ liệu, tạo các qui tắc toàn
vẹn dữ liệu cũng nhƣ các khố và chỉ mục, ...
- Cơng cụ tạo Query và View cho phép hỏi đáp, tổng hợp thơng tin nhanh chóng.
5
Chương 1 Tổng quan về Visual Foxpro
- Công cụ Form cho phép tạo nhanh các màn hình cập nhập dữ liệu.
- Công cụ Report, Label cho phép tạo nhanh các báo cáo và nhãn .
- Công cụ Menu cho phép tạo các Menu nhiều cấp nhanh chóng, đơn giản
e) Từ điển dữ liệu: là nơi dùng để lƣu các thông tin cần thiết về các cơ sở dữ liệu, cũng
nhƣ mối quan hệ giữa các bảng cơ sở dữ liệu, …
1.1.2. Khởi động và thoát khỏi Visual Foxpro.
1) Khởi động Visual Foxpro
Sau khi đã cài đặt Visual FoxPro, ta có thể khởi động nó bằng cách thực hiện
file FoxProw.exe hoặc file vfp.exe đối với Visual Foxpro theo các cách sau:
- Kích chuột vào biểu tƣợng của Visual Foxpro trên màn hình nền Desktop:
Hình 1.1. Màn hình Visual Foxpro sau khi khởi động
- Chọn menu Start/Program/Microsoft Visual Studio…/ Microsoft Visual
Foxpro và kích chuột vào đó.
2) Thốt khỏi Visual FoxPro
Để thốt khỏi Visual FoxPro có thể sử dụng một trong các cách sau:
- Tại cửa sổ lệnh nhập vào lệnh QUIT
- Chọn File/Exit
6
Chương 1 Tổng quan về Visual Foxpro
- Kích trái chuột vào nút Close
1.1.3. Các chế độ làm việc
Visual FoxPro có 2 chế độ làm việc: chế độ tƣơng tác (interactive) và chế độ
chƣơng trình (program).
1) Chế độ tương tác (đối thoại):
Là chế độ ngƣời sử dụng đƣa vào từng câu lệnh, Visual Foxpro thực hiện ngay
câu lệnh đó và trả lại kết quả trên màn hình kết quả. Trong chế độ này có 2 hình thức
đƣa vào câu lệnh:
- Đƣa câu lệnh qua menu hệ thống (system menu).
- Đƣa câu lệnh từ cửa sổ lệnh (command window).
2) Chế độ chương trình:
Trong chế độ này, các câu lệnh đƣợc biên soạn trong một file văn bản chƣơng
trình và lƣu trên đĩa (gọi là file chƣơng trình nguồn). Khi muốn thực hiện các câu lệnh
trong chƣơng trình này, chỉ việc ra lệnh thực hiện chƣơng trình cho Visual Foxpro;
Visual Foxpro lần lƣợt thực hiện các câu lệnh trong văn bản chƣơng trình.
1.2. Các khái niệm cơ bản
1.2.1. Kiểu dữ liệu
Để xử lý và khai thác tốt các dữ liệu, Visual Foxpro chia dữ liệu thành nhiều
kiểu khác nhau. Trong đó có một số kiểu cơ bản là: kiểu số (Numeric), kiểu xâu kí tự
(Character), kiểu ngày tháng (Date), kiểu logic (Logical), kiểu bộ nhớ (Memo), kiểu
tổng quát (General).
1) Kiểu số - Numeric (N): Dùng để biểu diễn dữ liệu dạng số. Mỗi dữ liệu kiểu
số chiếm tối đa 20 chữ số gồm cả phần nguyên, phần thập phân và dấu chấm thập
phân.
2) Kiểu số - Float (F): Dùng để biểu diễn số thực có dấu chấm động. Ví dụ nhƣ
số 2.03E+5 (2.03105) và nó thƣờng đƣợc sử dụng trong các chƣơng trình thuộc lĩnh
vực khoa học kỹ thuật.
3) Kiểu xâu ký tự - Charater (C): Chứa các dữ liệu là một dãy các ký tự bất kỳ
trong bảng mã ASCII. Ví dụ nhƣ họ tên, quê quán, địa chỉ,… hoặc là số nhƣng khơng
có nhu cầu tính tốn nhƣ số chứng minh thƣ nhân dân, số điện thoại, số phòng, ... Mỗi
7
Chương 1 Tổng quan về Visual Foxpro
dữ liệu kiểu xâu ký tự có độ dài tối đa 255 ký tự (mỗi ký tự chiếm 1 byte trong bộ
nhớ).
4) Kiểu ngày tháng - Date (D): Dùng cho những dữ liệu dạng ngày tháng nhƣ
ngày sinh, ngày đến, ngày vào đoàn, .... Đó là những số nguyên dạng "yyyymmdd" khi
hiển thị ra bên ngồi sẽ đƣợc chuyển thành dạng ngày tháng bình thƣờng nhƣ
dd/mm/yy, mm/dd/yy, dd/mm/yyyy, ... tuỳ theo yêu cầu của ngƣời sử dụng. Độ dài cố
định của dữ liệu kiểu ngày là 8 ký tự.
5) Kiểu logic - Logical (L): Dùng cho những dữ liệu chỉ có một trong hai trƣờng
hợp hoặc đúng (.T.) hoặc sai (.F.), có hoặc khơng nhƣ giới tính, đảng viên, mua hay
bán, ... Độ dài cố định của dữ liệu kiểu logic là 1 ký tự.
6) Kiểu bộ nhớ - Memo (M): Dữ liệu kiểu memo dùng lƣu trữ một đoạn văn bản
có độ dài lớn hơn 255 ký tự. Chẳng hạn nhƣ các khóa đào tạo đã qua, lý lịch, q trình
cơng tác, ... Độ dài khai báo là 10 nhƣng nội dung thực sự của kiểu bộ nhớ là tuỳ ý,
chúng đƣợc lƣu trữ trong một tập tin văn bản khác có cùng tên nhƣng phần mở rộng là
.FPT (FoxPro Text).
7) Kiểu tổng quát - General (G): Dùng để chứa dữ liệu nhƣ hình ảnh...
Dùng để lƣu trữ dữ liệu dƣới dạng hình ảnh .BMP, .GIF, PSD, …. ví dụ nhƣ
ảnh cán bộ trong các chƣơng trình "quản lý nhân sự", ảnh phạm nhân trong "quản lý
nhận dạng", biểu đồ, ...
1.2.2. Các phép toán
1) Phép toán số học: Đƣợc thực hiện trên các dữ liệu kiểu số, gồm các phép
tốn:
Ý nghĩa
Ví dụ
-, +
dấu âm và dƣơng
+5, -7
** hay ^
luỹ thừa
5**2,5^2
*, /
nhân, chia
2*5, 5/7
%
phần dƣ (modulo)
25%5
+, -
cộng, trừ
10- 2, 45+ 4
Phép toán
Độ ƣu tiên các phép toán theo thứ tự đã nêu ở trên, có thể thay đổi thứ tự tính
tốn bằng cách đặt chúng trong 2 dấu ngoặc đơn (,) nhƣ các quy tắc tính tốn số học
8
Chương 1 Tổng quan về Visual Foxpro
thơng thƣờng.
2) Phép tốn xâu kí tự: Dùng để xử lý các dữ liệu kiểu xâu kí tự.
- Phép tốn ghép nối (+): Dùng để ghép 2 xâu kí tự thành một xâu kí tự
Ví dụ: 'Trung tâm' + ' Tin học' 'Trung tâm Tin học'
- Phép toán ghép nối (-): Dùng để ghép 2 xâu ký tự thành một xâu và di chuyển
các dấu cách ở cuối xâu thứ nhất (nếu có) ra cuối xâu tạo thành.
Ví dụ: 'Trung tâm
' - ' Tin học' 'Trung tâm Tin học
'
- Phép toán $: Kiểm tra xâu bên trái có nằm trong xâu bên phải khơng. Kết quả
của phép tốn có kiểu logic.
Ví dụ: 'ab' $ „Abab‟ cho giá trị .T. nhƣng 'ab‟ $ „AaBb‟ cho giá trị .F.
3) Phép toán ngày: Hai dữ liệu kiểu ngày có thể trừ (-) cho nhau để cho khoảng
cách giữa 2 ngày.
Ví dụ:
{01/08/2003} - {05/09/2003} = - 35
{01/08/2003} - {05/07/2003} = 25
Một dữ liệu kiểu ngày có thể cộng (+) hay trừ với (-) một số nguyên để cho kết
quả là một dữ liệu kiểu ngày.
Ví dụ:
{01/08/2003} + 10 {11/08/2003}
{01/08/2003} - 20 {12/07/2003}
Chú ý:
- Hai dữ liệu kiểu ngày không thể cộng (+) với nhau.
- Một số không thể trừ (-) đi một dữ liệu kiểu ngày.
- Việc diễn tả thứ tự ngày (D), tháng (M), năm (Y) trong một dữ liệu kiểu ngày
còn phụ thuộc vào thời điểm hiện tại đang theo hệ thống ngày tháng nào.
+ Lệnh SET DATE FRENCH | AMERICAN : Cho phép thiết lập dữ liệu dạng
ngày theo kiểu Pháp (dd/mm/yy) hoặc Mỹ (mm/dd/yy).
9
Chương 1 Tổng quan về Visual Foxpro
+ SET CENTURY ON | OFF: Quy ƣớc năm đƣợc biểu diễn theo dạng bốn số
yyyy hay dạng hai số yy (mặc định). Nếu SET CENTURY ON thì năm đƣợc biểu diễn
theo dạng bốn con số, nếu SET CENTURY OFF (dạng mặc định) thì năm đƣợc biểu
diễn theo dạng hai con số và ngầm định là 19yy.
4) Phép toán quan hệ: Dùng để so sánh hai giá trị của hai biểu thức cùng kiểu
Ý nghĩa
Phép toán
<
nhỏ hơn
<>, !
khác
>
lớn hơn
<=
nhỏ hơn hay bằng
=
bằng
=>
lớn hơn hay bằng
Phép tốn
==
Ý nghĩa
bằng chính xác
- Hai dữ liệu kiểu số đƣợc so sánh dựa theo biểu diễn của chúng trên trục số.
- Hai dữ liệu kiểu ngày đƣợc so sánh dựa theo biểu diễn của chúng theo chiều
của thời gian.
- Trong kiểu logic, Visual FoxPro quy ƣớc: .F.<.T.
- Hai xâu có độ dài bằng nhau đƣợc so sánh dựa theo nguyên tắc sau: đầu tiên
so sánh 2 mã ASCII của 2 ký tự đầu của hai xâu, nếu bằng nhau thì so sánh các ký tự
tƣơng ứng tiếp theo.
Ví dụ: 'ABCD' < 'ABCE' .T. ;
'a' < 'A' .F.
Trƣờng hợp hai xâu có độ dài khác nhau, thì việc so sánh dựa vào việc thiết lập
môi trƣờng SET EXACT ON | OFF, nghĩa là:
Nếu SET EXACT ON thì 'ABCD' < > 'AB' cho kết quả .F.
Nếu SET EXACT OFF thì 'ABCD' = 'AB' cho kết quả .T. nhƣng 'AB' <>
'ABCD'
5) Phép tốn logic: Visual FoxPro có 3 phép tốn logic: NOT, AND, OR
NOT hay ! : Phủ định của toán hạng theo sau.
AND: Cho giá trị .T. nếu cả hai toán hạng đều .T.
10
Chương 1 Tổng quan về Visual Foxpro
OR: Cho giá trị .F. nếu cả hai toán hạng đều .F.
Chú ý:
Trong một biểu thức Visual Foxpro, các phép toán số học đƣợc ƣu tiên trƣớc.
Sau đó đến phép tốn xâu kí tự. Rồi đến các phép quan hệ. Và cuối cùng là các phép
tốn logic.
1.2.3. Hằng
Hằng là đại lƣợng có giá trị khơng đổi trong thời gian chƣơng trình thực hiện.
Trừ kiểu dữ liệu memo thì mỗi kiểu dữ liệu đều có hằng của nó.
- Hằng số: Nhƣ -2.5; 100; 4.14;
- Hằng xâu là một dãy kí tự đƣợc đặt trong cặp dấu ", " hoặc ', ' có độ dài khơng
q 255 kí tự. Trong hằng xâu có phân biệt chữ hoa, chữ thƣờng.
Ví dụ: "abc"; 'tổng hợp', '123'.
- Hằng kiểu ngày: Phải đƣợc đặt trong cặp dấu {...}
Ví dụ: {01/01/96}; {}: ngày rỗng.
Hằng logic: chỉ có 2 giá trị .T. và .F.
1.2.4. Biến
Biến là đại lƣợng dùng để lƣu trữ dữ liệu trong q trình tính tốn. Biến có hai
đặc trƣng chính: tên biến và giá trị của biến. Tên biến đƣợc đặt theo ngun tắc: dài
khơng q 10 kí tự, bắt đầu phải là chữ cái hoặc dấu _ phần còn lại là tổ hợp của bất
kỳ các chữ cái, chữ số hoặc dấu _. Tên biến không đƣợc đặt trùng với các từ khoá của
Visual FoxPro, tên biến không phân việt chữ in hoa hay chữ thƣờng. Visual FoxPro
hiểu kiểu của biến là kiểu của giá trị mà nó đang mang. Số lƣợng tối đa của biến đƣợc
phép sử dụng là 2048 biến. Visual FoxPro chia biến làm 3 loại:
1) Biến bộ nhớ: Gọi chung là biến, do ngƣời sử dụng tạo ra trong bộ nhớ, khi
không sử dụng nữa có thể giải phóng để tiết kiệm bộ nhớ.
Ví dụ: Hsl = 3.12
Ngaysinh = {01/01/88}
11
Chương 1 Tổng quan về Visual Foxpro
2) Biến hệ thống: Đƣợc tạo ra ngay từ khi khởi động Visual FoxPro; Có tên bắt đầu
bằng dấu gạch nối ( _ ) và thƣờng đƣợc sử dụng trong vấn đề in ấn. Ngƣời sử dụng
khơng thể giải phóng đƣợc biến loại này.
3) Biến trường: Là tên các trƣờng trong bảng cơ sở dữ liệu, nó chỉ có ý nghĩa khi
tập tin chứa nó đƣợc mở ra để sử dụng. Mỗi biến trƣờng phải thuộc một kiểu dữ liệu
nào đó.
Nếu có một biến nhớ đặt trùng với một biến trƣờng thì biến trƣờng đƣợc ƣu tiên
thực hiện trƣớc.
Nếu tồn tại hai biến trƣờng hoặc biến trƣờng và biến nhớ trùng tên nhau, để truy
nhập đến chúng mà không sợ nhầm lẫn, phải sử dụng quy cách sau:
<tên bảng>.<tên trƣờng>
1.2.5. Hàm
Hàm là những chƣơng trình đƣợc viết ra nhằm trả lại cho tên hàm một giá trị
thuộc một kiểu dữ liệu nào đó. Về hình thức hàm đƣợc đặc trƣng bởi tên hàm và theo
sau là cặp dấu ( ) dùng để bao các đối số, các đối số này đặt cách nhau bởi dấu phảy
(nếu hàm có nhiều đối số). Nếu một hàm khơng có đối số nào cả vẫn phải có ( ) theo
sau tên hàm.
Ví dụ: Date ( ) - cho biết ngày tháng năm hệ thống.
Sqrt(x) - tính căn bậc 2 của x.
Có 2 loại hàm: Hàm có sẵn của Visual FoxPro (hàm chuẩn) và hàm tự tạo do
ngƣời sử dụng tạo ra. Hàm thƣờng đƣợc dùng trong các biểu thức.
Một số hàm chuẩn trong Visual FoxPro:
1) Nhóm hàm số học:
ABS(x)
Trả lại giá trị tuyệt đối của số x
SQRT(x)
Trả lại căn bậc hai của x
EXP(x)
Trả lại e mũ x
LOG(x)
Trả lại loga cơ số e của x
12
Chương 1 Tổng quan về Visual Foxpro
INT(x)
Trả lại phần nguyên của x
ROUND(x, n)
Làm tròn x với n chữ số lẻ
2) Nhóm hàm về xâu
LEN(s)
Trả về độ dài của xâu s
LEFT(s, n)
Trích n ký tự bên trái của xâu s
RIGHT(s, n)
Trích n ký tự bên phải của xâu s
SUBSTR(s, i, n)
Trích n ký tự của xâu s từ vị trí thứ i
REPLICATE(s, n)
Tạo ra một xâu gồm n lần xâu s
SPACE(n)
Tạo một xâu gồm n kí tự trắng
ALLTRIM(s)
Cắt bỏ các kí tự trắng bên trái, bên phải xâu s
LTRIM(s)
Cắt bỏ các kí tự trắng bên trái xâu s
RTRIM(s)
Cắt bỏ các kí tự trắng bên phải xâu s
LOWER(s)
Đổi xâu s thành toàn kí tự thƣờng
UPPER(s)
Đổi xâu s thành tồn kí tự hoa
PROPER(s)
Đổi các chữ cái đầu mỗi từ của xâu s thành kí tự hoa
VAL(s)
Đổi xâu s thành một số
STR(x, n, m)
Đổi số x thành một xâu gồm n kí tự với m chữ số sau
dấu chấm thập phân
ASC(s)
Trả về mã ASCII của kí tự đầu tiên trong xâu s
CHR(n)
Trả về kí tự có mã ASCII là n
AT(t, s)
Trả về vị trí đầu tiên xâu con t xuất hiện trong xâu s, nếu
khơng tìm thấy t trong s hàm trả lại giá trị 0
3) Nhóm hàm về ngày:
CTOD(s)
Trả lại giá trị ngày cho xâu s biểu diễn
DTOC(d)
Trả lại giá trị xâu biểu diễn ngày d
13
Chương 1 Tổng quan về Visual Foxpro
DTOS(d)
Đổi ngày thành xâu dạng „YYYYMM DD‟
YEAR(d)
Trả lại giá trị số của năm trong ngày d (đủ 4 số)
MONTH(d)
Trả lại giá trị số của tháng trong ngày d (từ 1..12)
DAY(d)
Trả lại giá trị số của ngày trong ngày d (từ 1..31)
DOW(d)
Trả lại thứ ngày trong tuần của ngày d (1 là chủ nhật, 2 là
thứ 2,…., 7 là thứ bảy)
DATE()
Trả lại giá trị ngày của ngày hiện tại theo đồng hồ hệ
thống
1.2.6. Biểu thức
Biểu thức là tập hợp của một hay nhiều thành phần nhƣ hằng, hàm, biến, phép
tốn, cặp dấu ngoặc trịn. Sau khi tính tốn biểu thức sẽ cho một giá trị duy nhất thuộc
một kiểu dữ liệu nào đó. Kiểu giá trị của biểu thức gọi là kiểu của biểu thức.
1.2.7. Từ khoá
Từ khoá là những từ đƣợc Visual FoxPro định nghĩa sẵn và mang ý nghĩa xác
định. Từ khoá thƣờng đƣợc dùng trong các câu lệnh để chỉ ra cho máy phải làm gì và
làm nhƣ thế nào. Ngƣời sử dụng khơng đƣợc đặt tên trùng với các từ khố. Nếu từ
khố có nhiều hơn 4 ký tự thì khi sử dụng chỉ cần ghi 4 ký tự đầu. Trong từ khố
khơng phân biệt chữ hoa chữ thƣờng.
Ví dụ: Câu lệnh MODIFY COMMAND LUONG.PRG có 2 từ khố là
MODIFY và COMMAND có thể viết gọn là: MODI COMM LUONG.PRG
1.2.8. Lệnh và chƣơng trình
Lệnh là những chỉ thị yêu cầu máy thực hiện một hành động nào đó. Lệnh trong
Visual FoxPro thƣờng là một động từ, cũng có trƣờng hợp là một kí hiệu nhƣ: !, ?, ... và
khơng phân biệt chữ hoa, chữ thƣờng.
Tập hợp các lệnh đƣợc viết theo một trình tự nhất định nhằm thực hiện một
nhiệm vụ đề ra gọi là chƣơng trình. Các lệnh của chƣơng trình đƣợc đặt trong một tệp
chƣơng trình có đi là PRG.
Trong Visual FoxPro có 3 cách để ban hành lệnh:
14
Chương 1 Tổng quan về Visual Foxpro
1) Dùng cửa sổ lệnh:
Lệnh đƣợc đƣa vào cửa sổ lệnh, sau khi ấn Enter lệnh đƣợc thi hành ngay và trả
lại kết quả câu lệnh trên màn hình. Thi hành xong một lệnh thì lệnh cũ đƣợc lƣu lại
trên cửa sổ lệnh có thể sử dụng cho lần sau.
2) Dùng menu:
Lệnh đƣợc ban hành bằng cách kích hoạt menu tƣơng ứng, sau khi thi hành
xong câu lệnh cũng đƣợc lƣu lại trên cửa sổ lệnh. Cách này chỉ hạn chế trong một số
lệnh thơng dụng.
3) Dùng chương trình:
Soạn thảo trƣớc một văn bản chƣơng trình gồm nhiều lệnh thích hợp. Sau đó
thực hiện chƣơng trình này bằng cách ban hành câu lệnh thực hiện chƣơng trình. Ví dụ
tại cửa sổ lệnh nhập vào câu lệnh DO <tên file chƣơng trình.PRG>. Sau khi ấn Enter
chƣơng trình đƣợc nạp vào bộ nhớ và từng lệnh đƣợc thực hiện theo đúng thứ tự nhƣ
chƣơng trình đã đề ra.
1.3. Quản lý đề án ( Project Manager)
1.3.1. Giới thiệu Project Manager
Đề án (Project) là tên gọi để chỉ đến ứng dụng mà ta đang xây dựng. Mỗi dự án
đƣợc lƣu dƣới dạng một file có phần mở rộng là PJX. Thông thƣờng các thành phần
của một đề án bao gồm:
- Các file cơ sở dữ liệu (Database)
- Các bảng dữ liệu (Table).
- Các Form
- Các Report, Label
- Các Query, View
- Các đoạn mã (Code)
- Các file khác nhƣ Menu, âm thanh, hình ảnh,...
Project Manager là cơng cụ tổ chức cơ bản, trung tâm điều khiển để làm việc
15
Chương 1 Tổng quan về Visual Foxpro
với dữ liệu và các đối tƣợng của Visual Foxpro trong quá trình phát triển một ứng
dụng (Project).
Ngay sau khi khởi động Visual Foxpro và mở đề án ta đi vào cửa sổ Project
Manager:
Hình 1.2. Cửa số Project manager-Trang All
- Trang Data:
Bao gồm:
+ DataBases: Chứa các cơ sở dữ liệu.
+ Tables: Các bảng dữ liệu có liên kết với nhau.
+ Free Tables: Chứa các bảng tự do.
+ Queries: Là cấu trúc để lấy thông tin từ các bảng.
+ Local Views: Là các Query chuyên dụng dùng truy xuất và cập nhật
các nguồn dữ liệu cục bộ.
+ Remote Views: Là các Query chuyên dụng truy xuất và cập nhật các
nguồn dữ liệu từ xa.
16
Chương 1 Tổng quan về Visual Foxpro
- Trang Documents: Chứa các tài liệu sử dụng cho đề án; bao gồm các Form và
Report, Label.
- Trang Class: Liệt kê các thƣ viện lớp đƣợc sử dụng.
- Trang Code: Chứa các đoạn mã lệnh.
- Trang Other: Chứa các file khác nhƣ file Menu, văn bản.
- Trang All: Bao gồm tất cả các trang trên.
1.3.2. Tạo một đề án
- Để tạo một đề án mới, sử dụng một trong các cách sau:
+ Cách 1: Nhập vào cửa sổ lệnh CREATE PROJECT <tên đề án>
+ Cách 2: Chọn File/New/Project/New File. Trong hộp thoại Create, nhập tên
cho Project sẽ tạo rồi chọn nút Save.
- Để chỉnh sửa bất kỳ một thành phần nào trong đề án, ta chọn tên đề án rồi
chọn nút Modify.
- Để thêm bất kỳ một file nào cho đề án, ta mở đề án rồi kích nút Add (nếu chọn
file đã có) hoặc nút New (nếu tạo mới).
- Để loại bỏ bất kỳ một thành phần nào của đề án đang mở, ta chọn thành phần
đó rồi chọn nút Remove.
1.3.3. Mở đề án
Để mở một đề án đã có, ta có thể sử dụng một trong các cách sau:
- Cách 1: Nhập vào cửa sổ lệnh: MODIFY PROJECT <tên đề án>
- Cách 2: Chọn File/Open. Trong hộp thoại Open, chọn file đề án, rồi chọn nút
Open.
1.3.4. Dịch đề án
- Dịch sang APP:
+ Dịch đề án sang file có phần mở rộng là APP.
Dùng lệnh BUILD <tên đề án>
+ Để chạy đề án này phải có một bản sao của Visual Foxpro.
- Dịch sang file có phần mở rộng là EXE: Khi này, ngƣời dùng khơng cần có
Visual Foxpro nhƣng phải cung cấp hai file: vfp6r.dll và vfp6renu.dll đƣợc cài đặt
trong đƣờng dẫn hoặc trong cùng thƣ mục với ứng dụng.
Dùng lệnh: BUILD EXE <tên đề án>
17
Chương 1 Tổng quan về Visual Foxpro
1.3.5. Chạy đề án
Sau khi đã dịch, ta có thể chạy đề án thơng qua lệnh: DO <tên ứng dụng>.
1.4. Tạo lập cơ sở dữ liệu:
Một đề án có thể liên quan đến một hoặc nhiều cơ sở dữ liệu. Trong Visual
Foxpro các cơ sở dữ liệu là các File có phần mở rộng là DBC, chứa trong nó là các
bảng cơ sở dữ liệu có phần mở rộng là DBF, các mối liên kết giữa các bảng, các View
cục bộ, …
- Để tạo một cơ sở dữ liệu mới cho một đề án ta thực hiện các thao tác sau:
+ Mở đề án.
Hình 1.3. Cửa số Project manager-Trang Data
+ Trong Project Manager, chọn trang All (hoặc Data), chọn mục
Databases, rồi chọn nút New, xuất hiện hộp thoại New Database:
Hình 1.4. Hộp thoại New Database
+ Chọn New Database, xuất hiện hộp thoại Create:
18
Chương 1 Tổng quan về Visual Foxpro
Hình 1.5. Hộp thoại Create
+ Tại hộp thoại Create, nhập vào tên cơ sở dữ liệu mới vào mục Enter
DataBase.
+ Chọn Save. Xuất hiện hộp thoại Database Designer cho phép ta thiết
kế cơ sở dữ liệu. Nếu khơng thì kích nút Close.
Hình 1.6. Hộp thoại Database Designer
- Để mở một cơ sở dữ liệu trong một đề án, ta thực hiện:
+ Mở đề án
+ Trong trang All (hoặc Data) chọn mục Database:
o Chọn tên cơ sở dữ liệu. Sau đó chọn nút Modify .
o Hoặc kích dấu cộng bên cạnh tên cơ sở dữ liệu.
19
Chương 2. Thao tác với bảng dữ liệu
Chƣơng 2
BẢNG DỮ LIỆU (TABLE)
2.1. Một số khái niệm
Bảng dữ liệu chứa dữ liệu theo dạng dòng và cột, mỗi dòng đƣợc gọi là một bản
ghi (record), mỗi cột đƣợc gọi là một trƣờng (field). Mỗi bảng đƣợc đặt bởi một tên có
phần mở rộng là DBF, mỗi trƣờng cũng đƣợc đặt bởi một tên theo nguyên tắc đặt tên
biến. Trong bảng cơ sở dữ liệu khơng cho phép có hai dịng trùng nhau.
Trong Visual FoxPro có hai loại bảng:
- Database Table (bảng cơ sở dữ liệu): Là bảng dữ liệu nằm trong một cơ sở
dữ liệu.
- Free Table (bảng tự do): Là bảng dữ liệu không nằm trong bất kỳ một cơ sở
dữ liệu nào.
Mỗi bảng dữ liệu đƣợc lƣu trữ trên đĩa với tên file có phần mở rộng mặc định
là DBF, mỗi bảng dữ liệu có hai phần: cấu trúc (Lƣợc đồ) và nội dung của bảng (Các
thể hiện).
Thiết kế cơ sở dữ liệu bao gồm tạo các bảng cơ sở dữ liệu trong đó cần phải xác
định:
- Tên các trƣờng cần thiết trong bảng và kiểu dữ liệu của nó.
- Các mối quan hệ cần thiết giữa các bảng với nhau.
Ngồi ra, ta cịn phải làm một số cơng việc chi tiết nhƣ: Tạo tiêu đề diễn giải, xác
định giá trị ngầm định, xác định các qui tắc về an toàn dữ liệu cho các trƣờng, bảng
cũng nhƣ chọn khoá, tạo chỉ mục cho các bảng.
Field – Level Rule: Là đoạn chƣơng trình đặt ở mức trƣờng dùng để kiểm tra
tính đúng đắn của dữ liệu khi dữ liệu đƣợc nhập vào trƣờng đó. Chúng đƣợc thực hiện
một cách tự động ngay sau khi nhập xong dữ liệu cho trƣờng đó.
Record -Level Rule: Là đoạn chƣơng trình đặt ở mức bản ghi dùng để kiểm tra
tính đúng đắn của dữ liệu khi dữ liệu đƣợc nhập vào bản ghi đó. Chúng đƣợc thực hiện
20
Chương 2. Thao tác với bảng dữ liệu
một cách tự động ngay sau khi nhập xong dữ liệu cho bản ghi đó.
Trigger: Là đoạn chƣơng trình đặt ở mức bảng dùng để kiểm tra tính đúng đắn
của dữ liệu khi dữ liệu đƣợc nhập vào bảng cơ sở dữ liệu. Chúng đƣợc thực hiện một
cách tự động ngay sau khi có một thao tác làm thay đổi dữ liệu của bảng (chèn, sửa,
xoá dữ liệu trên bảng).
Từ điển dữ liệu: Là một bảng chứa tất cả các thông tin của các bảng nhƣ tên các
bảng, tên các trƣờng, các luật về an toàn dữ liệu, các mối liên hệ giữa các bảng cơ sở
dữ liệu.
Ví dụ 1: Trong cơ sở dữ liệu quản lý mua bán hàng
Bảng KHHang.dbf có cấu trúc sau:
Name
Type
Width
MaKH
Character
10
Hoten
Character
30
Gioitinh
Logical
1
Diachi
Character
20
DienThoai
Character
10
Decimal
Bảng MHang.dbf có cấu trúc sau:
Name
Type
Width
MaMH
Character
10
TenMH
Character
30
Mau
Character
10
Donvitinh
Character
10
Decimal
Bảng MuaBan.dbf có cấu trúc sau:
Name
Type
Width
MaMH
Character
10
MaKH
Character
10
21
Decimal
Chương 2. Thao tác với bảng dữ liệu
NgayMB
Date
8
MuaBan
Logical
1
SoLuong
Numberic
10
2
DonGia
Numberic
10
2
2.2. Tạo bảng cơ sở dữ liệu
Để tạo bảng cơ sở dữ liệu ta dùng cách sau:
- Mở đề án, xuất hiện hộp thoại Project Manager
- Chọn trang Data/ chọn cơ sở dữ liệu/ chọn mục Table/ chọn New/ chọn New
table/ nhập tên bảng tại cửa sổ Create. Khi đó xuất hiện hộp thoại Table Designer.
Hình 2.1. Hộp thoại Table Designer
1) Trang Fields:
Cho phép ta khai báo cấu trúc của bảng.
Trong đó:
- Name: Dùng để khai báo tên trường.
- Type: Dùng để khai báo kiểu trường.
- Width: Dùng để khai báo độ rộng của trường.
22
Chương 2. Thao tác với bảng dữ liệu
- Decimal: Số chữ số lẻ sau phần dấu chấm thập phân, phần này chỉ sử dụng cho
dữ liệu kiểu số.
- Index: Cho phép tạo chỉ mục sắp xếp dữ liệu theo trường đó theo chiều tăng dần
hoặc giảm dần.
- Null: Cho phép trường có thể chứa giá trị Null (đánh dấu thì được phép chứa
giá trị Null).
- Caption: Cho phép tạo tiêu đề cho từng trường trong bảng dữ liệu. Tên này sẽ
xuất hiện trong cửa sổ Browser, trong Form.
- Rule: Cho phép thiết kế các quy tắc mức trường
- Message: Cho phép nhập nội dung câu thông báo khi quy tắc mức trường sai.
- Field Comment: Cho phép nhập lời chú giải cho từng trường.
- Default value: Cho phép thiết lập giá trị mặc định.
- Format: Định dạng dữ liệu hiện thị trong cửa sổ Brower hoặc Report.
- Input mask: Dùng để định dạng khuôn dạng dữ liệu khi nhập.
Khuôn dạng dữ liệu là một xâu ký tự. Tùy theo các ký ký tự trong khuôn dạng mà
việc định dạng đƣợc thực hiện theo một cách nào đấy. Mỗi ký tự trong khuôn dạng sẽ
định dạng một ký tự của dữ liệu khi nhập. Một vài ký tự dùng trong khuôn dạng hay
gặp:
- X : Cho phép một ký tự bất kỳ.
- A : Cho phép một chữ cái.
- N : Cho phép một chữ cái hoặc chữ số.
- 9 : Cho phép một dấu cộng (+) hoặc trừ (-) hoặc chữ số.
- # : Cho phép một dấu cộng (+) hoặc trừ (-) hoặc chữ số hoặc dấu cách.
- ! : Nhận chữ cái khi nhập vào sẽ biến thành chữ in hoa.
- Dấu chấm: Xác định vị trí dấu chấm thập phân trong dữ liệu kiểu số.
- Dấu phẩy: Xác định vị trí phân nhóm trong dữ liệu số.
Ví dụ: Input Mask của trƣờng
Hệ số lƣơng là: 9.99
Điện thoại là: 9999999999
Biển số xe máy là: 99A-9999
23
Chương 2. Thao tác với bảng dữ liệu
2) Trang Index:
Cho phép tạo các chỉ mục sắp xếp dữ liệu trong bảng theo các biểu thức.
Hình 2.2. Trang Index
Trong đó:
- Order: Dùng để xác định chiều sắp xếp ( sắp xếp tăng dần, sắp xếp giảm
dần) của biểu thức sắp xếp.
- Name: Dùng để xác định tên chỉ mục cần tạo.
- Type: Dùng để xác định loại chỉ mục, có 4 loại chỉ mục:
+ Primary: Là khố chính, chỉ tồn tại khi bảng dữ liệu nằm trong một cơ
sở dữ liệu. Loại chỉ mục này tạo trên một biểu thức sắp xếp khơng có giá trị trùng nhau
trên các bản ghi. Mỗi bảng dữ liệu chỉ cho phép tạo một chỉ mục loại này.
+ Candidate: Có thể trở thành khố chính, có thể tạo nhiều chỉ mục loại
này trong một bảng dữ liệu.
+ Regular: Là loại chỉ mục dùng để sắp xếp bảng dữ liệu theo một biểu
thức, cho phép chứa giá trị trùng nhau trên các bản ghi, có thể tạo nhiều chỉ mục loại
này trong một bảng dữ liệu.
+ Unique: Là loại chỉ mục dùng để sắp xếp bảng dữ liệu theo một biểu
24
Chương 2. Thao tác với bảng dữ liệu
thức, cho phép chứa giá trị trùng nhau trên các bản ghi, kết quả chỉ xuất hiện một bản
ghi đầu tiên.
- Expression: Dùng để xác định biểu thức sắp xếp.
- Filter: Dùng để lọc các bản ghi thoả mãn một điều kiện nào đó trước khi tạo chỉ mục.
Chú ý:
Chỉ mục sắp xếp thực chất chỉ là bảng chỉ dẫn sắp xếp. Bảng này gồm 2 trƣờng:
Trƣờng thứ nhất chứa giá trị của biểu thức cần sắp xếp, trƣờng thứ hai chứa con trỏ trỏ
đến bản ghi cần sắp xếp trên bảng dữ liệu. Các bảng này nằm trong file có tên là tên
bảng dữ liệu, có phần mở rộng là CDX.
3) Trang Table:
Cho phép thiết kế các quy tắc ở mức bản ghi (Record Validation) và các quy tắc ở
mức bảng (Trigger ).
Hình 2.3. Trang Table
Trong đó:
- Name: Dùng để xác định tên của bảng dữ liệu, tên này chỉ xuất hiện trong
Project Manager. Nó khơng phải là tên File.
- Record Validation:
25