1 Тақырып. Деректер қорына кіріспе. №1-дәріс. Тақырыбы


Создание отношений между таблицами



бет85/129
Дата16.03.2022
өлшемі21,39 Mb.
#28241
1   ...   81   82   83   84   85   86   87   88   ...   129
    Бұл бет үшін навигация:
  • Primary
Создание отношений между таблицами

Как правило, в Visual FoxPro при создании форм, отчетов и запросов используется несколько таблиц, между. которыми установлены постоянные отношения. Такие таблицы называются связанными. Из двух связанных таблиц одна является главной, а другая — подчиненной.

Главную таблицу называют родительской, а подчиненную — дочерней. При создании индексов для родительской таблицы должен быть определен ключ типа Primary (Первичный) или типа Candidate (Кандидат), а для дочерней таблицы— индекс для связи с родительской таблицей типа Regular (Обычный).

Рассмотрим, например, отношения между таблицей customer, содержащей список клиентов, и таблицей Phoncust, в которой размещены данные о телефонах, по которым можно связываться с клиентами. Таблица customer является родительской по отношению к таблице phoncust.



В свою очередь, таблица phonCust является дочерней по отношению к таблице customer. При создании отношений между этими таблицами для Customer должен быть определен первичный ключ, а для таблицы Phoncust — создан индекс по полю, содержащему код клиента, по которому осуществляется связь между таблицами.

Рис. 4.20. Отображение связи между таблицами


Кестеде қолданылатын басқа-да командалар мен функциялар

GO TOP, GO n, Skip, Recho, BOf(), Eof()командалар мен функциялар жұмыс істеуді үйрету

Кез келген кесте ашылған соң сілтеме алғашқы жазбаға орналасады. Енді жазбалармен жұмыс істеу үшін келесі командаларды қолданамыз:

-GO TOP-сілтенің алғашқы жазбасына сілтемені орналастыру

-GO BOTTON-соңғы жазбасына сілтемені орналастыру

-GO -ағымдағы жазбадан N жазба қалдырып өту. Мұндағы N-нің мәні оң да, теріс те болуы мүмкін.

-GO - GO 2-астыға жылжытады.

Сонымен қатар Visual Fox PRO-да біршама функциялар бар. Олардың қатарына келесі функциялар жатады:

-SKIP -ағымдағы жазбадан N жазба қалдырып өту

-RECNO()-ағымдағы жазбаның нөмірін анықтайды

-RECCOUNT()-ашық кестенің жазба санын анықтайды

-BOF()-кестедегі сілтеменің орнын анықтайды

-EOF()-сілтеме кестенің соңғы жазбасына орналасады, егер бұл функцияның мәні TRU болса.

Мысалы:

1) IF ! EOF()

SKIP 1

ENDIF


Бұл шарт файлдың соңы ма деген сөз, егер жоқ болса алға тағы бір жазбаға жылжыту.

2) USE Stud

? RECCOUNT() & &

GO 7


SKIP -5

DELETE Next 2

DELETE RECORD 2

RECALL RECORD 2

PACK

5 жазба санын анықтау; 7 жазбаға көшу; 2 жазбаға көшу; келесі 2 жазбаны жою; 2 көптүрлі жазбаны жою; қайта қалпына келтіру; ен салынған барлық жазбаларды жою.



Енді кестеге жазбалар кез келген түрде енгізіле береді. Бірге арнайы топ жазбалармен жұмыс істеу керек. Ол үшін келесі команда қолданылады:

SET FILTER TO <врж1>

Мысалы: USE stud

SET FILTER TO SUM=1000

Бұл команданы жабу үшін команданы операндтарсыз беру керек

SET FILTER TO gen.

Таңбалық өрістермен жұмыс істегенде $ операторы қолданылады

<искомая подстрока> & <врж>

Мысалы: SET FILTER TO(‘Мустара’& NAME) NAME өрісінде “Мустара” сөзі барбарлық жазбаларды шығару.

Реттелмеген кестеден іздеген жазбаны табу үшін келесі команданы қолданамыз:

LOCATE[FOR<врж1>] [границы] [While<врж1>]

