GIỚI THIỆU VISUAL FOXPRO: Microsoft Visual Foxpro là một phần mềm Quản lý CSDL, bao gồm một số công rất mạnh giúp có thể tổng hợp, truy xuất thông tin một cách thuận tiện, có một bộ lệnh
Trang 1NGÔN NGỮ LẬP TRÌNH VISUAL FOXPRO
I GIỚI THIỆU VISUAL FOXPRO:
Microsoft Visual Foxpro là một phần mềm Quản lý CSDL, bao gồm một số công rất mạnh giúp có thể tổng hợp, truy xuất thông tin một cách thuận tiện, có một bộ lệnh dùng trong lập trình rất phong phú, cho phép tạo được một giao diện thân thiện Điều đáng lưu ý là các ứng dụng được thiết kế từ các phiên bản trước của Foxpro vẫn còn hiệu lực trong Visual Foxpro, nghĩa là vẫn có thể chạy được trong Visual Foxpro Tuy nhiên, nếu đã sửa đổi nguyên bản cũ trong Visual Foxpro rồi thì không thể thực thi được nữa trong các phiên bản cũ trước đó của nó
Để có thể dùng được Visual Foxpro, máy vi tính cần phải đạt được tối thiểu các điều kiện sau: + Có bộ xử lý từ 80386 trở đi, nên là 486 hoặc mạnh hơn
+ Có bộ nhơ ù tối thiểu 4MB RAM, nhưng nên là 8MB RAM hoặc hơn
+ Có đĩa cứng càng lớn càng tốt, tối thiểu 200MB RAM
+ Hệ điều hành : Windows 95 hoặc Windows NT
+ Đã cài hệ điều hành MS DOS, nên dùng DOS 5.0 trở về sau
+ Đã cài hệ giao diện Windows 3.x hoặc Windows ’95 trở đi
Sau khi đã được cài đặt, Visual Foxpro có thể được khởi động bằng một trong các cách như sau :
+ Click chuột vào thực đơn Start trên màn hình chính của Windows 95 / Windows NT; chọn Programs; chọn Microsoft Visual Foxpro; chọn Visual Foxpro 6.0
+ Thực hiện chức năng Run với tên tập thực hiện C:\Vfp\Vfp.exe
Visual Foxpro cũng có hai chế độ làm việc : hội thoại và chương trình
Trong chế độ hội thoại, người ta đưa ra một yêu cầu cho Visual Foxpro bằng một lệnh thông qua cửa sổ lệnh (command window) hoặc thông qua thực đơn hệ thống (system menu) và sẽ nhận được kết quả ngay Sau đó, người dùng có thể tiếp tục thực hiện các yêu cầu khác
Trong chế độ chương trình, các câu lệnh của Visual Foxpro có thể được tập hợp lại thành một tập tin ghi trên đĩa và khi muốn cho thi hành tập tin này, từ cửa sổ lệnh người dùng thực hiện lệnh :
DO <Tên chương trình> Khi đó các lệnh có trong tập tin chương trình này sẽ lần lượt được thực hiện
Một ứng dụng (project) bao gồm nhiều thành phần : CSDL, chương trình, màn hình giao diện, thực đơn, báo biểu, … Một ứng dụng được lưu trữ trong tập tin có phần mở rộng là PJX và quản lý bằng công cụ Project Manager
CSDL trong Visual Foxpro chứa danh sách các bảng (table), hàm cửa sổ (view), thủ tục, … và được lưu trữ trong một tập tin có phần mở rộng là DBC (trong khi Foxpro 2.6 là DBF)
Visual Foxpro cung cấp cho người dùng các bộ công cụ như : Form Wizard và Form Designer tiện dụng trong thiết kế các màn hình giao diện
Visual Foxpro cung cấp các bộ công cụ : Report Wizard và Report Designer tiện dụng trong thiết kế các báo biểu
Visual Foxpro cung cấp các bộ công cụ Menu Designer tiện dụng trong việc tạo các thực đơn nhiều cấp
Visual Foxpro có sự mở rộng sang phương pháp lập trình hướng đối tượng bên cạnh cách lập trình theo thủ tục như truyền thống
Trước khi đi vào tương đối chi tiết một số các vấn đề cần lưu tâm, ta lưu ý thêm một số các vấn đề về khả năng, giới hạn và một số thuật ngữ thường dùng của Visual Foxpro
Khả năng và giới hạn của Visual Foxpro có thể được tóm gọn trong bảng sau :
Trang 21 Tập số liệu và chỉ mục
Số dòng tin tối đa trong 1 table 1 tỷ record
Số ký tự tối đa cho 1 dòng tin (record) 65 500
Số vùng tối đa trên một dòng tin 255
Số table tối đa có thể mở cùng lúc 255
Số ký tự tối đa cho 1 vùng tin 254
Số ký tự tối đa cho một khóa chỉ mục trong tập non-compact
Số ký tự tối đa cho một khóa chỉ mục trong tập compact index 240
Số tối đa tập tin chỉ mục được mở kèm 1 table Không giới hạn Số tối đa tập chỉ mục được mở trong tất cả các vùng làm việc Không giới hạn Số tối đa các mối quan hệ Không giới hạn Chiều dài tối đa của các biểu thức quan hệ Không giới hạn
2 Vùng tin (Field)
Kích thước tối đa vùng tin kiểu Character 254
Kích thước tối đa vùng tin kiểu Numeric hay Float 20
Số ký tự tối đa dùng để đặt tên cho vùng tin trong 1 Table riêng
Số ký tự tối đa dùng để đặt tên cho vùng tin trong 1 Table bên
Mức chính xác của trị số khi tính toán 16 cột
3 Biến bộ nhớ và mảng
Số lượng biến bộ nhớ ngầm định 1 024
Số lượng tối đa biến bộ nhớ có thể chọn 65 000
Số lượng tối đa các mảng có thể khai báo 65 000
Số lượng tối đa các phần tử trong một mảng 65 000
4 Tập chương trình và thủ tục
Số dòng tối đa trong một tập chương trình Không giới hạn Kích thước tối đa cho một thủ tục đã được biên dịch 64 KB
Số tối đa các thủ tục trong tập chương trình Không giới hạn Số lượng tối đa các lệnh DO gọi lồng nhau 128
Số cấp ra lệnh READ lồng trong nhau 5
Số lượng tối đa lệnh lập trình cấu trúc lồng trong nhau 384
Số lượng tối đa các thông số được trao 27
Số lượng tối đa các xử lý phát sinh đồng thời 5
5 Báo biểu
Số tối đa các object trong một báo biểu Không giới hạn Chiều dài tối đa một báo biểu 20 inches
6 Khả năng khác
Tối đa số cửa sổ mở cùng một lúc Không giới hạn
Số ký tự tối đa trong một chuỗi 2 GB
Số ký tự tối đa trong một dòng lệnh 8 192
Trang 3Số ký tự tối đa cho 1 nhãn Report Label 255
Số ký tự cho 1 dòng thay thế vĩ mô 8 192
Số lượng tối đa tập tin được mở Giới hạn bởi DOS Số tối đa phóm bấm trong 1 Keyboard macro 1 024
Số Fields tối đa có thể chọn bởi một lệnh SQL SELECT 255
Các kiểu số liệu :
Character Văn bản Từ 1 – 254 ký tự Chứa ký tự nào cũng được
Character
(Binary)
Văn bản Không thay đổi khi chuyển
từ mã quốc gia này sang mã quốc gia khác
Date Ngày tháng 8 bytes 01/01/100 đến 31/12/9999
Date Time Ngày giờ 8 bytes 01/01/100 đến 31/12/999 và
có thêm phần giờ từ 00:00:00 a.m đến 11:59:59 p.m
Logical Trị luận lý 1 byte Đúng (.T.) hoặc Sai (.F.)
Currency Giá trị bằng tiền 8 bytes Từ –
922337203685477.5808 đến 922337203685477.5807 Numeric Số nguyên hay
thập phân
8 bytes bộ nhớ; 1 đến 20 bytes khi lưu giữ trong table
Từ –0.9999999999E+19 đến +0.9999999999E+20
Double Số chính xác
kép 8 bytes Từ +/-4.94065645841247E-324 đến
+/-1.79769313486232E+308 Float Số nguyên hay
thập phân
8 bytes bộ nhớ; 1 đến 20 bytes khi lưu giữ trong table
Từ –0.9999999999E+19 đến +0.9999999999E+20
Integer Số nguyên 4 bytes Từ –2147483647 đến
2147483646 General Đối tượng
nhúng
4 bytes trong table Chỉ bị giới hạn bởi bộ nhớ
Memo Văn bản ghi
nhớ
4 bytes trong table Chỉ bị giới hạn bởi bộ nhớ
Memo
(Binary)
Văn bản ghi nhớ
Không thay đổi khi chuyển từ mã quốc gia này sang mã quốc gia khác
* Các vấn đề khác :
• Ứng dụng (Application) là một tập hợp gồm Programs, Forms, Menus, Labels, Queries, … được biên dịch thành một chương trình duy nhất Các ứng dụng được xây dựng bằng chức năng Project Manager, lưu trên đĩa thành tập tin có phần mở rộng là APP
• Đồ án (Project) là một tập tin theo dõi các : Programs, Forms, Menus, … Các Project được bảo trì bởi chức năng Project Manager, lưu trên đĩa thành tập tin có phần mở rộng là PJX
Trang 4• CSDL (Database) cung cấp một môi trường làm việc trong đó chứa một tập hợp các Tables, quy định mối quan hệ (Relaltionships) giữa các Tables, đề ra các thuộc tính (Propeties) cùng các quy luật kiểm chính số liệu dùng để điều khiển đồng bộ giữa các Tables với nhau Có thể sử dụng độc lập hoặc liên kết chúng vào một project bằng cách thêm chúng vào Project Manager
• Tables lưu giữ số liệu theo các đơn vị gọi là Records (các mẫu tin) và Fields (các vùng)
• Record là một bộ các vùng tin trong một Table
• Một Field là tên của một cột quy định trong Record để chứa dữ kiện thuộc một kiểu nào đó Khi đặt tên trong Visual Foxpro, cần lưu ý :
• Chỉ dùng các ký tự chữ (từ a đến z và từ A đến Z), ký tự số (0 đến 9), dấu gạch dưới
• Tên chỉ được bắt đầu bằng ký tự chữ hoặc dấu gạch dưới
• Tên có thể dài từ 1 đến 256 ký tự, ngoại trừ tên Field và tên chỉ mục chỉ dài tối đa 10 ký tự
• Không nên đặt tên trùng với từ khóa
• Tên tập tin thì theo nguyên tắc đặt tên của hệ điều hành đang dùng
Các toán tử :
• toán tử xử lý chuỗi :
+ : ghép chuỗi
– : ghép chuỗi dời khoảng trắng về cuối
$ : thuộc về (So sánh)
• toán tử xử lý ngày giờ :
+ : cộng
– : trừ
Ngày + Số (tính bằng ngày) → Ngày sắp tới
Ngày – Số (tính bằng ngày) → Ngày trước đó
Ngày giờ + Số (tính bằng giây) → Ngày giờ sắp tới
Ngày giờ – Số (tính bằng ngày) → Ngày giờ trước đó
• toán tử luận lý :
( ) : kết nhóm, điều kiện bên trong ngoặc kết nhóm được xét trước
NOT hoặc ! : Logical Negative
AND : Logical AND
OR : Logical OR
(NOT, AND, OR có thể viết theo kiểu cũ : NOT., AND., OR.)
• toán tử so sánh :
< : nhỏ hơn
> : lớn hơn
= : bằng
<>, #, !=: không bằng (không sử dụng >< hoặc =! hoặc ≠)
<=: nhỏ hơn hay bằng (không sử dụng =< hoặc ≤)
>=: lớn hơn hay bằng (không sử dụng => hoặc ≥)
==: chuỗi ký tự bằng chính xác
• toán tử số học :
( ) : kết nhóm
**, ^ : lũy thừa
* : nhân
/ : chia
% : số dư phép chia nguyên
+ : cộng
– : trừ
Biến hệ thống là do Visual Foxpro tạo ra khi khởi động Tên biến hệ thống thường khởi đầu bằng dấu gạch dưới
Trang 5Biến bộ nhớ do người sử dụng tạo ra, có thể thay đổi giá trị, kiểu hoặc xóa dễ dàng khi hết phiên làm việc của Visual Foxpro
Hàm cơ hữu là hàm có sẵn trong bộ chương trình Visual Foxpro Hàm người dùng là hàm do người dùng tự viết và chỉ có tác dụng trong chương trình hay ứng dụng có định nghĩa hàm đó Môi trường làm việc muốn chạy thật ổn định cần quan tâm đến các tham số môi trường sao cho phù hợp, đôi khi cần phải quy định lại các tham số này bằng các lệnh thích hợp
II QUẢN LÝ ĐỀ ÁN ( PROJECT MANAGER ) :
Một ứng dụng là một tập hợp gồm các tập tin, dữ liệu, tư liệu và các đối tượng Tất cả các thông tin quản lý ứng dụng được lưu trong tập tin chính có phần mở rộng là PJX và tập tin ký ức có phần mở rộng là PJT
Cửa sổ quản lý ứng dụng đuợc dùng để tổ chức và quản lý các thành phần trong một ứng dụng Nó gồm có 6 trang : All, Data, Docs, Classes, Code, Other Trang All chứa toàn bộ thông tin của 5 trang còn lại Trang Data gồm 2 thành phần : Database và Query Trang Docs gồm các thành phần : Forms, Reports, Labels Trang Classes gồm danh sách các lớp được sử dụng trong ứng dụng Trang Code gồm các tập tin chương trình, thư viện API và các ứng dụng khác Trang Other gồm các thực đơn, tập tin kiểu văn bản TXT và các tập tin khác
Các nút chức năng trong cửa sổ ứng dụng :
• New : để tạo mới các loại thành phần chi tiết
• Add : đưa tập tin các loại đã có trên đĩa vào cửa sổ ứng dụng
• Modify : cập nhật trên mục được chọn
• Browse : liệt kê một tập tin DBF dưới dạng bảng
• Close : đóng các tập tin các loại
• Open : mở một CSDL
• Remove : loại bỏ một tập tin hay một đối tượng ra khỏi cửa sổ ứng dụng
• Build : tạo tập tin thực hiện cho các ứng dụng
• Preview : xem một báo cáo ở chế độ xem trước trên màn hình
• Run : dùng để thực hiện một truy vấn, biểu mẫu, chương trình
* Tạo một tập tin ứng dụng :
Cú pháp : CREATE PROJECT <.PJX> | ?
* Mở một tập tin ứng dụng :
Cú pháp : MODIFY PROJECT <.PJX> | ?
* Dịch một tập tin ứng dụng ra tập tin APP hoặc EXE :
- Chọn nút chức năng Build hoặc chọn Project, Build từ thực đơn hệ thống
- Chọn cách dịch tập tin ứng dụng :
• Rebuild Project để dịch ra tập tin PJX
• Build Application để dịch ra tập tin APP
Trang 6• Build Executable để dịch ra tập tin EXE.
III CƠ SỞ DỮ LIỆU ( Database ):
Bảng trong mô hình dữ liệu quan hệ là một bảng hai chiều gồm các dòng và cột Mỗi bảng được đặc trưng bởi tên có phần mở rộng là DBF và danh sách các cột (thuộc tính) Thứ tự các cột là không quan trọng và hai bảng khác nhau thì phải có tên khác nhau Có hai loại bảng : bảng tham chiếu (database table) và bảng tự do (free table) không thuộc danh sách tham chiếu của các CSDL Mỗi vùng là một cột trong bảng, phải thuộc một trong các kiểu dữ liệu : Numeric, Float, Integer, Double, Currency, Character, Date, Date Time, Logical, Memo, General Mỗi mẫu tin (record) là một dòng trong bảng Khi muốn sử dụng một bảng phải tiến hành mở bảng bằng lệnh : USE <table>
Ràng buộc toàn vẹn (RBTV) là điều kiện ràng buộc dữ liệu trong các bảng tham chiếu của CSDL và tất cả các RBTV phải được thỏa mãn ở bất kỳ thời điểm nào Việc kiểm tra các RBTV thường được thực hiện sau các thao tác cập nhật dữ liệu như thêm, sửa, đánh dấu xóa và có thể được tiến hành thông qua các thủ tục kiểm tra do người thiết kế chương trình ứng dụng viết hay Visual Foxpro tự động kiểm tra các RBTV dựa trên những mô tả chi tiết của người thiết kế về điều kiện ràng buộc đối với dữ liệu RBTV có 2 mức : ràng buộc trên vùng (được kiểm tra khi có sự thay đổi dữ liệu trên vùng) và ràng buộc mẫu tin (được kiểm tra khi có sự thay đổi dữ liệu trên mẫu tin và được kiểm tra sau ràng buộc trên vùng) Phân loại các RBTV :
• RBTV về giá trị của một vùng : là những điều kiện thu hẹp miền giá trị của các vùng Các vùng này thường là vùng kiểu số, kiểu Date, kiểu Character
• RBTV liên vùng : mô tả mối quan hệ giữa các vùng trong một bảng
• RBTV giữa các mẫu tin trong một bảng
• Siêu khóa – Khóa chính
• RBTV về khóa ngoại : còn gọi là ràng buộc về phụ thuộc tồn tại
• RBTV giữa các mẫu tin của nhiều bảng
• RBTV giữa các vùng của nhiều bảng
• RBTV phức tạp trên nhiều bảng
Tạo CSDL mới : chọn một trong các cách sau :
• Chọn trang Data của cửa sổ ứng dụng, chọn mục Database và nhấp chuột vào chức năng New và xác định tên trong ô nhập Enter
• Thực hiện thông qua lệnh : CREATE DATABASE <.DBC> | ?
• Thực hiện qua thực đơn hệ thống : chọn File, New, Database và nhấp chuột vào New File Thêm CSDL đã có vào danh sách tham chiếu của ứng dụng : chọn mục Database trong trang Data của cửa sổ ứng dụng và nhấp chuột vào chức năng Add
Loại một CSDL ra khỏi danh sách tham chiếu : chọn một trang các cách sau :
• Thực hiện qua cửa sổ ứng dụng : chọn tên CSDL cần xóa trong cửa số ứng dụng, chọn nút chức năng Remove Trong hộp thoại Remove : chọn Remove để xóa CSDL ra khỏi danh sách tham chiếu, chọn Delete để xóa CSDL ra khỏi đĩa, chọn Cancel để ngưng thao tác
• Thực hiện qua cửa sổ lệnh : DELETE DATABASE <.DBC> | ? [DELETETABLES]
[RECYCLE]
Tạo một bảng bằng bộ công cụ Database Designer :
Trang 7Chọn biểu tượng đầu tiên bên trái (New Table) của thanh công cụ Databse Designer, chọn nút ấn New table trong hộp thoại ngay sau đó, xác định thư mục và tên table, định nghĩa cấu trúc bảng qua cửa sổ Table Designer
Cửa sổ Table Designer có trang : Fields, Indexes và Table
Trang Fiels dùng để định nghĩa các vùng của bảng với các ý nghĩa :
• Name : tên của vùng
• Type : kiểu của vùng
• Width, Decimal : kích thước của vùng
• Index : dữ liệu của vùng được sắp xếp tăng dẩn (Ascending) hoặc giảm dần (Descending)
• NULL : chó phép vùng nhận giá trị NULL hay không
• Format : dạng hiển thị cho dữ liệu vùng
• Input mask : dạng nhập liệu cho dữ liệu của vùng
• Caption : tiêu đề của vùng
• Rule : các ràng buộc toàn vẹn trên vùng
• Message : thông báo lỗi khi dữ liệu không hợp lệ
• Default value : giá trị ngầm định cho vùng khi nhập liệu
• Field comment : chú thích thêm cho vùng
Trang Indexes : dùng để mô tả các chỉ mục của bảng
• Order : thứ tự sắp xếp
• Name : tên của chỉ mục
• Type : kiểu chỉ mục (Primary, Candidate, Unique, Regular)
• Expression : biểu thức khóa của chỉ mục
• Filter : điều kiện lọc dữ liệu của chỉ mục
Trang Table :
• Name : tên bảng
• Database : tập tin CSDL
• Table file : tập tin DBF chứa dữ liệu của bảng
• Records : số mẫu tin của bảng
• Fields : số vùng của bảng
• Length : kích thước của mẫu tin + 1
• Rule : chỉ định các điều kiện ràng buộc (biểu thức hay thủ tục)
• Insert trigger : trigger cho thao tác thêm mẫu tin vào bảng
• Update trigger : trigger cho thao tác sửa đổi dữ liệu của các mẫu tin trong bảng
• Delete trigger : trigger cho thao tác đánh dấu xóa các mẫu tin trong bảng
Trang 8Tạo một bảng : Có thể tạo cấu trúc của một bảng bằng lệnh :
CREATE TABLE | DBF <.DBF> [NAME <tên>] [FREE] ;
(<vùng1> <kiểu1> [(<kích thước1> [, <thập phân1>])] ;
[NULL | NOT NULL] ;
[CHECK <btL1> [ERROR <btC1>]] ;
[DEFAULT <bt1>] ;
[PRIMARY KEY | UNIQUE] ;
[REFERENCES <bảng1> [TAG <chỉ mục1>]] ;
[, <vùng2> …] ;
[, PRIMARY KEY <bt2> TAG <chỉ mục2> ;
|, UNIQUE <bt3> TAG <chỉ mục3>] ;
[, FOREIGN KEY <bt4> TAG <chỉ mục4> [NODUP] ;
REFERENCES <bảng2> [TAG <chỉ mục5>]] ;
[, CHECK <btL2> [ERROR <btc2>]])
Trong đó :
• <.DBF> : tên tập tin DBF của bảng sẽ được tạo lập Bảng sẽ được tự động đưa vào danh sách tham chiếu của CSDL
• NAME <tên> : tên đặt thêm cho bảng
• FREE : bảng được tạo ra không được đưa vào danh sách tham chiếu
• <vùng1> : tên của vùng thứ nhất của bảng
• <kiểu1> : kiểu dữ liệu cho vùng thứ nhất của bảng
• <kích thước1> : kích thước của vùng thứ nhất của bảng
• <thập phân1> : số chữ số thập phân của vùng thứ nhất
• NULL | NOT NULL : cho phép / không cho phép vùng lấy giá trị NULL
• CHECK <btL1> : ràng buộc toàn vẹn trên vùng thứ nhất trong bảng Ngay cả một mẫu tin trắng đưa vào cũng sẽ được kiểm tra
• ERROR <btC1> : thông báo lỗi khi ràng buộc toàn vẹn trong thành phần CHECK bị vi phạm
• DEFAULT <bt1> : giá trị ngầm định cho vùng
• PRIMARY KEY : tạo chỉ mục khóa chính cho vùng, vùng này sẽ là khóa chính của bảng
• UNIQUE : tạo chỉ mục khóa cho vùng, sẽ trở thành khóa của bảng
• REFERENCES <bảng1> {TAG <chỉ mục1> : bảng được tạo sẽ liên kết khóa ngoại giữa vùng thứ nhất với <chỉ mục1> của <bảng1>
• PRIMARY KEY <bt2> TAG <chỉ mục2> : <bt2> là khóa chính của bảng (có thể gồm nhiều vùng) Nếu đã dùng thành phần PRIMARY trước đó rồi thì không được dùng thành phần này
• UNIQUE <bt3> TAG <chỉ mục3> : <bt3> là khóa của bảng (có thể gồm nhiều vùng), không chứa một vùng đã tham gia vào khóa chính
• FOREIGN KEY <bt4> TAG <chỉ mục4> [NODUP] REFERENCES <bảng2> [TAG <chỉ mục5>] : bảng được tạo sẽ liên kết khóa ngoại giữa <bt4> với <chỉ mục5> của <bảng2> Nếu có từ khóa NODUP thì chỉ mục tạo ra sẽ là chỉ mục khóa ngoại
• CHECK <btL2> : mô tả ràng buộc toàn vẹn của bảng
• ERROR <btC2> : thông báo lỗi khi thành phần CHECK bị vi phạm trong quá trình cập nhật dữ liệu trong cửa sỗ Browse hay Edit
Ngoài ra còn các lệnh về sửa đổi cấu trúc bảng, sửa đổi thông tin các vùng, hủy bỏ cột của bảng, thêm dữ liệu của bảng, cập nhật dữ liệu của bảng, xóa dữ liệu của bảng, truy vấn dữ liệu của CSDL thông qua các lệnh ALTER, INSERT, UPDATE, DELETE, SELECT
Trigger của một bảng là một hành động (tương ứng với 1 thủ tục hay chương trình) được định nghĩa gắn liền với một thao tác cập nhật dữ liệu (thêm, sửa, xóa) của bảng Trigger thường được sử dụng để kiểm tra các RBTV
Trang 9• Định nghĩa các trigger cho một bảng : mở cửa sổ Table Designer để thiết kế lại bảng, chọn trang Table, mô tả điều kiện ràng buộc hoặc tên thủ tục kiểm tra ràng buộc trong các ô : Insert trigger, Update trigger, Delete trigger
• Hủy bỏ một trigger : mở cửa sổ Table Designer để thiết kế lại bảng, chọn trang Table, xóa điều kiện ràng buộc hoặc tên thủ tục cần kiểm tra trong các ô : Insert trigger, Update trigger, Delete trigger Có thể thực hiện thông qua lệnh DELETE TRIGGER
Các loại chỉ mục (index) được lưu trữ dưới 2 loại tập tin : IDX và CDX Chỉ mục có thể được chia làm 4 loại :
• candidate index : chỉ mục khóa, sắp xếp dữ liệu theo các khóa của bảng
• primary index : chỉ mục khóa chính, sắp xếp dữ liệu theo khóa chính của bảng
• unique index : chỉ mục duy nhất (các siêu khóa), sắp xếp các dữ liệu theo các siêu khóa hay khóa của bảng
• regular index : chỉ mục thông thường, sắp xếp dữ liệu theo một tiêu chuẩn nào đó
Hai mối quan hệ thường gặp là : 1-1 và 1-n
Tạo mối liên kết giữa hai bảng :
• Tạo mối liên giữa khóa k của bảng A và các vùng của bảng B :
- Tạo chỉ mục ik cho khóa k và chỉ mục iv cho các vùng
- Click chuột vào dòng ik trong phần Indexes của bảng A
- Gắp dòng ik và đem thả vào dòng iv trong phần Indexes của bảng B Khi đó, trong cửa sổ chính của bộ công cụ Database Designer sẽ xuất hiện đường nối thể hiện mối liên kết giữa hai bảng A và B
• Tạo mối liên giữa khóa ka của bảng A với khóa kb của bảng B :
- Tạo chỉ mục ia cho khóa ka và chỉ mục ib cho khóa kb
- Click chuột vào dòng ia trong phần Indexes của bảng A
Gắp dòng ia và đem thả vào dòng ib trong phần Indexes của bảng B Khi đó, trong cửa sổ chính của bộ công cụ Database Designer sẽ xuất hiện đường nối thể hiện mối liên kết giữa hai bảng A và B
IV LẬP TRÌNH :
1 Chương trình : là một tập hợp các lệnh sẽ được thực hiện tuần tự từ trên xuống hoặc theo các
cấu trúc điều khiển Tên của chương trình là tên của tập tin chứa nó, có phần mở rộng là PRG
Trang 10• Soạn thảo chương trình :
Cú pháp : MODIFY COMMAND <.PRG> | ? [NOEDIT]
<.PRG> | ? : chỉ định tên tập tin chương trình, dấu ? cho phép đặt tên chương trình trong cửa sổ đối thoại OPEN
NOEDIT : mở chương trình ra để xem, không cho sửa nội dung
• Dịch và kiểm lỗi chương trình :
Cú pháp : COMPILE <.PRG> | ? [NODEBUG]
<.PRG> | ? : tương tự phần soạn thảo
NODEBUG : không lưu số thứ tự của các dòng lệnh và người sử dụng không thể gỡ rối trong quá trình thực hiện chương trình
Khi phát hiện lỗi sai trong chương trình, các lỗi sai được đưa vào tập tin có tên trùng với tên chương trình và có phần mở rộng là ERR Có thể dịch chương trình bằng cách chọn Program, Complie từ thực đơn hệ thống
• Thực hiện chương trình :
Cú pháp : DO <chương trình> | ?
<chương trình> | ? : tên chương trình muốn thực hiện
Có thể chọn Program, Do từ thực đơn hệ thống
2) Biến ký ức (biến bộ nhớ) là vùng bộ nhớ dùng để lưu trữ tạm thời một dữ liệu Qui tắc đặt
tên tương tự như vùng trong bảng Trước khi sử dụng phải khai báo bằng một trong các lệnh sau :
• Lệnh gán :
Cú pháp : <biến1> = <bt1> (gán giá trị <bt1> cho <biến1>)
hay : STORE <bt2> TO <biến2> [, <biến3>, …] (dùng để gán cùng một giá trị cho nhiều biến) Khi biến ký ức trùng tên với tên một biến vùng, sử dụng M hay M-> đặt trước biến ký ức để chuyển quyền ưu tiên cho biến ký ức
• Lệnh PUBLIC : Dùng để khai báo một danh sách các biến toàn cục
Cú pháp : PUBLIC <biến1> [, <biến2>, …]
• Lệnh LOCAL : Dùng để khai báo một dánh sách các biến cục bộ hay biến cục bộ
Cú pháp : LOCAL <biến1> [, <biến2>, …]
• Khai báo mảng :
Cú pháp : DIMENSION <mảng1>(<kích thuớc1>) [, <mảng2>(kíchthước2) …]
hay : PUBLIC <mảng3>(<kích thuớc3>) [, <mảng4>(kíchthước4) …]
hay : LOCAL <mảng5>(<kích thuớc5>) [, <mảng6>(kíchthước6) …]
mảng1 : tên biến mảng 1 hay 2 chiều
kích thuớc1 : kích thước hay số phần tử của các chiều
Tạo cửa sổ soạn thảo chương trình