Цель лабораторной работы — изучение алгоритмов установления связи между файлами и поиска записей по различным критериям в FoxPro.
Листинг
!md ST1_1
SET ALTER TO stl_l\log21_l
SET ALTER ON
USE stl_l\prsnl_l
LIST
Просмотр файла PRSN1_1
Record#
|
ID
|
NAME
|
YEAR
|
SEX
|
PHONE
|
ADRESS
|
TOWN
|
1
|
2
|
Анастасия
|
1985
|
ж
|
1939495
|
ул.
|
Аргуновская,
|
5 Москва
|
2
|
1
|
Кирилл
|
1983
|
м
|
1383736
|
ул.
|
Озерная, 8
|
Санкт-Петербург
|
3
|
4
|
Анна
|
1984
|
ж
|
3748374
|
ул.
|
Бородинская,
|
3 Москва
|
4
|
3
|
Ирина
|
1985
|
ж
|
7947548
|
ул.
|
Летняя, 4
|
Химки
|
Record# ID NAME YEAR SEX PHONE ADRESS TOWN
2 Анастасия 1985 ж 19394 95 ул. Аргуновская, 5 Москва
1 Кирилл 1983 м 1383736 ул. Озерная, 8 Санкт-Петербург
4 Анна 1984 ж 374 8374 ул. Бородинская, 3 Москва
3 Ирина 1985 ж 7947548 ул. Летняя, 4 Химки
CREATE stl_l\autol_l
Вывод структуры файла AUTO1_1
DISPLAY STRUCTURE
Structure for table: D:\VFP\STl_l\AUTOl_l.DBF
Number of data records: 4
Date of last update: 05/01/04
Field
|
Field Name
|
Type
|
Width
|
1
|
ID
|
Numeric
|
2
|
2
|
MODEL
|
Character
|
15
|
3
|
YEARED
|
Numeric
|
4
|
4
|
COLOR
|
Character
|
10
|
5
|
BODY
|
Character
|
10
|
б
|
REGNUM
|
Character
|
9
|
Field Field Name Type Width
ID Numeric 2
MODEL Character 15
YEARED Numeric 4
COLOR Character 10
BODY Character 10
REGNUM Character 9
** Total ** 51
Вывод содержимого файла AUTO1_1
LIST
Record*
|
ID
|
MODEL
|
YEARED
|
COLOR
|
BODY
|
REGNUM
|
1
|
2
|
Москвич
|
2001
|
синий
|
седан
|
ау320111в
|
2
|
1
|
Жигули
|
2000
|
зеленый
|
хетчбэк
|
бс567023е
|
3
|
3
|
Лада
|
2003
|
белый
|
универсал
|
не200345а
|
4
|
4
|
БМВ
|
1998
|
черный
|
седан
|
оа485432в
|
Record# ID MODEL YEARED COLOR BODY REGNUM
2 Москвич 2001 синий седан ау320111в
1 Жигули 2000 зеленый хетчбэк бс567023е
3 Лада 2003 белый универсал не200345а
4 БМВ 1998 черный седан оа485432в
CLExAR ALL
SELECT 1
USE stl_l\prsnl_l ALIAS pers
INDEX ON id TO stl_l\idl
SET ORDER TO TAG idl
SELECT 2
USE stl_l\autol_l ALIAS auto
INDEX ON id TO stl_l\id2
SET RELATION TO id INTO pers
3
select 1
SELECT 2
Выборка записей по условию «все не белые автомобили раньше 2000 года выпуска»
LIST FIELDS pers->Name, Model, Color, Yeared, Regnum FOR
yeared<2000. and. со1оr<>"белый"
Record*
|
Pers->NAME
|
MODEL
|
COLOR
|
YEARED
|
REGNUM
|
4
|
Анна
|
БМВ
|
черный
|
1998
|
оа485432в
|
Record# Pers->NAME MODEL COLOR YEARED REGNUM
4 Анна БМВ черный 1998 оа4854 32в
Вывод записей, удовлетворяющих условию «все не белые автомобили раньше 2000 года выпуска с водителями младше 39 лет»
LIST FIELDS pers->Name, pers->Year, Model, Color, Yeared, Regnum FOR реrs->Yеаr>1965.and.Yеаred<2000.and.со1оr<>"белый" (расп. 4) Record# Pers->NAME Pers->YEAR MODEL COLOR YEARED REGNUM
4 Анна 1984 БМВ черный 1998 ао485432в
SELECT 1
INDEX ON sex TO stl_l\sex
SEEK "м"
Вывод информации из файла PRSN1_1 про автовладельцев мужского пола
LIST WHILE sex="м"
Record# ID NAME YEAR SEX PHONE ADRESS TOWN
2 1 Кирилл 1983 м 138373 6 ул. Озерная, 8 Санкт-Петербург
Вывод списка автовладельцев с белыми автомобилями (использован SQL)
SELECT pers.name, auto.model, auto.regnum FROM pers, auto WHERE pers.id=auto.id.and.color="белый" ORDER BY name TO SCREEN NAME MODEL REGNUM Ирина Лада не200345а
SELECT 2
Соединение двух баз PRSN1_1 и AUTO1_1 в одну AUTOWN1_1
JOIN WITH pers TO stl_l\autownl_l FIELDS pers->name, model, regnum
FOR pers->id=id
LIST
Record*
|
ID
|
NAME
|
YEAR
|
MODEL
|
УEARED
|
COLOR
|
BODY
|
REGNUM
|
|
2
|
1
|
Кирилл
|
1983
|
Жигули
|
2000
|
зеленый
|
хешчб.эк
|
бс567023е
|
|
1
|
2
|
Анастасия
|
1985
|
Москвич
|
2001
|
синий
|
седан
|
ау320111в
|
|
3
|
3
|
Ирина
|
1985
|
Лада
|
2003
|
белый
|
универсал
|
не200345а
|
|
4
|
4
|
Анна
|
1984
|
БМВ
|
1998
|
черный
|
седан
|
ао485432в
|
Record# ID NAME YEAR MODEL YEARED COLOR BODY REGNUM
1 Кирилл 1983 Жигули 2000 зеленый хетчб.эк бс567023е
1 2 Анастасия 1985 Москвич 2001 синий седан ау320111в
3 Ирина 1985 Лада 2003 белый универсал не200345а
4 Анна 1984 БМВ 1998 черный седан ао485432в
Экспорт и импорт
В СУБД FoxPro можно импортировать данные из внешнего файла и экспортировать данные во внешний файл, используя команды append from и copy to. В случае внесения данных в таблицу из внешнего файла необходимо выбрать поля, записи которых будут добавлены в текущий файл, в случае экспорта выбираются необходимые поля таблицы и задается новое имя, после чего программа создает новую таблицу с заданной структурой и перенесенными данными:
COPY TO persons.txt TYPE sdf экспорт (вывод) во внешний файл с фиксированными длинами полей GO TOP
COPY TO persons2.txt TYPE DELIMITED WITH $ экспорт во внешний файл с разделителем полей - $
Распечатка содержимого файла persons . тхт
2 Анастасия 1985ж1939495ул. Аргуновская, 5 Москва
1 Кирилл 1983м138373бул. Озерная, 8 Санкт-Петербург
4Анна 1984ж3748374ул. Бородинская, 3 Москва
З Ирина 1985ж7947548ул. Летняя, 4 Химки
Распечатка содержимого файла PERSONS2. тхт
2, $Анастасия$, 1985, $ж"$, $1939495$, $ул. Аргуновская, 5$,$Москва$
1,$Кирилл$,1983,$м$,$1383736$,$ул. Озерная, 8$,$Санкт-Петербург$
4,$Анна$,1984,$ж$,$3748374$,$ул. Бородинская, 3$,$Москва$
3,$Ирина$,1985,$ж$,$7947548$,$ул. Летняя, 4$,$Химки$
COPY STRUCTURE TO persons2 скопировать структуру текущего файла в другой файл данных USE persons2 APPEND FROM persons TYPE sdf импортировать из внешнего файла. Отображение импортированного содержимого файла PERSONS2. DBF и его структуры:
Structure for table: D:\VFP\PERSONS2.DBF
Number of data records: 4
Date of last update: 05/01/04
Field
|
Field Name
|
Type
|
Width
|
|
1
|
ID
|
Numeric
|
|
2
|
|
2
|
NAME
|
Character
|
|
20
|
|
3
|
YEAR
|
Numeric
|
|
4
|
|
4
|
SEX
|
Character
|
|
1
|
|
5
|
PHONE
|
Character
|
|
7
|
|
6
|
ADRESS
|
Character
|
|
25
|
|
7
|
TOWN
|
Character
|
|
25
|
Field Field Name Type Width
ID Numeric 2
NAME Character 20
YEAR Numeric 4
SEX Character 1
PHONE Character 7
ADRESS Character 25
TOWN Character 2 5
** Total ** 85
Record#
|
ID
|
NAME
|
YEAR
|
SEX
|
PHONE
|
ADRESS
|
TOWN
|
|
1
|
2
|
Анастасия
|
1985
|
ж
|
1939495
|
ул.
|
Аргуновская,
|
5 Москва
|
|
2
|
1
|
Кирилл
|
1983
|
м
|
1383736
|
ул.
|
Озерная, 8
|
Санкт-Петербург
|
|
3
|
4
|
Анна
|
1984
|
ж
|
3748374
|
УЛ.
|
Бородинская,
|
3 Москва
|
|
4
|
3
|
Ирина
|
1985
|
ж
|
7947548
|
ул.
|
Летняя, 4
|
Химки
|
Record# ID NAME YEAR SEX PHONE ADRESS TOWN
2 Анастасия 1985 ж 1939495 ул. Аргуновская, 5 Москва
1 Кирилл 1983 м 1383736 ул. Озерная, 8 Санкт-Петербург
4 Анна 1984 ж 3748374 ул. Бородинская, 3 Москва
3 Ирина 1985 ж 7947548 ул. Летняя, 4 Хим
Достарыңызбен бөлісу: |