Бұл командамен қатар келесі командалар қолданылады:

SET FILTER TO-іріктеп алуға арналған команда



  1. Locate[for<врж.1>] [границы] [WHILE<врж.2>]

  2. Continue-реттелмеген кестеден керек жазбаны іздеу командасы locate командасы. Бұл командадан қатар continue командасын қолданады. Оның мағынасы келесі жазбаға өту командасы.

  3. Cleare-экранды тазалау командасы

Реттелмеген кестеден мәлімет іздеу өте ыңғайсыз, уақытты да үнемдей алмаймыз. Сол үшін ол файлдарды реттеу керек. Индекстеу ашық файлды келесі командамен жүзеге асырылады:

INDEX ON <врж> TO <имя индексного файла>

[FOR <врж>] [DESCENDING] [NIQUE] [ADDITIVE] [CONPAST]

Мысалы: 1) Use Stud

INDEX ON GROUP+NAME TO gN FOR

? RECNO SUM<1000

яғни Stud БҚ-студенттерді алдымен группа бойынша, сонан соң фамилиясы бойынша SUM<1000 кіші жазбаларды сорттап GN файылына жазу.

Егер group өрісі сандық болса, онда оны STR() функциясы арқылы таңбалық өткіземіз, ол үшін команда келесі түрде жазылады:

Use stud

Index on (Str(group)+Name) To gN For Sum<1000

Recno() -бұл индекстелген файлдың алғашқы жазбасына сілтемені орналастыру

Индексті файлдың кеңейтілуі .idx Сонымен қатар индексті файлды конструктор Table Designer арқылы да құруға болады.View ___Table Designer мәзірлерін ашу арқылы. Кестені бір өріс бойынша индекстеу үшін Fields қосымшасын ашамыз да өріс таңдаймыз. Содан Index қосымшасын ашамыз да өсу немесе кему ретін таңдаймыз да ОК түймесін басамыз.



Кестені индексті файлдармен ашу

Егер индексті файл құрылып қойылған болса, онда оны кестемен қосып ашуға болады. Ашу үшін келесі командалар тізбегін орналастыру керек:

USE<имя таблицы> IN <номер области>

USE<имя таблицы> INDEX<имя индексного файла>

Stud dbf.

INDEX ON GROUP TO ‘IP-06-2K’ S1

USE<имя таблицы> INDEX<имя индексного файла>
Бұрынғы VFP версиясында он ғана жұмыс облысы болатын. Соңғы версияларында 32767 жол облысы бар A-дан Z-ге дейінгі әріптермен де белгілеуге болады.


  1. USE ONE

USE TWO

  1. USE ONE IN a

USE ONE IN в

Активті жұмыс облысы келесі командалармен анықталады:

Select командасымен жасауға болады

select<номер раб. области> немесе <номер файла>


Мысалы1:USE ONE IN a

USE two IN в

Select two немесе в

Select a


USE ONE

Select b


USE two

Select a


Егер бірнеше кестені әр түрлі жұмыс облыстарын ашу керек болса Select 0 орындалады. Ол 1-ші бос жұмыс облысын автоматты түрде таңдайды. Индексті файлдарды idx. кеңейтілуімен ашу үшін келесі командалар орындалады:

SET INDEX TO- <список индексных файлов>


Мысалы2:

USE stud


SET INDEX TO CROUP

SET INDEX TO NAME

SET ORDER TO<имя.idx.файла>[номер] өзгерту керек болса SET ORDER командасы қолданылады.
Мысалы3:

SET STUD INDEX group, name set order to2 группа бойынша емес, бірден аты бойынша индексті реттеу.

FIND<искомое строка>

FIND-іздеу командасы. Бірінші жазылған сілтемені орнатады.

SET EXAT ON-жазбаны бүкіл кестеден қайтадан іздеу қызметін атқарады.

Seek<врж.>- іздеу.

Мысалы4:USE STUD INDEX NAME seek‘АВD’



Достарыңызбен бөлісу:
1   ...   81   82   83   84   85   86   87   88   ...   129




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет