В дополнение к совместной работе с проектами и файлами проектов, ваша команда должна быть способна совместно использовать информацию в базах данных. Работа с базами данных в команде включает в себя не только выпуск обычных конкурентных управляющих элементов для данных в таблицах, но также и необходимость совместно использовать управляющую информацию базы данных..
Если несколько разработчиков работают с одной и то же базой данных в одно и то же время, они должны быть в состоянии совместно использовать файл (.dbc) базы данных. В Visual FoxPro, файл .dbc может быть совместно использован несколькими разработчиками, как обычная таблица с данными. Поэтому файл .dbc должен храниться централизованно с таблицами, составляющими базу данных. Разработчки не должны работать с локальными копиями файлов .dbc, поскольку изменения, которые они могут делать в базе данных, не будут отрадены в других версиях файла у других разработчиков.
Если вам необходимо изменить файл базы данных (.dbc), отметьте следующие ограничения:
-
Разработчики не могут изменять один и тот же элемент базы данных (такой как структура таблицы, представление или соединение) одновременно. Когда разработчик изменяет элемент базы данных, Visual FoxPro блокирует его вход в файле .dbc ; другие пользователи могут считывать информацию этого входа (это действительно так, они могут выпускать команду USE), но они не могут изменять ее (MODIFY STRUCTURE).
-
Если элемент базы данных находится в пользовании, вы не можете изменять его структуру. Например, если один разработчик имеет таблицу открытой для работы, никто более не может изменять ее структуру.
-
Если вы вызываете функцию DBSETPROP() для изменения свойств базы данных, то эта фукция блокирует обновляемый объект. Если в этом случае будет наблюдаться конфликт блокировок, DBSETPROP() следует правилам, установленным с помощью команды SET REPROCESS.
Работа с представлениями и соединениями
Представления и соединения работают несколько иначе по сравнению с таблицами. Когда вы впервые определяете представление, Visual FoxPro использует таблицы базы данных, но не блокирует их. Однако, поскольку таблицы находятся в использовании, другие разработчики не могут изменять их структуру.
С момента, когда вы впервые сохоаните новое представление или определение соединения, Visual FoxPro блокирует его монопольно до тех пор, пока вы не закроете дизайнер представлений или соединений. Другими словами, насколько долго вы держите представления или соединения открытыми в дизайнерах, настолько долго они заблокированы монопольно. Пока представление заблокировано, никто другой не сможет изменить его.
Когда вы используете представление, его структура кэшируется локально. Это гарантирует, что если представление модифицировалось во время использования его вами — например, если вы вызвали REFRESH( ) или REQUERY( ) — ваши форма или отчет будут продолжать корректно исполняться.