Главная страница
Навигация по странице:

  • Заполнение базы данных Открытие файла базы данных

  • Перемещение в базе данных

  • GO TOP [IN ] - переход к самой первой записи файла; GO BOTTOM [IN ]

  • SKIP [IN ]

  • RECNO([ ]) - указывает номер текущей записи; RECCOUNT([ ])

  • Удаление данных В FoxPro имеется несколько команд удаления данных: ERASE

  • DELETE FILE . ZAP

  • RECALL [ ] [WHILE ] [FOR ]

  • REPLACE [ ] [WHILE ] [FOR ] WITH [, WITH ,..] [ADDITIVE] [NOOPTIMIZE]

  • Локализация и поиск данных в базе Исключительно важную группу команд в системах управления базами данных образуют средства выделения и поиска данных в базе. Фильтрация данных

  • SET FILTER TO [ ]

  • Последовательный поиск Начальный поиск

  • LOCATE [ ] FOR [WHILE ]

  • Продолжение поиска Команда, которая продолжает поиск записей, начатый ранее командой LOCATE, приведена ниже: CONTINUE

  • SET INDEX TO [

  • CLOSE INDEX Ускоренный поиск

  • Работа с несколькими таблицами

  • Методичка. Базы данных (ПОВТ) 2009. Методические указания для студентов дневного отделения специальности "Программное обеспечение вычислительной техники" Барнаул 2009 2


    Скачать 2 Mb.
    НазваниеМетодические указания для студентов дневного отделения специальности "Программное обеспечение вычислительной техники" Барнаул 2009 2
    АнкорМетодичка. Базы данных (ПОВТ) 2009.pdf
    Дата04.10.2019
    Размер2 Mb.
    Формат файлаpdf
    Имя файлаМетодичка. Базы данных (ПОВТ) 2009.pdf
    ТипМетодические указания
    #13290
    страница3 из 11

    Подборка по базе: Программа обучения студентов (Syllabus) по дисциплине Основы пра, методичка по цитологии 2019 для студентов.pdf, Методические указания к самостоятельной работе по дисциплине «Ме, Метод указания-19.docx, Методические указания по практике .doc, Методические указания по практике .doc, ГАОУ СПО Десмургия - Методические рекомендации для студентов по .
    1   2   3   4   5   6   7   8   9   10   11
    SET <параметр команды> ТО <значение параметра>
    SET <параметр команды> OFF/ON
    Такие команды (команды-установки), как правило, не влекут каких-то немедленных действий, а определяют условия работы других команд, т.е. устанавливают операционную среду FoxPro. Параметр может быть задан некоторым <значением> или включен/выключен
    (ON/OFF).
    В FoxPro разрешается и ключевые слова, и имена записывать как прописными, так и строчными буквами. Если предполагается поиск в базе, то ключ поиска должен в точности совпадать с искомыми элементами данных. Совпадение должно быть полным, включая прописные и строчные буквы, поскольку они имеют разные коды представления в компьютере.
    Константы различных типов данных отображаются в командах следующим образом:
    Символьные константы в FoxPro выделяются апострофами, кавычками или квадратными скобками. В случае, если сами символы-ограничители являются элементами данных, вся строка должна быть заключена в другие разрешенные ограничители, например
    [Кинотеатр "Ударник"]. Мы будем пользоваться апострофами, например 'Петров А.'.
    Константы типа дата берутся в фигурные скобки (например, {09.11.91}). Пустая дата
    ({..}) вообще может быть задана одними фигурными скобками {}. Логические константы Т и
    F в тексте программ обрамляются точками (.Т., .F., .t., .f.).
    Выход из среды FoxPro осуществляется командой •QUIT
    Заполнение базы данных
    Открытие файла базы данных
    Файл после создания структуры остается открытым, т.е. доступным для команд ввода, просмотра и изменения. Однако, если СУБД только загружена в память, должно быть выполнено открытие нужного файла базы данных командой открытия
    USE []
    Команда USE без имени файла закрывает базу данных. Более полный синтаксис команды мы рассмотрим позже.
    Закрытие всех файлов баз данных и связанных с ними файлов других типов индексов, форматов, отчетов и т.д. во всех рабочих областях с переходом в первую рабочую область осуществляется командой

    16
    CLOSE DATABASE
    Закрытие вообще всех файлов выполняется командой
    CLOSE ALL
    Дополнение базы данных
    Дополнение файла новыми записями осуществляется командой
    • APPEND [BLANK] которая предъявляет окно ввода данных со всеми пустыми полями создаваемой записи. Необязательная фраза BLANK означает, что новая запись останется пустой и не будет отражена на экране.
    В нашем случае команды
    USE kadr
    APPEND обеспечат доступ к окну редактирования данных к самой первой записи незаполненного пока файла.
    Все поля базы выделяются контрастным цветом в соответствии с их длиной. Мемо- поле указывается только словом "memo". Заполним новую запись по своему усмотрению. По умолчанию в системе используется американский формат даты.
    После ввода текущей записи автоматически происходит доступ к следующей записи и т.д. Для того чтобы войти в мемо-поле, необходимо в него поместить курсор и нажать Ctrl-
    Home или дважды кнопку мыши. Выход из мемо-поля с сохранением сделанных в нем изменений на диске осуществляется клавишами Ctrl-W, без сохранения - Escape. При этом, если изменения в мемо-поле были сделаны, FoxPro выдает вопрос-предупреждение "Не со- хранять изменения ?":
    Ответ Yes завершит работу в окне, причем все внесенные вами изменения будут проигнорированы. No - вернет нас обратно в окно ввода.
    Выход из окна APPEND осуществляется аналогичным образом. При нажатии Escape не сохраняется только новая информация в поле, в котором находится курсор.
    В окне редактирования возможны возврат к предыдущим записям для их изменения и вообще листание записей (клавиши PgUp/PgDn). Допускается также пометка записей к удалению нажатием Ctrl-T. Более подробно клавиши управления редактированием будут рассмотрены позже.
    По умолчанию в FoxPro принят американский (AMERICAN) формат даты - две цифры месяца, дня и года, отделенные косой чертой, т.е. ММ/ДД/ГГ. Очевидно, что для нас это очень неудобно.
    Имеется возможность установить иные формы даты командой
    SET DATE <тип даты>
    Приведем ее важнейшие типы и форматы:
    SET DATE AMERICAN
    -ММ/ДД/ГГ;
    SET DATE ANSI
    - ГГ.ММ.ДД;
    SET DATE BRITISH/FRENCH
    - ДД/ММ/ГГ;
    SET DATE GERMAN - ДД.ММ.ГГ;
    SET DATE ITALIAN - ДД-ММ-ГГ.
    Кроме того, можно при необходимости отображать дату не двумя, а четырьмя цифрами года параметр ON в команде
    SET CENTURY OFF/ON
    По умолчанию OFF - т.е. предьявляюся две младшие цифры года и вся дата считается относящейся к двадцатому столетию (19ГГ).
    Следует отметить, что какова бы не была установка SET CENTURY, в базе данных дата все равно хранится с четырьмя цифрами года.
    Остановимся на типе, определяемом командой

    17
    Команда browse
    Команда BROWSE - один из наиболее мощных и удобных инструментов доступа пользователя к данным в FoxPro. По существу это не просто команда - это целая среда доступа и управления данными.
    Записи из базы (по умолчанию) предъявляются горизонтально на экране или внутри предварительно описанного окна. Записи можно редактировать, дополнять и помечать к удалению. Формат отображения полей в BROWSE-окне может настраиваться пользователем.
    Допускается создавать так называемые вычисляемые поля. Эти роля фактически не являются полями базы данных, но могут быть Их функциями и отображаются на экране наравне с настоящими ролями, что дает возможность пользователю, например, оценивать свои данные по заданному критерию. Такой режим соответствует работе с электронной таблицей.
    Если позволяет основная память компьютера, можно одновременно открыть до 25
    BROWSE
    - окон для стандартной и до 255 -для расширенной версии FoxPro.
    Команда BROWSE дает возможность предъявлять поля из разных баз данных. Кроме того, она поддерживает любой тип связи между базами. При выполнении команды можно получить текущее значение колонки/строки относительно окна/экрана (функции
    СOL
    ()/
    ROW
    ()),
    имя текущего поля (функции VARREAD() и SYS(8)), Номер текущей записи
    (RECNO()) и т.д. Допускается широкое применение аппарата пользовательских функций.
    Формат команды (опции перечислены по алфавиту):
    BROWSE
    [FIELDS <поля>]
    [РОР<условие1>]
    [FREEZE <поле>]
    [KEY <выр1>[,<выр2>]]
    [LAST]
    [LEDIT/REDIT]
    [LOCK<вырNl>]
    [LPART1TION] [NOAPPEND] [NOCLEAR} [NODELETE] [NOEDIT/NOMODIFY]
    [NOLGRIDWORGRID]
    [NOLINK] [NOMENU] [NOOPTIMIZE] (NORMAL] [NOWAIT] [PARTITION
    <вырN2>]
    [REST]
    [PREFERENCE <вырС1>]
    [TIMEOUT <вырN3>]
    [TITLE <вырС2>]
    [WHEN <условие2>]
    [[WINDOW <окно>] [IN [WINDOW] /IN SCREEN]]
    [VALID [F:] <условие3> [ERROR <вырСЗ>]] [COLOR SCHEME <вырN4>/COLOR
    <список цветовых пар>]
    Перемещение в базе данных
    При работе с базой данных необходимы средства перемещения внутри нее. Запись, на которой находится указатель записей, является текущей, и только к ней в данный момент возможен непосредственный доступ.
    Имеется несколько разновидностей команд, изменяющих положение указателя записей:
    GO TOP [IN <область>]
    - переход к самой первой записи файла;
    GO BOTTOM [IN <область>] - переход к самой последней записи;

    18
    GO <вырN> [IN <область>] - переход к записи с указанным в <вырN> номером;
    SKIP <вырN> [IN <область>]
    - переход к записи, отстоящей от текущей на указанное в <вырN> число записей.
    В последней команде <вырN> может быть и отрицательным, что означает движение указателя назад. SKIP без параметра идентичен SKIP 1 (переход на следующую запись).
    Параметр IN <область> указывает над базой из какой рабочей области должна выполниться команда. Если он опущен, имеется в виду текущая рабочая область.
    Для контроля положения указателя и наличия записей в файле предусмотрены функции:
    RECNO([])
    - указывает номер текущей записи;
    RECCOUNT([]) - выдает общее число записей в файле базы данных, включая записи, помеченные к удалению;
    ЕОF([<областъ>])
    - функция конца файла. Она истинна (.Т.), если конец достигнут, и ложна (.F.) в противном случае;
    ВОF([<область>])
    - то же, но для начала файла. Необязательный параметр <область> указывает, для какой рабочей области запрашивается значение функции.
    По умолчанию текущая область.
    Функции в FoxPro имеют характерный синтаксис - скобки, даже если никакого аргумента нет и они остаются пустыми.
    Удаление данных
    В FoxPro имеется несколько команд удаления данных:
    ERASE <файл> - удаление любого не открытого в данный момент файла.
    Расширение имени обязательно. Совершенно аналогичные функции выполняет команда
    DELETE FILE <файл>.
    ZAP - удаление всех записей в активном файле базы данных с сохранением его структуры.
    DELETE [<границы>] [WHILE <условие>] [FOR <условие>] -пометка к удалению записей в указанных границах и/или отвечающих указанным условиям. DELETE без параметров помечает только одну текущую запись.
    PACK [MEMO][DBF] - физическое удаление помеченных ранее записей и сжатие файла. После выполнения команды указатель записей устанавливается в начало базы. Если имеются открытые индексы, они перестраиваются. По умолчанию упаковывается как файл данных (DBF), так и файл мемо-полей (FPT). Если указан параметр MEMO, то упаковывается только FPT-файл, если DBF - то только DBF-файл.
    RECALL [<границы>] [WHILE <условие>] [FOR <условие>] -снятие пометок к удалению. RECALL без параметров действует только на текущую запись.
    Удаление записей в базе данных выполняется в два этапа: сначала пометка записей на удаление (она возможна и в окнах редактирования нажатием клавиш Ctrl-T) командой
    DELETE, а затем их физическое уничтожение командой PACK. Если упаковка файла еще не произведена, можно спасти нужные записи командой RECALL.
    Команду PACK имеет смысл применять не только для удаления записей, но и для сжатия мемо-полей (PACK MEMO). Дело в том, что даже при видимом уменьшении размера мемо-поля (например, в результате редактирования) уменьшается только доступная пользователю часть, но размер самого FPT-файла никогда не сокращается. Таким образом, при интенсивном обновлении данных с участием мемо-полей вполне возможно недопустимое "разбухание" файла примечаний.
    Примеры:
    USE kadr

    19
    ?RECNO(),RECCOUNT() - выдача номера текущей записи и общего их числа
    GO
    5
    - переход к пятой записи
    SKIP -3
    - возврат ко второй записи
    DELETE NEXT 3
    - пометка к удалению записей 2,3,4
    RECALL RECORD 4
    - снятие пометки о записи 4
    PACK
    - сжатие файла о возвратом в начало базы
    ?RECNO(),RECCOUNT()
    Для иллюстрации работы FoxPro применена команда ?, выдающая на экран перечисленные в ней выражения. Более подробно команда будет рассмотрена позже.
    Команда сжатия PACK в базе реальных размеров выполняется медленно, и поэтому лучше ее делать один раз в день или даже раз в несколько дней. Чтобы помеченные к удалению записи до их уничтожения не участвовали далее в обработке данных, можно ис- пользовать команду
    SET DELETED ON
    При этом такие записи делаются как бы невидимыми для FoxPro и пользователя, за исключением случаев прямого на них указания. Например, команда GO 20 установит указатель записей на двадцатую запись независимо от того, была или нет она помечена. По умолчанию принято значение OFF.
    Изменение данных
    В FoxPro имеется возможность не только вручную редактировать данные, но и изменять их путем присвоений или вычислений.
    REPLACE [<границы>] [WHILE <условие>] [FOR <условие>] <поле 1 > WITH
    <выражение>
    [,<поле2> WITH <выражение>,..] [ADDITIVE] [NOOPTIMIZE]
    Эта команда осуществляет множественное изменение полей базы данных в соответствии с заданными выражениями, в установленных границах и при заданных условиях. Если отсутствует параметр <границы> или <условия>, изменена будет только текущая запись. Параметр ADDITIVE действует для мемо-полей и означает, что заданное
    <выражение> будет дописываться в конец поля. Если этот параметр опущен, то старое значение мемо-поля будет замещено <выражением>.
    Локализация и поиск данных в базе
    Исключительно важную группу команд в системах управления базами данных образуют средства выделения и поиска данных в базе.
    Фильтрация данных
    Хотя в команде BROWSE, например, имеется возможность осуществить отбор записей из базы с помощью опций FOR и KEY, в других командах это может оказаться невозможным или неудобным. В силу этого в FoxPro предусмотрена специальная команда вида
    SET FILTER TO [<условие>] которая позволяет установить FOR-условие для всех без исключения команд обработки данных. Здесь <условие> указывает на то, какие именно записи могут быть доступны для обработки. Например, команда
    SET FILTER TO fam='HB' сделает доступными для обработки только записи, в которых фамилия сотрудника начинается с букв "ИВ". Команда SET FILTER действует исключительно на ту базу, которая открыта и активна в данный момент. То есть для каждой базы данных должен быть установлен свой фильтр записей. Команда SET FILTER ТО без параметра снимает все ограничения на предъявление записей из текущей базы.

    20
    Установление фильтра имеет одну особенность - он начинает действовать только в случае, если после команды SET FILTER TO <условие> произведено хоть какое-то перемещение указателя записи в файле базы данных, При возможности следует применять быстрый способ фильтрации с использованием индексного файла. для этого используется параметр KEY в команде BROWSE, или индексация с FOR-условием.
    Выяснить выражение фильтра для текущей или указанной рабочей области можно с помощью функции
    FILTER((])
    В FoxPro имеются разнообразные команды поиска записей, которые реализуют как последовательный, так и ускоренный алгоритмы. При последовательном поиске выполняется сплошной перебор записей файла базы данных до установки указателя записей на искомую запись.
    Последовательный поиск
    Начальный поиск
    Следующая команда осуществляет последовательный поиск одной самой первой записи в базе данных, удовлетворяющей заданному FOR-условию, среди записей, находящихся в заданных границах, и до тех пор, пока соблюдается WHILE-условие (если есть).
    LOCATE [<границы>] FOR <условие> [WHILE <условие>]
    В случае, если границы и WHILE-условие отсутствуют, поиск ведется во всем файле, начиная с первой записи. При успешном поиске указатель записей устанавливается на найденную запись, функция RECNO() равна номеру этой записи, а функция FOUNDO, оценивающая результат поиска, возвращает значение "Истина" (.Т.). При неудачном поиске функция RECNO() равна числу записей в базе плюс 1, FOUND()=.F., а функция достижения конца файла EOF() возвращает .Т.
    Продолжение поиска
    Команда, которая продолжает поиск записей, начатый ранее командой LOCATE, приведена ниже:
    CONTINUE которая эквивалентна команде LOCATE REST FOR <условие> [WHILE <условие>].
    Если командой LOCATE или CONTINUE не было найдено нужных записей, указатель записей устанавливается на нижнюю границу поиска (если она введена в команде) или на конец файла (EOF()=.T.).
    Установка активного индекса
    SET INDEX TO [<список индексных файлов>
    ORDER <вырN>//[ТАG] <имя тега>
    [OF <СDХ - файл>] [ASCENDING/DESCENDING]]
    [ADDITIVE]
    Команда открывает перечисленные через запятую одно- и мультииндексные файлы
    (кроме структурного мультииндексного файла, который открывается автоматически вместе с базой данных). По умолчанию открытый первым IDX-файл становится главным индексом.
    Открываемый CDX-файл не изменяет порядка обработки |данных (не устанавливает главного индекса). Опции команды:
    ORDER <вырN> - опция указывает номер главного индексного файла среди перечисленных в <списке> открываемых IDX - файлов или среди тегов CDX-файла (номер по порядку создания), если нас не устраивает назначение главного индекса по умолчанию.
    Указание опции ORDER без аргумента или задание параметра <вырN>=0 означает, что, хотя индексы откроются, главный индекс не будет назначен.
    ORDER - главный индекс задается указанием имени индексного файла.

    21
    ORDER [TAG] <имя тега> OF - главный индекс задается именем тега.
    ASCENDING/DESCENDING - определяет порядок использования индекса (по возрастанию/убыванию), даже если при его создании был использован противоположный закон.
    ADDITIVE - открытие новых индексов не закрывает старые.
    Команда SET INDEX TO без параметра закрывает все индексные файлы, кроме структурного, для текущей базы. Такое же действие осуществляет команда
    CLOSE INDEX
    Ускоренный поиск
    Индексный файл не только упорядочивает базу данных для просмотра, но и ускоряет поиск в ней по ключу, заданному в индексе, если пользоваться командой
    SEEK <выражение>
    Команда применяет специальный алгоритм ускоренного поиска, в котором база просматривается не сплошь, а в соответствии с информацией, содержащейся в индексе.
    При наличии индекса сначала именно в нем, а не в самой базе Ждется поиск номера записи с указанным в команде SEEK значением выражения в индексном поле. При этом поиск в индексе выполняется не последовательно, а скачками (так называемый двоичный поиск), что позволяет быстро локализовать номер нужной записи. Только после этого указатель записей устанавливается на искомую запись в основной базе данных.
    Команда SEEK разыскивает только одну первую запись, в которой в индексном поле наблюдается <выражение>, т.е. когда <поле>=<выражение>, и устанавливает на нее указатель записей.
    Работа с несколькими таблицами
    В FoxPro допускается работа сразу с многими базами данных и при этом возможно установление разнообразных связей между ними. Указатели записей в таких связанных базах будут двигаться синхронно. База, в которой указатель движется, произвольно, считается старшей, а база/базы, в которой указатель следует за указателем старшей базы, - младшей. В старшей и младших базах должны быть поля, несущие какой-то общий признак, иначе, хотя связь и возможна, она будет бессмысленна. Допускается сцепление одной базы с несколькими другими. Младшие базы, в свою очередь, могут быть связаны с базами следующего уровня и т.д.
    Возможно установление двух типов связей между записями двух сцепленных баз данных. Связь типа одна-запись-к-одной перемещает указатель в младшей базе таким образом, что он всегда устанавливается на первую встреченную им запись с совпадающим признаком. Остальные такие записи (если есть) остаются "не замеченными". Эта связь устанавливается просто командой SET RELATION. Связь типа одна-запись-ко-многим позволяет обратиться ко всем записям младшей базы с совпадающим признаком (команды
    SET RELATION и SET SKIP TO).
    Оба типа связей могут быть распространены на несколько баз сразу.
    1   2   3   4   5   6   7   8   9   10   11


    написать администратору сайта