Bài 1: Tạo tệp CSDL
Bài 2: Nhập và sửa nội dung bản ghi
Bài 3: Quản lý cấu trúc tệp và bản ghi
Bài 4: Quản lý các tệp
Bài 5: Tìm kiếm tuần tự - Sắp xếp vật lý trên CSDL
Bài 6: Sắp xếp theo tệp chỉ số
Bài 7: Sắp xếp theo tệp chỉ số (tiếp)
Bài 8: Đặt lọc và tính toán trên CSDL
Bài 9: Làm việc với nhiều CSDL
Bài 10: Câu lệnh truy vấn có cấu trúc SQL
Phụ lục A: Các lệnh thường dùng
Phụ lục B: Các hàm xử lý CSDL thường dùng
25 trang |
Chia sẻ: franklove | Lượt xem: 2381 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Giáo trình FoxPro - Phần lý thuyết, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Bµi 1: T¹o tÖp CSDL
1. Khëi ®éng vµ tho¸t:
a. Khëi ®éng:
- Khëi ®éng: KÝch ®óp chuét vµo biÓu t•îng foxpro trªn mµn h×nh nÒn.
- Foxpro cã hai chÕ ®é lµm viÖc lµ chÕ ®é héi tho¹i vµ chÕ ®é lËp tr×nh:
+ ChÕ ®é héi tho¹i: Lµ chÕ ®é th«ng dÞch, mçi khi ta ra lÖnh trong cöa sæ lÖnh (cöa sæ
Command) th× Foxpro dÞch vµ thi hµnh lÖnh ngay lËp tøc.
+ ChÕ ®é lËp tr×nh: Lµ chÕ ®é biªn dÞch, c¸c c©u lÖnh cña Foxpro ®•îc viÕt trong mét tÖp gäi
lµ tÖp ch•¬ng tr×nh cã phÇn më réng lµ *.prg. C¸c c©u lÖnh cã mèi quan hÖ víi nhau t¹o thµnh
mét ch•¬ng tr×nh hoµn thiÖn. Khi thùc hiÖn ch•¬ng tr×nh, Foxpro sÏ lÇn l•ît dÞch vµ thi hµnh
tÊt c¶ c¸c c©u lÖnh ®ã.
b. Tho¸t:
- C1: Tõ cöa sæ Command gâ lÖnh: Quit
- C2: BÊm F10/ chän môc File/ Quit.
2. C¸c kiÓu d÷ liÖu c¬ b¶n vµ c¸c phÐp to¸n:
a. KiÓu ký tù Character (C):
- Bao gåm chuçi c¸c ký tù trong b¶ng m· chuÈn ASCII, cã ®é dµi tèi ®a lµ 254 ký tù.
- C¸c phÐp to¸n: +, -
b. KiÓu sè Numberic (N):
- Chøa c¸c sè cã ®é dµi tèi ®a 20 ký tù, bao gåm c¶ dÊu chÊm ng¨n c¸ch phÇn thËp ph©n.
- PhÐp to¸n: +, -, *, /, ^
c. KiÓu sè Float (F):
- Chøa c¸c sè ®•îc biÓu diÔn theo d¹ng to¸n häc.
- VÝ dô: Sè 1685.54 viÕt lµ 1.68554E+3 tøc lµ 1.68554*103.
- PhÐp to¸n: +, -, *, /, ^
d. KiÓu Logic (L):
- ChØ bao gåm hai gi¸ trÞ lµ TRUE (.T.) hoÆc FALSE (.F.)
- PhÐp to¸n: AND, OR, NOT
- B¶ng ch©n lý vÒ gi¸ trÞ c¸c phÐp to¸n:
A B A and B A or B not A
True True True True False
True False False True False
False True False True True
False False False False True
e. KiÓu ký øc Memo (M):
- Chøa c¸c ®o¹n v¨n b¶n lín.
f. KiÓu General (G):
- Chøa c¸c lo¹i d÷ liÖu ®Æc biÖt nh• h×nh ¶nh, ©m thanh...
3. T¹o tÖp CSDL:
a. Kh¸i niÖm vÒ CSDL trong Foxpro2.6:
- CSDL lµ mét b¶ng gåm c¸c dßng vµ c¸c cét:
+ C¸c cét t¹o thµnh cÊu tróc CSDL gäi lµ c¸c tr•êng (Field), trªn mçi tr•êng x¸c ®Þnh duy
nhÊt mét kiÓu d÷ liÖu.
+ C¸c dßng l•u tr÷ d÷ liÖu gäi lµ c¸c b¶n ghi (Record), mçi b¶n ghi l•u tr÷ mét hå s¬.
b. LÖnh t¹o tÖp CSDL:
- Có ph¸p:
CREATE []
CREATE TABLE
Tr•êng1 KiÓu(§é_réng)[, Tr•êng2 KiÓu(§é_réng)...]
- Gi¶i thÝch:
+ Hai lÖnh trªn sÏ t¹o ra tÖp CSDL cã phÇn më réng lµ *.DBF.
+ NÕu dïng có ph¸p thø nhÊt th× sau khi ra lÖnh sÏ xuÊt hiÖn mµn h×nh thiÕt kÕ cÊu tróc
CSDL bao gåm:
* Field: Tªn tr•êng. Cã ®é dµi tèi ®a 10 ký tù chØ bao gåm c¸c ch÷ c¸i tõ A ®Õn Z, c¸c ch÷
sè vµ dÊu g¹ch nèi d•íi _
* Type: KiÓu d÷ liÖu cña tr•êng, ®Ó x¸c ®Þnh kiÓu ta chØ cÇn bÊm ch÷ c¸i ®Çu tiªn cña tªn
kiÓu.
* Width: §é réng cho phÐp cña tr•êng, tÝnh c¶ dÊu chÊm ng¨n c¸ch phÇn thËp ph©n nÕu lµ
kiÓu sè.
* Dec: Sè ch÷ sè sau phÇn thËp ph©n, chØ ¸p dông ®èi víi kiÓu sè.
Khi thiÕt kÕ xong tÖp CSDL, ta bÊm Ctrl+W ®Ó ghi l¹i cÊu tróc vµ tho¸t khái mµn h×nh thiÕt
kÕ. Foxpro sÏ hái: Input data records now? – cã nhËp d÷ liÖu cho c¸c b¶n ghi b©y giê kh«ng?
NÕu chän Yes th× sÏ xuÊt hiÖn mµn h×nh nhËp d÷ liÖu liÖu cho tÖp võa t¹o. NhËp d÷ liÖu xong
ta l¹i bÊm Ctrl+W ®Ó l•u l¹i d÷ liÖu vµ trá vÒ cöa sæ Command.
TÖp sau khi t¹o xong sÏ ë tr¹ng th¸i më.
+ NÕu dïng có ph¸p th• hai th× sÏ kh«ng xuÊt hiÖn mµn h×nh thiÕt kÕ mµ Foxpro sÏ tù thiÕt
kÕt tÖp CSDL theo cÊu tróc ®· chØ ®Þnh.
4. Më - ®ãng tÖp CSDL:
- Khi muèn lµm viÖc víi bÊt kú tÖp CSDL nµo, ta ®Òu ph¶i ra lÖnh më tÖp ®ã.
- Më tÖp CSDL:
USE
- §ãng tÖp CSDL:
USE
CLOSE DATABASE
CLOSE ALL
- Chó ý: T¹i mét thêi ®iÓm Foxpro chØ lµm viÖc ®•îc víi mét tÖp CSDL, khi më mét tÖp míi
th× tÖp cò sÏ bÞ ®ãng.
5. Bæ sung c¸c b¶n ghi vµo tÖp CSDL:
- Có ph¸p:
APPEND [BLANK]
- Gi¶i thÝch:
+ LÖnh trªn sÏ bæ sung c¸c b¶n ghi vµo cuèi tÖp CSDL ®ang më.
+ NÕu trong c©u lÖnh cã thµnh phÇn BLANK th× sÏ bæ sung mét b¶n ghi tr¾ng vµo tÖp CSDL.
Khi ®ã sÏ kh«ng xuÊt hiÖn mµn h×nh nhËp d÷ liÖu.
Bµi 2: NhËp vµ söa néi dung b¶n ghi
1. Con trá b¶n ghi vµ dÞch chuyÓn con trá b¶n ghi:
+ GO : ChuyÓn tíi b¶n ghi thø n.
+ GO TOP: ChuyÓn tíi b¶n ghi ®Çu tiªn.
+ GO BOTTOM: ChuyÓn tíi b¶n ghi cuèi cïng.
+ SKIP: DÞch chuyÓn theo chiÒu tiÕn mét b¶n ghi.
+ SKIP : DÞch chuyÓn n b¶n ghi. NÕu n>0: dÞch chuyÓn theo chiÒu tiÕn, nÕu n<0: dÞch
chuyÓn theo chiÒu lïi.
2. Ph¹m vi thùc hiÖn lÖnh:
- NhiÒu lÖnh cña Foxpro dïng kÌm víi nh• c¸c lÖnh Display, List, Browse... Ph¹m
vi dïng ®Ó x¸c ®Þnh sè b¶n ghi mµ lÖnh t¸c ®éng ®Õn.
- Cã bèn d¹ng ph¹m vi:
+ ALL: Lµm viÖc víi tÊt c¶ c¸c b¶n ghi.
+ RECORD : Lµm viÖc víi b¶n ghi thø .
+ NEXT : Lµm viÖc víi n b¶n ghi kªt tõ b¶n ghi hiÖn hµnh.
+ REST : Lµm viÖc víi c¸c b¶n ghi kÓ tõ b¶n ghi hiÖn hµnh tíi b¶n ghi cuèi cïng.
3. Bæ sung b¶n ghi cho tÖp CSDL:
- Có ph¸p:
APPEND [BLANK]
APPEND FROM [FOR ]
4. ChÌn b¶n ghi vµo tÖp CSDL:
- Có ph¸p:
INSERT [BLANK] [BEFORE]
INSERT FORM [FOR ]
5. Xem cÊu tróc tÖp CSDL:
- Có ph¸p:
LIST STRUCTURE
DISPLAY STRUCTURE
6. Xem néi dung tÖp CSDL:
- Có ph¸p:
LIST [] [FIELDS ]
[FOR ] [WHILE ]
[OFF] [TO PRINTTO FILE ]
7. Xem, söa, thªm c¸c b¶n ghi:
- Có ph¸p:
BROWSE [FIELDS ] [FOR ]
[TITLE ] [WIDTH ]
[LPARTITION] [PARTITION ]
[NOLINK] [LEDIT] [REDIT] [LOCK ]
[FREEZE ]
[NOEDITNOMODIFY] [NOAPPEND] [NODELETE]
+ §Ó bæ sung mét b¶n ghi vµo cuèi tÖp CSDL ta bÊm Ctrl+N.
+ §Ó ®¸nh dÊu xo¸ b¶n ghi ta bÊm Ctrl+T.
+ FILEDS : ChØ hiÓn thÞ nh÷ng tr•êng cã trong danh s¸ch.
+ FOR : ChØ lµm viÖc víi c¸c b¶n ghi tho¶ m·n .
+TITLE : Dïng lµm tiªu ®Ò cña cöa sæ Browse thay cho tiªu ®Ò ngÇm ®Þnh
lµ tªn tÖp CSDL.
+ WIDTH : PhÇn nµy quy ®Þnh chiÒu réng tèi ®a ®Ó hiÓn thÞ mét tr•êng trªn mµn
h×nh lµ . NÕu kh«ng cã thµnh phÇn nµy th× ®é réng dµnh cho c¸c tr•êng chÝnh lµ ®é
réng cña kiÓu d÷ liÖu cña tr•êng ®ã. VÝ dô WIDTH 10 th× trong cöa sæ tr×nh duyÖt sÏ dµnh
cho c¸c tr•êng tèi ®a lµ 10 ký tù.
+ PARTITION : Theo mÆc ®Þnh cöa sæ Browse chiÕm toµn mµn h×nh (phãng to thu
nhá cöa sæ b»ng c¸ch bÊm Ctrl+F10). Tõ kho¸ trªn sÏ ph©n mµn h×nh thµnh 2 phÇn theo chiÒu
däc. PhÇn bªn tr¸i gåm cét, phÇn bªn ph¶i lµ sè cét cßn l¹i cña mµn h×nh (mµn h×nh
cã 80 cét vµ 24 dßng).
B×nh th•êng con trá sÏ n»m ë phÇn bªn ph¶i. Di chuyÓn con trá (vÖt s¸ng) gi÷a hai phÇn
b»ng c¸ch bÊm Ctrl+H.
Theo ngÇm ®Þnh, khi vÖt s¸ng ë mét phÇn di chuyÓn th× vÖt s¸ng ë phÇn kia còng di chuyÓn
theo. Ta cã thÓ bá chÕ ®é liªn kÕt nµy b»ng tõ kho¸ NOLINK (hoÆc bÊm Ctrl+B råi chän
Unlink Partition).
+ LPARTITION: Tõ kho¸ nµy quy ®Þnh con trá mµn h×nh ë khu vùc tr¸i ngay sau khi khëi
®éng lÖnh Browse víi tõ kho¸ PARTITION.
+ LEDIT vµ REDIT: Khi dïng PARTITION, trong c¶ hai phÇn cña cöa sæ BROWSE ®Òu
hiÖn theo d¹ng Browse (d¹ng hµng ngang), ta cã thÓ cho hiÖn theo d¹ng Change (d¹ng hµng
däc). NÕu muèn phÇn bªn tr¸i hiÖn d¹ng Change th× dïng tõ kho¸ LEDIT, nÕu muèn phÇn bªn
ph¶i hiÖn d¹ng Change th× dïng tõ kho¸ REDIT (hoÆc bÊm Ctrl+B råi chän Change).
+ LOCK : Tõ kho¸ nµy dïng ®Ó cè ®Þnh tr•êng liªn tôc bªn tr¸i, chóng sÏ
kh«ng bÞ tr«i khi cuén mµn h×nh theo chiÒu ngang. NÕu muèn cè ®Þnh c¸c tr•êng kh«ng liªn
tôc th× ph¶i ®i kÌm víi FIELDS .
+ FREEZE : ChØ cho phÐp söa ®æi vµ di chuyÓn trong mét tr•êng ®· chØ ®Þnh.
+ NOEDIT hay NOMODIFY: Kh«ng cho phÐp chØnh söa d÷ liÖu.
+ NOAPPEND: Kh«ng cho phÐp bæ sung b¶n ghi vµo CSDL (b»ng c¸ch bÊm Ctrl+N).
+ NODELETE: Kh«ng cho phÐp ®¸nh dÊu xo¸ c¸c b¶n ghi (b»ng c¸ch bÊm Ctrl+T)
Bµi 3: Qu¶n lý cÊu tróc tÖp vµ b¶n ghi
1. Söa cÊu tróc tÖp CSDL:
- Có ph¸p:
Modify Structure
+ LÖnh trªn dïng ®Ó söa cÊu tróc tÖp CSDL ®ang ®•îc më.
+ Khi dïng lÖnh nµy, cöa sæ thiÕt kÕt cÊu tróc CSDL ®•îc më, ta cã thÓ thªm tr•êng, thay
®æi tªn, thay ®æi kiÓu d÷ liÖu cña c¸c tr•êng.
+ NÕu tÖp CSDL cã c¸c tr•êng Memo th× tÖp cò l•u tr•êng Memo lµ *.FPT sÏ ®æi thµnh
*.TBK.
+ Khi söa xong bÊm Ctrl+W ®Ó ghi l¹i (m¸y sÏ hái “Make structure changes permanent” ta
chän YES) hoÆc bÊm ESC ®Ó huû bá viÖc söa ®æi.
- Chó ý:
+ NÕu kiÓu d÷ liÖu cña mét tr•êng sau khi ta thay ®æi mµ phï hîp víi d÷ liÖu cña tÖp cò th×
d÷ liÖu cña tÖp cò chuyÓn sang tÖp míi. NÕu kh«ng phï hîp sÏ bÞ xo¸ bá (VÝ dô: KiÓu
Number söa thµnh kiÒu Character lµ phï hîp nh•ng kiÓu Character ®æi thµnh kiÓu Number sÏ
kh«ng phï hîp).
+ NÕu ta thay ®æi tªn tr•êng vµ kiÓu tr•êng hoÆc tªn tr•êng vµ ®é réng cña tr•êng th×
Foxpro coi ®©y lµ mét tr•êng míi vµ sÏ huû bá hÕt d÷ liÖu cña tr•êng nµy. Trong tr•êng hîp
nµy ta ph¶i tiÕn hµnh hai lÇn söa cÊu tróc: lÇn thø nhÊt söa mäi thay ®æi cña tr•êng nh•ng
kh«ng söa tªn tr•êng råi ghi l¹i, lÇn thø hai chØ söa tªn tr•êng.
+ V× viÖc söa ®æi cÊu tróc tÖp dÔ gÆp rñi ro nªn tr•íc khi söa ®æi ta nªn sao l¹i mét b¶n ®Ó
l•u tr÷, nÕu cã g× trôc trÆc ta vÉn cßn b¶n cò.
2. Sao chÐp cÊu tróc tÖp CSDL:
- Có ph¸p:
COPY STRUCTURE TO [FIELDS ]
+ LÖnh nµy sao chÐp cÊu tróc tÖp CSDL ®ang më sang mét tÖp míi lµ
+ TÖp míi t¹o thµnh chØ cã cÊu tróc, ch•a cã néi dung b¶n ghi.
+ NÕu cã thµnh phÇn FIELDS th× chØ nh÷ng tr•êng n»m trong danh s¸ch míi
®•îc sao chÐp, tøc lµ tÖp míi t¹o thµnh chØ bao gåm c¸c tr•êng cã trong danh s¸ch.
3. Sao l•u cÊu tróc:
- Có ph¸p:
COPY STRUCTURE EXTENDED TO
[FIELDS ]
+ LÖnh nµy sÏ sao chÐp cÊu tróc cña tÖp CSDL ®ang më thµnh c¸c b¶n ghi cña
. TÖp CSDL míi t¹o thµnh nµy cã bèn tr•êng cè ®Þnh:
* FIELD_NAME C(10): Ghi tªn c¸c tr•êng cña tÖp CSDL cÇn l•u.
* FIELD_TYPE C(1): Ghi kiÓu cña tr•êng.
* FIELD_LEN N(3,0): Ghi ®é réng cña tr•êng.
* FILED_DEC N(3,0): Ghi sè ch÷ sè sau phÇn thËp ph©n cña tr•êng sè.
+ NÕu cã thµnh phÇn FIELDS th× chØ nh÷ng tr•êng n»m trong danh s¸ch cña
tÖp CSDL ®ang më míi ®•îc sao.
- Chó ý: Sau khi l•u cÊu tróc cña tÖp ®ang më sang , ta cã thÓ t¹o mét tÖp
CSDL míi cã cÊu tróc t•¬ng øng víi c¸c b¶n ghi cña b»ng lÖnh:
CREATE FROM
4. Sao chÐp cÊu tróc vµ b¶n ghi:
- Có ph¸p:
COPY TO
[FIELDS ] []
[FOR ] [WHILE ]
+ LÖnh trªn sÏ sao chÐp cÊu tróc cïng b¶n ghi cña tÖp CSDL ®ang më sang tÖp CSDL míi lµ
.
+ NÕu cã thµnh phÇn FIELDS th× chØ nh÷ng tr•êng n»m trong danh s¸ch míi
®•îc sao chÐp.
+ NÕu cã th× chØ nh÷ng b¶n ghi n»m trong míi ®•îc sao chÐp.
+ NÕu cã FOR th× chØ nh÷ng b¶n ghi tho¶ m·n míi ®•îc sao chÐp.
+ NÕu cã WHILE th× c«ng viÖc sao chÐp chØ diÔn ra chõng nµo cßn ®óng.
Khi nhËn gi¸ trÞ sai th× viÖc sao chÐp sÏ dõng.
5. Xo¸ b¶n ghi:
a. §¸nh dÊu xo¸ b¶n ghi:
- §Ó xo¸ b¶n ghi khái tÖp CSDL tr•íc hÕt ta ph¶i ®¸nh dÊu xo¸ b¶n ghi ®ã.
- Có ph¸p:
DELETE [] [FOR ] [WHILE ]
+ LÖnh trªn sÏ ®¸nh dÊu xo¸ c¸c b¶n ghi. NÕu kh«ng cã c¸c thµnh phÇn tïy chän th× sÏ ®¸nh
dÊu xo¸ tÊt c¶ c¸c b¶n ghi.
+ NÕu cã th× chØ ®¸nh dÊu xo¸ nh÷ng b¶n ghi n»m trong .
+ NÕu cã FOR th× chØ ®¸nh dÊu xo¸ nh÷ng b¶n ghi tho¶ m·n .
+ NÕu cã WHILE th× sÏ ®¸nh dÊu xo¸ nh÷ng b¶n ghi ®Õn khi nhËn gi¸ trÞ
sai.
b. Kh«i phôc ®¸nh dÊu xo¸:
- Có ph¸p:
RECALL [] [FOR ] [WHILE ]
+ LÖnh trªn sÏ kh«i phôc l¹i c¸c b¶n ghi ®· bÞ ®¸nh dÊu xo¸.
+ NÕu cã FOR th× chØ kh«i phôc c¸c b¶n ghi tho¶ m·n .
+ NÕu cã WHILE th× viÖc kh«i phôc chØ x¶y ra chõng nµo cßn ®óng.
c. Xo¸ b¶n ghi khái tÖp CSDL:
- Có ph¸p: PACK
+ LÖnh trªn sÏ xo¸ tÊt c¶ c¸c b¶n ghi ®· bÞ ®¸nh dÊu xo¸.
d. Xo¸ tÊt c¶ c¸c b¶n ghi khái tÖp CSDL:
- Có ph¸p: ZAP
+ LÖnh trªn sÏ xo¸ tÊt c¶ c¸c b¶n ghi cña tÖp CSDL hiÖn hµnh mµ kh«ng cÇn ®¸nh dÊu xo¸,
t•¬ng ®•¬ng víi c¸c c©u lÖnh:
Delete All
Pack
e. C¸c lÖnh vµ c¸c hµm liªn quan:
- LÖnh SET DELETE ON/OFF: §Æt chÕ ®é xö lý c¸c b¶n ghi bÞ ®¸nh dÊu xo¸. Ta cã thÓ t¹m
thêi che c¸c b¶n ghi bÞ ®¸nh dÊu xo¸ b»ng lÖnh SET DELETE ON, khi ®ã c¸c b¶n ghi ®· bÞ
®¸nh dÊu xo¸ sÏ t¹m thêi bÞ che ®i coi nh• kh«ng tån t¹i. NÕu ta dïng c¸c lÖnh DISPLAY,
LIST th× c¸c b¶n ghi ®ã sÏ kh«ng ®•îc hiÖn lªn.
- Hµm Delete(): Tr¶ vÒ kÕt qu¶ gi¸ trÞ Logic, cho biÕn b¶n ghi hiÖn hµnh cã bÞ ®¸nh dÊu xo¸
(TRUE) hay kh«ng (FALSE).
Bµi 4: Qu¶n lý c¸c tÖp
1. LÖnh DIR:
- Có ph¸p:
DIR
+ LÖnh trªn dïng ®Ó liÖt kª c¸c tÖp CSDL trong th• môc hiÖn hµnh.
+ Trong cã thÓ dïng c¸c ký tù ®¹i diÖn:
* DÊu * ®¹i diÖn cho mét nhãm ký tù.
* DÊu ? ®¹i diÖn cho mét ký tù.
+ NÕu chØ dïng lÖnh DIR th× Foxpro liÖt kª tÊt c¶ c¸c tÖp CSDL trong th• môc hiÖn hµnh.
2. LÖnh DISPLAY FILES:
- Có ph¸p:
DISPLAY FILES [ON ]
[LIKE ] [TO PRINTER]
+ LÖnh trªn cho hiÓn thÞ c¸c tÖp.
+ NÕu cã ON th× sÏ hiÓn thÞ c¸c tÖp ë th• môc chØ ra trong .
+ NÕu cã LIKE th× sÏ hiÓn thÞ c¸c tÖp theo nhãm chØ ®Þnh.
+ Muèn in kÕt qu¶ ra m¸y in, ta thªm thµnh phÇn TO PRINTER.
3. LÖnh DELETE:
- Có ph¸p:
DELETE FILE
ERASE
+ Hai lÖnh trªn cã t¸c dông xo¸ khái ®Üa.
+ Cã thÓ dïng c¸c ký tù ®¹i diÖn nh• dÊu * ?
4. LÖnh COPY FILE:
- Có ph¸p:
COPY FILE TO
+ LÖnh trªn sÏ sao chÐp thµnh mét tÖp n÷a cã tªn lµ .
+ ph¶i ë tr¹ng th¸i ®ãng.
5. LÖnh RENAME:
- Có ph¸p:
RENAME TO
+ LÖnh trªn sÏ ®æi tªn cña tÖp cã tªn lµ thµnh .
+ TÖp cÇn ®æi tªn ph¶i ë tr¹ng th¸i ®ãng.
6. LÖnh TYPE:
- Có ph¸p:
TYPE [TO PRINTERTO FILE ]
+ LÖnh trªn dïng ®Ó xem néi dung cña tÖp v¨n b¶n nh• c¸c tÖp *.txt, *.prg, *.pas
+ NÕu cã TO PRINTER th× néi dung tÖp sÏ ®•îc ®•a ra m¸y in.
+ NÕu cã TO FILE th× néi dung cña sÏ ®•îc sao chÐp sang tÖp míi lµ
.
7. LÖnh RUN:
- Có ph¸p:
RUN
!
+ Hai lÖnh trªn dïng ®Ó thùc hiÖn mét lÖnh bÊt kú cña MS-DOS.
8. LÖnh SET DEFAULT TO:
- Có ph¸p:
SET DEFAULT TO
+ LÖnh trªn ®Æt th• môc lµm viÖc míi ®•îc chØ ra trong
9. C¸c hµm lµm viÖc víi CSDL:
BOF(): Cho gi¸ trÞ .T. nÕu ta ra lÖnh chuyÓn con trá b¶n ghi lªn trªn b¶n ghi ®Çu tiªn.
EOF(): Cho gi¸ trÞ .T. nÕu con trá b¶n ghi ®· ®Æt ë cuèi tÖp (b¶n ghi cuèi cïng cña tÖp ch•
ph¶i lµ cuèi tÖp, b¶n ghi ë cuèi tÖp dïng ®Ó l•u th«ng tin vÓ tæng sè b¶n ghi cña tÖp).
RECNO(): Cho sè thø tù cña b¶n ghi hiÖn hµnh. NÕu con trá ®· ë cuèi tÖp th× hµm sÏ cho
tæng sè b¶n ghi céng 1.
RECCOUNT(): Cho tæng sè b¶n ghi cña tÖp CSDL.
FCOUNT(): Cho sè tr•êng cña tÖp CSDL ®ang më.
FIELD(n): Cho biÕt tªn cña tr•êng thø n (d•íi d¹ng ch÷ hoa) trong tÖp CSDL ®ang më.
FSIZE(‘Tªn_tr•êng’): Cho ®é réng cña ‘Tªn_tr•êng’ trong tÖp CSDL.
DBF(): Cho biÕt tªn cïng c¶ ®•êng dÉn cña tÖp CSDL ®ang më.
FILE(‘§•êng_dÉn\Tªn_tÖp’): Cho gi¸ trÞ .T. nÕu ‘Tªn_tÖp’ ®•îc chØ ra ®· cã trªn ®Üa.
Bµi 5: T×m kiÕm tuÇn tù - S¾p xÕp vËt lý trªn CSDL
1. T×m kiÕm tuÇn tù:
- Có ph¸p:
LOCATE FOR []
+ LÖnh trªn sÏ t×m kiÕm c¸c b¶n ghi trªn toµn tÖp tho¶ m·n b¾t ®Çu tõ b¶n ghi ®Çu
tiªn.
+ NÕu t×m thÊy, hµm Found() cho gi¸ trÞ .T. hµm Recno() cho biÕt sè hiÖu b¶n ghi cña b¶n
ghi võa t×m ®•îc, Foxpro sÏ ®Þnh vÞ con trá vµo b¶n ghi t×m ®•îc.
+ NÕu kh«ng t×m thÊy, hµm Found() chi gi¸ trÞ .F. hµm Eof() cho gi¸ trÞ .T. tøc lµ con trá b¶n
ghi ®· ë cuèi tÖp.
+ Trong tr•êng hîp t×m thÊy, ®Ó t×m tiÕp ta thùc hiÖn lÖnh:
CONTINUE
Cho tíi khi mµn h×nh th«ng b¸o “End of Locate Scope”, lóc nµy hµm Eof() cã gi¸ trÞ .T. hµm
Found() cã gi¸ trÞ .F.
2. S¾p xÕp vËt lý trªn CSDL:
- Tr•íc khi s¾p xÕp d÷ liÖu, ph¶i x¸c ®Þnh s¾p xÕp theo tr•êng nµo, theo thø tù t¨ng dÇn hay
gi¶m dÇn, tr•êng nµo •u tiªn s¾p xÕp tr•íc, cã ph©n biÖt ch÷ hoa hay ch÷ th•êng kh«ng.
- C¸c chØ tiªu ph©n lo¹i trong khi s¾p xÕp:
/A (viÕt t¾t cña Ascending): s¾p xÕp theo thø tù t¨ng dÇn.
/D (viÕt t¾t cña Descending): s¾p xÕp theo thø tù gi¶m dÇn.
/C: kh«ng ph©n biÖt ch÷ hoa hay ch÷ th•êng.
Theo ngÇm ®Þnh, Foxpro s¾p xÕp theo chiÒu t¨ng dÇn vµ cã ph©n biÖt ch÷ hoa hay ch÷
th•êng.
- Có ph¸p:
SORT TO ON [/A/D][/C]
[, [/A/D][/C]...]
[] [FOR ][WHILE ]
[FIELDS ]
- Gi¶i thÝch:
+ LÖnh SORT s¾p xÕp c¸c b¶n ghi cña tÖp ®ang më theo c¸c tr•êng ®•îc chØ ®Þnh sau ON vµ
ghi ra tÖp , c¸c tr•êng ë ®Çu •u tiªn xÕp tr•íc.
+ NÕu cã th× chØ nh÷ng b¶n ghi n»m trong míi ®•îc s¾p xÕp sang
. NÕu kh«ng cã th× s¾p xÕp tÊt c¶ c¸c b¶n ghi.
+ NÕu cã FIELDS th× chØ nh÷ng tr•êng n»m trong danh s¸ch míi ®•îc s¾p xÕp
sang .
+ Thµnh phÇn FOR dïng ®Ó giíi h¹n c¸c b¶n ghi, chØ nh÷ng b¶n ghi tho¶ m·n
míi ®•îc s¾p xÕp sang .
+ NÕu cã thµnh phÇn WHILE th× c«ng viÖc s¾p xÕp ®•îc tiÕn hµnh chõng nµo
cßn ®óng.
3. LÖnh thay thÕ tr•êng:
- Có ph¸p:
REPLACE WIDTH [, WIDTH ...]
[] [FOR ] [WHILE ]
- Gi¶i thÝch:
+ LÖnh trªn thay thÕ bëi , bëi ... cña c¸c b¶n ghi thuéc
. NÕu kh«ng cã <Ph¹m vi th× chØ thay thÕ trªn b¶n ghi hiÖn t¹i.
+ NÕu cã FOR th× chØ thay thÕ c¸c b¶n ghi trong vµ tho¶ m·n .
+ NÕu cã WHILE th× c«ng viÖc thay thÕ c¸c b¶n ghi trªn tr•êng ®•îc chØ ®Þnh diÔn
ra chõng nµo cßn ®óng.
Bµi 6: S¾p xÕp theo tÖp chØ sè
1. Kh¸i niÖm:
- Khi nhËp d÷ liÖu b»ng c¸c lÖnh Append, Browse, c¸c b¶n ghi míi ®•îc nèi vµo cuèi tÖp vµ
®•îc s¾p xÕp cè ®Þnh theo mét thø tù vËt lý, ®•îc ®Æc tr•ng bëi sè hiÖu b¶n ghi. C¸c b¶n ghi
khi ®· l•u vµo tÖp th× kh«ng thÓ lµm ®¶o lén chóng, v× thÕ muèn s¾p xÕp chóng ta ph¶i sao
chÐp chóng sang mét tÖp kh¸c theo mét trËt tù míi b»ng lÖnh SORT.
- Khi s¾p xÕp vËt lý b»ng lÖnh SORT cã nhiÒu nh•îc ®iÓm nh•: Qu¸ tr×nh s¾p xÕp diÔn ra rÊt
l©u nÕu sè l•îng b¶n ghi lín, khi bæ sung thªm b¶n ghi míi th× trËt tù s¾p xÕp cã thÓ kh«ng
cßn ®óng n÷a v× b¶n ghi míi bæ sung lu«n n»m cuèi tÖp.
- Foxpro cho phÐp s¾p xÕp theo Logic b»ng c¸ch t¹o mét tÖp trung gian cã kÝch th•íc rÊt nhá
gäi lµ tÖp chØ sè. øng víi mçi tÖp CSDl ta cã thÓ t¹o nhiÒu tÖp chØ sè t•¬ng øng víi nhiÒu •u
tiªn s¾p xÕp kh¸c nhau. ViÖc chuyÓn tõ thø tù •u tiªn nµy sang thø tù •u tiªn kh¸c rÊt thuËn
tiÖn.
- TÖp chØ sè ®•îc t¹o ra chØ gåm c¸c tr•êng •u tiªn s¾p xÕp vµ mét tr•êng chøa sè hiÖu b¶n
ghi nªn tÖp cã dung l•îng rÊt nhá, tÖp chØ sè cã quan hÖ t•¬ng øng víi tÖp CSDL nhê sè hiÖu
b¶n ghi.
- Víi tÖp chØ sè ta cã thÓ t×m kiÕm dÔ dµng vµ nhanh h¬n t×m kiÕm tuÇn tù trªn tÖp CSDL. Khi
thù hiÖn mét lÖnh t×m kiÕm, tr•íc hÕt Foxpro sÏ dß t×m trªn tÖp chØ sè, nÕu t×m thÊy b¶n ghi
tho¶ m·n ®iÒu kiÖn t×m kiÕm th× sÏ chiÕu sang tÖp CSDl ®Ó lÊy d÷ liÖu ®Çy ®ñ cña b¶n ghi ®ã
th«ng qua sè hiÖu b¶n ghi.
VÝ dô: gi¶ sö tÖp hsns.dbf gåm c¸c b¶n ghi:
Record # HODEM TEN KHOA
1 Nguyen Van Thanh Kinh te
2 Le Thi Linh Ke toan
3 Le Van Xuan Marketing
4 Tran Van Hanh Du lich
NÕu s¾p xÕp theo thø tù ABC cña tr•êng TEN th× tÖp chØ sè sÏ gåm hai cét:
Gi¸ trÞ khãa Recno
Hanh 4
Linh 2
Thanh 1
Xuan 3
B©y giê cÇn t×m kiÕm mét ng•êi tªn lµ “Linh”, m¸y sÏ dß t×m ë cét thø nhÊt cña tÖp chØ sè
®Õn ng•êi tªn lµ “Linh”, viÖc dß t×m trªn tÖp ®· ®•îc s¾p xÕp sÏ nhanh h¬n nhiÒu so víi tÖp
ch•a ®•îc s¾p xÕp. Sau ®ã dãng hµng ngang sang cét thø hai ®•îc sè hiÖu b¶n ghi lµ 3 cã
nghÜa th«ng tin vÒ ng•êi cÇn t×m n»m trong b¶n ghi sè 3 trong tÖp CSDL gèc. Nh• vËy Foxpro
sÏ chiÕu sang b¶n ghi thø 3 cña tÖp CSDL gèc ®Ó lÊy th«ng tin.
- Theo c¸ch thøc ho¹t ®éng cña tÖp chØ sè cã thÓ chia tÖp chØ sè thµnh ba lo¹i: TÖp chØ sè
chuÈn IDX (Index file), tÖp chØ sè kÕt hîp CDX ®éc lËp (Independent Conmpound Index file)
vµ tÖp chØ sè kÕt hîp CDX kh«ng ®éc lËp (Structural Compound Index file).
2. TÖp chØ sè chuÈn:
a. T¹o tÖp chØ sè chuÈn:
- Có ph¸p:
INDEX ON TO
[FOR ] [COMPACT] [UNIQUE] [ADDITIVE]
- Gi¶i thÝch:
+ cã thÓ lµ tªn tr•êng, biÓu thøc mµ cã biÕn tr•êng tham gia. ViÖc s¾p xÕp
lu«n theo thø tù t¨ng dÇn, kh«ng cho phÐp s¾p xÕp theo thø tù gi¶m dÇn.
+ TO sÏ chØ thÞ viÖc t¹o tÖp chØ sè cã tªn lµ . T¹o xong, tÖp chØ sè
®•îc më vµ con trá b¶n ghi n»m ë b¶n ghi cã chØ sè kho¸ thÊp nhÊt.
+ NÕu FOR th× chØ nh÷ng b¶n ghi tho¶ m·n míi ®•îc s¾p xÕp.
+ Tõ kho¸ COMPACT sÏ gióp cho viÖc t¹o chØ sè nhanh h¬n.
+ NÕu cã UNIQUE th× Foxpro chØ lÊy mét b¶n ghi ®Çu tiªn trong nh÷ng b¶n ghi trïng kho¸
s¾p xÕp ®Ó ®•a ra tÖp chØ sè.
+ NÕu cã thªm tõ kho¸ ADDITIVE th× tÖp chØ sè míi t¹o sÏ lµ tÖp chØ sè chñ vµ kh«ng ®ãng
c¸c tÖp chØ sè ®ang më (TÖp CSDL sÏ s¾p xÕp theo cña tÖp chØ sè chñ).
b. Më tÖp chØ sè chuÈn:
- Trong bé nhí m¸y tÝnh cã thÓ cã nhiÒu tÖp chØ sè IDX cïng hoÆt ®éng g¾n liÒn víi CSDL
(tøc lµ cã nhiÒu c¸ch s¾p xÕp cïng ho¹t ®éng). Nh•ng trong sè ®ã chØ cã mét tÖp chØ sè chñ
(Master Index File), khi hiÓn thÞ c¸c b¶n ghi ta thÊy c¸c b¶n ghi ®•îc s¾p xÕp theo tÖp chØ sè
chñ.
- Cã hai c¸ch më tÖp chØ sè lµ: më CSDL råi më tÖp chØ sè hoÆc më c¸c tÖp chØ sè ®ång thêi
víi CSDL.
- C¸ch 1:
SET INDEX TO
[ORDER ]
[ASCENDINGDESCENDING] [ADDITIVE]
- Gi¶i thÝch:
+ : C¸c tÖp chØ sè trong danh s¸ch sÏ ®•îc më, tÖp chØ sè ®Çu tiªn
(theo ngÇm ®Þnh) sÏ lµ tÖp chØ sè chñ.
+ NÕu cã [ORDER ] th× tÖp chØ sè cã thø tù lµ trong
sÏ lµ tÖp chØ sè chñ. NÕu dïng order 0 th× c¸c tÖp chØ sè ®•îc më
nh•ng kh«ng cã tÖp chØ sè chñ. Cã thÓ ®Æt tÖp c