Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемvfpdev.narod.ru
1 Дроздов Михаил My Page: My Page: Компания «ИВС Софт» База данных Visual FoxPro 6.0 (основные понятия и инструментальные средства среды разработки)
2 База данных Является источником данных приложения Свою информацию хранит в файлах с расширениями: –*.dbc - основные данные –*.dct - memo поля –*.dcx - индексы уникальный код объекта значение кода родительского объекта типа объекта название объекта свойства объекта откомпилированный код тип контроля целостности информация пользователя Структура файла:
3 Свойства базы данных Version - версия базы данных Comment - комментарий базы данных
4 Объекты базы данных Таблицы локальные представления удалённые представления соединения с вн. источниками сохранённые процедуры Каждый из объектов имеет ряд своих свойств, значения которых хранятся в базе данных. Кроме того, таблицы хранятся в файлах с расширениями: *.dbf, *.fpt, *.cdx
5 Работа с объектами базы данных 1[2] создать таблицу добавить таблицу создать удалённое представление создать локальное представление вызвать среду редактирования текущего объекта просмотр таблицы значений объекта удалить объект из базы данных найти объект базы данных обновить индексы удалить записи, отмеченные на удаление редактировать межтабличные отношения редактирование признаков ссылочной целостности редактирование сохранённых процедур редактирование соединений с внешними источниками переустановить расположение объектов обновить данные об объектах базы данных выполнить команду PACK для базы данных вызвать диалог редактирования свойств базы данных
6 Работа с объектами базы данных 2[2] раскрыть все свернуть все найти объект список удалить свернуть редактировать помощь... удалить редактировать целостность помощь База данных: Таблица:Отношение:
7 Список свойств таблицы Name - название таблицы DeleteTrigger - триггер удаления записи из таблицы InsertTrigger - триггер добавления записи в таблице UpdateTrigger - триггер изменения записи в таблице Path - месторасположение таблицы PrimaryKey - первичный ключ таблицы RuleExpression - предикат контроля значений полей уровня записи RuleText - сообщение об ошибки значений полей Comment - комментарий таблицы
8 Свойства таблицы Name - alias таблицы Record validation - функция контроля данных полей уровня записи: –Rule - функция- предикат –Message - строка- сообщение об ошибки Triggers - функции- предикаты, вызываемые при событиях: добавления (Insert), изменения (Update), удаления (Delete) данных записи. У буферизованных таблиц при вызове функции TABLEUPDATE() Все перечисленные свойства сохраняются в базу данных Visual FoxPro, и следовательно недоступны для свободных (free) таблиц. Это название отображается в Project Manager и используется как alias при открытии таблицы Эти функции автоматически обновляются при переустановках в Referential Integrity Это свойство редактируется также из Project Manager см. Description
9 Свойства поля таблицы Name - название поля Type - тип поля Size - размер поля Format - формат поля InputMask - шаблон поля Caption - заголовок поля RuleExpression - предикат контроля значения поля RuleText - сообщение об ошибки значения поля DefaultValue - значение поля по умолчанию DisplayLibrary - библиотека элементов управления DisplayClassLibrary - название класса поля Comment - комментарий поля
10 Поля таблицы 1[2] Name - название поля (до 128 символов в *.dbc) Width - общая длина Decimal - количество знаков после точки Index - автоматически добавляет Regular индекс в CDX-файл * NULL - признак допустимости NULL значения поля Type - типы полей: * * * * * - приводит к появлению файла *.fpt * - приводит к появлению файла *.cdx Используя эту кнопку, Вы можете изменить порядок полей
11 Поля таблицы 2[2] Display - обеспечивает форматирование для операции ввода /вывода: –Format - задаёт размер и стиль отображения для Browse, Form и Report –Input mask - обеспечивает шаблон ввода данных –Caption - задаёт заголовок столбца/названия поля для Browse, Form и Report Field validation - обеспечивает контроль ввода уровня поля: – –Rule - функция-предикат контроля значения поля – –Message - строка-сообщение об ошибке – –Default value - значение поля при добавлении записи Map field type to classes - задаёт элемент управления (Display class) из библиотеки классов (Display library), для поля. Field Comment - комментарий для поля, обычно назначение поля. Это свойство редактируется также из Project Manager см. Description
12 Свойства индекса таблицы Name - название индекса Order - направление сортировки индекса Type - тип индекса Expression - определяющее выражение индекса Filter - фильтрующее выражение индекса
13 Индексы таблицы Order - определяет порядок сортировки данных поля Name - название индекса (до 10 символов) Type - определяет тип индекса Expression - «определяющее» выражение для значений индекса Filter - «фильтрующее» выражение значений индекса Перед созданием индексов установите необходимое Вам SET COLLATE. Только наличие тип индекса Primary может обеспечивать межтабличную целостность данных (Referential Integrity). Для типов индексов Primary/Candidate настоятельно рекомендую определить фильтр: !DELETED().AND. !EMPTY(EVALUATE(Expression)) Советы и дополнительная информация: Primary - не допускает повторение значений, один на таблицу. Candidate - тоже, что и Primary, но может быть несколько в таблице. Unique - допускает повторения, но сохраняет только одно значение. Regular - не контролирует значения. Используя эту кнопку, Вы можете изменить порядок индексов
14 Свойства отношения Application - ссылка на объект приложения, содержащий данный ChildAlias - название подчинённой таблицы ChildOrder - индекс подчинённой таблицы Comment - комментарий Name - название OneToMany - признак один-ко-многим ParentAlias - название родительской таблицы RelationalExpr - реляционное выражение родительской таблицы Tag - дополнительная информация
15 Обеспечение ссылочной целостности данных 1[3] Щёлкнув левой клавишей мыши на первичном ключе родительской таблицы и не отпуская клавиши, переместите указатель мыши на индекс подчинённой таблицы. Названия индексов: –в родительской - первичный (primary) [только один в таблице] –в подчинённой - внешний (foreign) [может быть несколько в одной таблице, и соответствует числу родительских таблиц] Возникнет связь
16 Для каждой связи Вы можете определить реакцию на –изменение (update) –удаление (delete) –добавление (insert) * Возможные значения –Cascade * - распространяет изменения на все подчинённые –Restrict - запрещает изменения, противоречащие связям –Ignore - позволяет всё После переустановки всех значений для всех связей нажмите OK, что приведёт к замене прежнего кода поддержки IR новым и переустановке триггеров в соответствующих таблицах Обеспечение ссылочной целостности данных 1[3] * Cascade недопустим при добавлении (Insert)
17 Обеспечение ссылочной целостности данных 1[3] Обеспечивайте ведение Primary и Foreign ключей только программно. (Если Вам кажется, что некоторые поля, редактируемые пользователем, прекрасно могут выполнять функции Primary и Foreign, то очень даже может быть, что Вам придётся разочароваться.) Все значения ключевых полей, как Primary, так и Foreign, обеспечивайте используя механизм Default value поля, например: –Первая запись в таблице, имеющей Primary ключ, является записью по-умолчанию, т.е. значение Primary ключа её первой записи является значением Default value для Foreign полей у всех подчинённых таблиц. –Генерацию значения Primary ключа для новой записи, можно также осуществлять через функцию, определённую как Default value для этого поля. Саму же функцию следует поместить как сохранённую процедуру в базу данных. (См. пример такой функции NewID(...) в Tastrade.app ) Если Вы, как и я считаете, что на клиенте не должно выполняться никакой работы с данными, то следует учитывать то обстоятельство, в теле триггера запись, по поводу которой он был вызван, будет заблокирована, и если здесь Вам требуется произвести вычисления и/или сохранить вычисленные значения, то создайте дополнительную таблицу, содержащую такие результаты, и свяжите её с исходной связью типа один-к-одному, в этом случае в теле триггера Вы можете свободно манипулировать данными такой таблицы. Сделав так, или аналогично этому, Вы избежите многих проблем, связанных с контролем целостности данных в таблицах Вашей базы данных Полезные советы:
18 Список свойств представления (view) Name - название представления BatchUpdateCount - количество update-операторов CompareMemo - включать ли memo в WHERE ConnectName - имя используемого соединения FetchAsNeeded - использовать ли выборку данных FetchMemo - выбирать ли memo поля FetchSize - количество записей в выборке MaxRecords - максимальное количество требуемых записей Offline - является ли отсоединённым представлением ParameterList - список параметров и их типов Prepared - повторно используемый ли запрос (допустимо ли REQUERY()) RuleExpression - выражение контроля уровня записи RuleText - сообщение об ошибке контроля уровня записи SendUpdates - требуется ли посылка изменений источнику ShareConnection - разделяемое ли соединение используется SourceType - тип представления SQL - SQL-оператор Tables - список используемых таблиц UpdateType - способ выполнения изменений UseMemoSize - минимальная длина memo-полей WhereType - способ формирования WHERE Comment - комментарий таблицы
19 Представления (view) среда редактирования 1[8] Позволяет создать /изменить SQL запрос к данным, в результате выполнения которого, получается Vfp cursor В верхней части диалога отображается схема используемых таблиц и межтабличных связей В нижней, на закладках: Fields, Join, Filter, Order By, Group By, - обеспечивается возможность изменения соответствующих частей SQL-оператора На закладке Update Cretaria Вы можете настроить режимы взаимодействия с источником данных В Miscellaneous Вы можете дополнительно ограничить число записей (или их %), а также исключить дублирование данных Следующий слайд объясняет виды объединений (Join types) Условия межтабличных объединений Вы можете определять используя левую клавишу мыши
20 Представления виды объединений 2[8] Left Outer Join Right Outer Join Inner Join Full Join Таблица 1 Таблица 2 Все + Условные
21 Представления пункты меню 3[8] добавить таблицу удалить таблицу удалить объединение выбрать отображаемые поля определить условия объединения определить дополнительные условия определить способы сортировки определить условия группировки определить способы изменения данных источника дополнительно ограничить множество записей просмотреть текущий SQL-оператор дополнительные опции определить параметры запроса определить комментарий выполнить запрос
22 Представления выбор полей 4[8] Диалог выбора отображаемых полей, является просто классическим, обратите внимание, что Вы можете определять вычисляемые выражения в поле «Functions and expressions» Следующий слайд объясняет кнопку «Properties»
23 Список свойств полей представления 5[8] Name - название поля Caption - заголовок поля Comment - комментарий поля DataType - тип, размер поля DefaultValue - значение по умолчанию KeyField - является ли ключевым RuleExpression - выражение контроля значения RuleText - сообщение об ошибки контроля значения Updatable - изменяемое ли UpdateName - название поля на источнике
24 Представления свойства полей 6[8] Диалог свойств отображаемых полей, полностью дублирует диалог свойств полей таблицы (см. слайд «Поля таблицы 2[2]»), кроме этого для внешних источников данных у Вас появляется возможность изменить тип поля, на «удобный» в смысле приложения, используя «Data mapping».
25 Представления условия выбора 7[8] Not - признак, позволяющий задать отрицание установленного критерия. Case - обеспечивает режим сравнения, чувствительный к регистру. Expression... в Field Name позволяет построить вычисляемое выражение ? - предваряющий название переменной в Example, позволяет использовать параметр Для просмотра текущего критерия используйте команду View SQL или команду SQL панели инструментов. Следите за соответствием типов данных в критериальных выражениях. Для спецификации типов параметров используйте диалог View parameters... Советы:
26 Представления режимы изменений данных источника 8[8] Table - позволяет выбрать таблицу, поля которой Вы желаете специфицировать. Reset Key - устанавливает отметку для всех первичных (primary) ключей таблиц, как обеспечивающих контроль наличия изменений. Update All - позволяет отметить как контролируемые на изменения все поля таблиц, не являющимися первичными. Send SQL updates - только включение этого признака обеспечивает пересылку изменений источнику данных Update using - указывает способ выполнения изменений: –SQL DELETE then INSERT - выполняет удаление записи с последующим добавлением новой –SQL UPDATE - формируется команда UPDATE SQL WHERE clause includes -определяет как формировать параметр WHERE в SQL операторе, что обеспечивает контроль конфликтных изменений данных: – –Key fields only - проверка выполняется только для ключевых полей – –Key and updateable fields - по ключевым полям и отмеченным как изменяемые, независимо от того были ли действительно изменены значения – –Key and modified fields - по ключевым полям и полям, которые были действительно изменены – –Key and timestamp - контроль осуществляется по полю типа timestamp
27 Список свойств соединения Name - название соединения Asynchronous - допустим ли Asynchronous режим соединения BatchMode - допустим ли Batch режим соединения ConnectString - строка параметров соединения ConnectTimeout - Timeout соединения Database - Database соединения DataSource - DSN соединения DispLogin - режим диалога ввода пароля ODBC DispWarnings - допустим ли вывод сообщений IdleTimeout - время ожидания закрытия PacketSize - размер сетевого пакета PassWord - PWD соединения QueryTimeout - время ожидания результата Transactions - транзакционный режим UserId - UID соединения WaitTime - время задержки контроля завершения запроса Comment - комментарий соединения
28 Соединения с внешними источниками данных 1[2] Внешние источники данных должны быть специфицированы в ODBC Data Source Administrator. В Visual FoxPro базе данных может быть использовано несколько таких источников, в качестве соединений к внешним данным, редактируемых из диалога Connections. Внешние представления(Remote view) имеют имя соединения в качестве свойства, параметры которого прозрачно используются для получения соединения с внешним источником данных. Следующий слайд объясняет параметры ODBC соединения
29 Параметры соединения 2[2] Specify data source - определяет внешний источник данных –возможны два варианта: Data source, userid, password - повторяют параметры источника, зарегистрированного в ODBC Administrator. Connection string - задаёт строку, содержащую перечисление параметров и их значений, используя ; в качестве разделителя. –Verify Connection... - может быть использована для проверки работоспособности соединения. –New Data Source… - вызывает диалог ODBC Administrator Display ODBC login prompt - определяет должен ли вызываться диалог ввода пароля при установке соединения: Когда необходимо, Всегда, Никогда. Оставшаяся часть диалога позволяет задать ряд параметров ODBC соединения, которые могут отличаться от задаваемых по умолчанию Нажатие кнопки OK приводит к диалогу сохранения параметров соединения под некоторым именем в базу данных Visual FoxPro, которое в дальнейшем используется Внешними представлениями (Remote view) в качестве соединения. Список соединений базы данных редактируется из диалога Connections. Этот диалог может быть вызван из Project Manager
30 Сохранённые процедуры Список всех сохранённых процедур удобно представлен в Project Manager. Язык написания - это подмножество языка Visual FoxPro, ориентированное на работу с данными. Если Вы используете контроль ссылочной целостности, генерируемый средствами Visual FoxPro, не пытайтесь редактировать полученный код вручную. Если у Вас возникла необходимость сделать чего- нибудь с данными, не задумываясь оформляйте это в виде сохранённой процедуры, никак не следует делать это методом конкретного экземпляра формы. При обращении к сохранённым процедурам контролируйте активность базы данных
31 Свободные таблицы SQL Pass-Through Данные Другие форматыVisual FoxProFoxPro 2.x База данных Соединения Запросы Хранимые процедуры Локальные представления Таблицы Внешние представления Схема объектов базы данных
32 Список команд и функций ADATABASES() ADBOBJECTS() ADD TABLE ALTER TABLE - SQL CDX() CLOSE DATABASES COPY INDEXES COPY TAG CREATE CONNECTION CREATE DATABASE CREATE SQL VIEW CREATE TABLE - SQL DBC() DBGETPROP() DBSETPROP() DBUSED() DELETE DATABASE DELETE TAG DISPLAY DATABASE DISPLAY TABLES SET COLLATE SET DATABASE SET INDEX SET ODOMETER SET ORDER SET RELATION SET UNIQUE SORT SYS(14) SYS(2021) SYS(21) SYS(22) TAG() TAGCOUNT() USE VALIDATE DATABASE GenDbc FREE TABLE INDBC() INDEX INDEXSEEK() KEY() KEYMATCH() LIST DATABASE LOCATE MDX() MODIFY DATABASE MODIFY STRUCTURE NDX() OPEN DATABASE ORDER() PACK DATABASE REINDEX REMOVE TABLE SEEK SEEK() SET B LOCKSIZE
33 Вопросы…? … и ответы!
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.