Диалоговое окно Create New Data Source
Диалоговое окно Create New Data Source
Диалоговое окно ODBC Data Source Administrator
Диалоговое окно ODBC Data Source Administrator
Диалоговое окно определения параметров соединения
Диалоговое окно определения параметров соединения
Удаленные представления данных
Информация, используемая в разрабатываемом приложении, может находиться не только в таблицах Visual FoxPro, но и в электронных таблицах Microsoft Excel, в текстовом виде, в файлах базы данных Paradox или же на сервере базы данных типа SQL Server. Все такие данные называются удаленными данными, несмотря на то, что они могут находиться даже на одном компьютере с Visual FoxPro.
Для доступа к удаленным данным используется стандартный протокол доступа к базам данных (ODBC). Все базы данных, а также электронные таблицы имеют драйверы ODBC, с помощью которых вы можете соединяться с ними и получать доступ к их содержимому.
Определение источника данных ODBC
После установки драйверов ODBC вы можете определить для него один или несколько источников данных ODBC.
Для добавления источника данных ODBC выполните следующие действия:
Выберите на Панели управления Windows пиктограмму Источники данных (ODBC). Далее в диалоговом окне ODBC Data Source Administrator (Администрирование источника данных ODBC) (рис. 22.1) нажмите кнопку Add (Добавить). На экране появится диалоговое окно Create New Data Source (Создать новый источник данных) (рис. 22.2). Выберите нужный драйвер из представленного в диалоговом окне списка и нажмите кнопку Готово. В следующем диалоговом окне ODBC Setup (Установка ODBC) (рис. 22.3) установите необходимые значения параметров соединения и нажмите кнопку ОК.
Именованное соединение
Именованное соединение
Удобным средством для работы с удаленными данными является именованное соединение, которое хранится в базе данных и на которое можно ссылаться по имени при создании удаленного представления.
Именованные соединения
Именованные соединения
Для изменения параметров именованного соединения выберите требуемое соединение и нажмите кнопку Modify (Модифицировать). Откроется окно конструктора соединений, в котором вы можете изменить любые параметры соединения.
Использование команды CREATE SQL VIEW
Использование команды CREATE SQL VIEW
Для создания удаленных представлений данных вы можете использовать команду CREATE SQL VIEW, синтаксис которой приведен ниже:
CREATE SQL VIEW [имяПредставления] [REMOTE]
[CONNECTION имяСоединения
|CONNECTION имяИсточникаДанных]
Для создания удаленного представления данных необходимо указать признак удаленного представления с помощью ключевого слова REMOTE. Имя удаленного соединения или источника данных задается с помощью параметра CONNECTION.
Вы также можете задать определение представления с помощью SQL выражения, которым может быть любой допустимый оператор SQL SELECT, который не следует заключать в кавычки.
Например, чтобы создать удаленное представление данных для таблицы Goods, расположенной в базе данных Microsoft SQL Server и для которой определено соединение SQLServer, вы можете использовать следующие команды:
OPEN DATABASE SALES
CREATE SQL VIEW SQLServerGoods
CONNECTION SQLServer
AS SELECT * FROM GOODS
Использование конструктора представлений
Использование конструктора представлений
Для создания удаленного представления с помощью конструктора представлений в диспетчере проектов из списка Databases (Базы данных) выберите раздел Remote Views (Удаленные представления), а затем нажмите кнопку New (Новый). На экране появится диалоговое окно выбора источника данных Select Connection or Data Source (Выбрать соединение или источник данных).
Выберите источник данных или соединение, введите идентификатор и пароль доступа к базе данных. Далее, как и при создании локального представления данных, выберите используемые в представлении данных таблицы и поля выбранных таблиц.
При создании удаленных представлений данных необходимо обратить внимание на вкладку Update Criteria (Критерии обновления), в которой задаются условия обновления представлений.
На этой вкладке из списка Table (
Использование мастера удаленных представлений
Использование мастера удаленных представлений
Мастер удаленных представлений создает представления с использованием удаленных данных (ODBC). Предлагая ответить на ряд простых вопросов, мастер помогает вам выполнить процедуру в несколько этапов; при этом вы должны задать базы данных, таблицы и поля, которые хотите использовать в своем представлении. Перед этим вы должны создать базу данных, в которой будет сохранено представление, а также определить источник данных или соединение.
Для запуска мастера удаленных представлений в меню Tools (Сервис) выберите команду Wizards (Мастера), а затем опцию Query (Запрос), потом в открывшемся диалоговом окне Wizard Selection (Выбор мастера) выберите значение Remote View Wizard (Мастер удаленного представления) (рис. 22.9).
Комбинирование в представлении локальных и удаленных данных
Комбинирование в представлении локальных и удаленных данных
Актуальной задачей при разработке приложений, использующих удаленные данные, является комбинирование в представлении локальных и удаленных данных. В Visual FoxPro данная задача решается достаточно просто. Прежде всего, вы должны создать удаленные представления для данных, которые будут использоваться совместно с локальными.
Затем в диспетчере проектов выберите раздел Local Views (Локальные представления) и нажмите кнопку New (Новый), чтобы открыть конструктор представлений. Добавьте в новое представление любую комбинацию таблиц, локальных и удаленных представлений. Например, вы можете объединить в одном представлении данные из локальной таблицы Ordsaied и удаленного представления данных Microsoft SQL, содержащего список товаров.
Для создания комбинированного представления вы можете использовать также команду CREATE SQL VIEW, Например, чтобы создать локальное представление, комбинирующее информацию из локальной таблицы ordsaiem и удаленной таблицы customer (расположенной на сервере базы данных SQL Server), используйте следующий код:
OPEN DATABASE SALES
CREATE SQL VIEW localORDSALEM _ remoteCUSTOMER;
AS SELECT * FROM SQLSERVERCUSTOMER, ORDSALEM
WHERE SQLSERVERCUSTOMER.iCdCustcmer =
ORDSALEM. iCdCustomer
Конструктор соединений
Конструктор соединений
Окно конструктора соединений (рис. 22.5) позволяет вам задать параметры именованного соединения в интерактивном режиме.
Настройка параметров удаленных представлений и соединений
Настройка параметров удаленных представлений и соединений
Область Remote view defaults (Удаленное представление по умолчанию) содержит параметры (табл. 22.5), используемые по умолчанию при создании удаленных представлений.
Настройка параметров удаленных представлений и соединений в диалоговом окне Options
Настройка параметров удаленных представлений и соединений в диалоговом окне Options
Прежде чем запускать мастера удаленных представлений, вы можете установить опции для принимаемых по умолчанию параметров удаленных представлений и соединений, используя вкладку Remote Data (Удаленные данные) диалогового окна Options (Параметры) (рис. 22.8).
Настройка представления с помощью словаря базы данных
Настройка представления с помощью словаря базы данных
Так как сведения о представлении хранятся в словаре базы данных, вы можете определить для него следующие свойства:
заголовок поля; комментарии для представления и его полей; значения полей, принимаемые по умолчанию; правила проверки достоверности данных на уровне поля и записи,Для определения свойств полей представления данных в окне конструктора представления перейдите на вкладку Fields (Поля) и нажмите кнопку Properties (Свойства). Откроется диалоговое окно View Field Properties (Показать свойства поля).
Раскрывающийся список Field (Поле) в этом диалоговом окне содержит перечень всех полей представления. Для определения свойств поля необходимо сначала выбрать его из этого списка.
В области Field validation (Проверка достоверности данных поля) вы можете задать условия проверки достоверности данных на уровне поля при вводе данных (табл. 22.9).
Окно конструктора соединений
Окно конструктора соединений
Область Specify data source (Определить источник данных) содержит переключатели Data source, userid, password (Источник данных, идентификатор пользователя, пароль) и Connection string (Строка соединения), определяющие способ соединения с источником данных. При выборе первой опции в области отображаются поля ввода (табл. 22.1).
Определение источника данных ODBC
Определение источника данных ODBC Именованное соединение Конструктор соединений Настройка параметров удаленных представлений и соединений в диалоговом окне Qptions Создание удаленного представления данных Использование мастера удаленных представлений Использование конструктора представлений Использование команды CREATE SQL VIEW Особенности использования удаленных представлений данных для электронных таблиц Microsoft Excel Совместно используемые соединения Комбинирование в представлении локальных и удаленных данных Настройка представления с помощью словаря базы данных
Определение отношения между таблицами
Определение отношения между таблицами
Особенности использования удаленных представлений данных для электронных таблиц Microsoft Excel
Особенности использования удаленных представлений данных для электронных таблиц Microsoft Excel
При использовании ODBC-драйвера Microsoft Excel для создания удаленного представления данных создается таблица Visual FoxPro или курсор. Эта таблица содержит выбранные данные из электронной таблицы Microsoft Excel. Однако, если ячейка таблицы содержит текст, в таблице Visual FoxPro он отображается в виде Memo-поля.
Это связано с тем, что ODBC-драйвер передает текстовые данные в виде строки длиной 255 символов. Так как Visual FoxPro не может отображать в текстовом поле более 254 символов, любые текстовые данные помещаются в Memo-поле. Приемлемым решением этой проблемы является создание новых текстовых полей и копирование в них информации из Memo-полей командой, аналогичной следующей:
REPLACE ALL sqlchar WITH TRIM(sqlntemo)
Отображение списка удаленных представлений
Отображение списка удаленных представлений
На следующих двух шагах создания удаленного представления укажите порядок сортировки информации и фильтр для ограничения выбираемых данных. На последнем шаге укажите режим завершения процесса создания и введите имя создаваемого удаленного представления. Вы можете просто сохранить его, открыть для просмотра или открыть в конструкторе представлений. После создания удаленного представления его имя появится в разделе Remote Views (Удаленные представления) (рис. 22.14). После того как удаленное представление сохранено, его можно открыть и модифицировать в конструкторе представлений, как любое другое представление.
Для просмотра данных созданного удаленного представления выберите его из раздела Remote Views (Удаленные представления) и нажмите кнопку Browse (Обзор).
Раздел Connections списка Database
Раздел Connections списка Database
Вы также можете устанавливать свойства именованного соединения для оптимизации связи между Visual FoxPro и удаленным источником данных. При активизации удаленного представления его соединение становится каналом, ведущим к удаленному источнику данных.
Для создания именованного соединения выполните любое из следующих действий:
в диспетчере проектов из списка Databases (Базы данных) выберите раздел Connections (Соединения) (рис. 22.4), затем нажмите кнопку New (Новый), чтобы вызвать конструктор соединений; откройте базу данных и используйте команду CREATE CONNECTION, чтобы открыть конструктор соединений; используйте команду CREATE CONNECTION (Создать соединение) с именем соединения в качестве параметра.Совместно используемые соединения
Совместно используемые соединения
При создании удаленных представлений вы можете воспользоваться совместно используемыми соединениями. В этом случае одно активное соединение используется как информационный канал для нескольких удаленных представлений.
При совместном использовании активного соединения:
уменьшается нагрузка на ресурсы системы; уменьшается количество связей на удаленном сервере; уменьшаются накладные расходы на связи с серверами.Для определения разделяемого соединения воспользуйтесь любым из следующих способов:
в диспетчере проектов выберите в меню Tools (Сервис) команду Options (Параметры). Откройте вкладку Remote Data (Удаленные данные), установите флажок Share Connection (Совместное подключение), расположенный в области Remote View Defaults (Значение по умолчанию для удаленных представлений), и нажмите ОК; в окне конструктора представлений в меню Query (Запрос) выберите команду Advanced Options (Дополнительные параметры) и в открывшемся диалоговом окне Advanced Options (Дополнительные параметры) установите флажок Share Connection (Совместное подключение); используйте команду CREATE SQL VIEW с ключевым словом SHARE.
Создание удаленного представления данных
Создание удаленного представления данных
После того как был определен источник данных или именованное соединение, можно создать удаленное представление. Для этого выполните одно из следующих действий:
откройте базу данных и вызовите мастера удаленных представлений; в диспетчере проектов из списка Databases (Базы данных) выберите раздел Remote Views (Удаленные представления), затем нажмите кнопку New (Новый) для вызова конструктора представлений; используйте команду CREATE SQL VIEW с предложением REMOTE и/или CONNECTION.Рассмотрим каждый из этих вариантов создания удаленного представления данных на примерах использования электронной таблицы Microsoft Excel и базы данных Microsoft SQL Server.
Назначение полей ввода области Specify data source
Таблица 22.1. Назначение полей ввода области Specify data source
Поле | Назначение |
Data source
(Источник данных) |
Имя источника данных из списка установленных источников данных ODBC |
Userid
(Идентификатор пользователя) |
Идентификатор пользователя для выбранного источника данных |
Password (Пароль) | Пароль пользователя |
Database
(База данных) |
Имя базы данных |
При выборе переключателя Connection string (Строка соединения) вместо приведенных выше полей ввода отображается только одно поле ввода Connect string (Строка соединения), в котором можно ввести строку соединения с источником данных.
Кнопка Verify Connection (Проверить соединение) предназначена для проверки соединения с указанным источником данных. Кнопка New Data Source (Новый источник данных) позволяет определить новый источник данных непосредственно из конструктора соединений.
Область Display ODBC login prompts (Отображение окна доступа к ODBC источнику) содержит переключатели, определяющие, когда будет открываться диалоговое окно Data Source Login (Доступ к источнику данных) (табл. 22.2).
Переключатели области Display ODBC login prompts
Таблица 22.2. Переключатели области Display ODBC login prompts
Наименование | Назначение |
When login info is not specified (Когда параметры доступа не определены) | Диалоговое окно Data Source Login (Доступ к источнику данных) открывается только в том случае, если заданный идентификатор пользователя и пароль не найдены в определении именованного соединения |
Always (Всегда) | Указывает, что Visual FoxPro всегда открывает для пользователя диалоговое окно Data Source Login (Доступ к источнику данных), в котором можно выбрать другой регистрационный идентификатор и другой пароль из числа хранящихся в именованном соединении |
Never (Никогда) | Указывает, что Visual FoxPro никогда не открывает диалоговое окно входа в базу данных |
В области Data processing (Обработка данных) определяются свойства, связанные с обработкой данных соединения (табл. 22.3).
Опции области Data processing
Таблица 22.3. Опции области Data processing
Наименование | Назначение |
Asynchronous execution
(Асинхронное выполнение) |
Задает признак асинхронного соединения |
Display warnings (Показывать предупреждения) | Задает признак отображения неперехватываемых предупреждений |
Batch processing (Пакетная обработка данных) | Задает пакетный режим обработки данных |
Automatic transactions
(Автоматические транзакции) |
Задает автоматическую обработку транзакций |
Packet size (Размер пакета данных) | Задает размер пакета данных, передаваемого от сервера базы данных |
Опции области Timeout intervals
Таблица 22.4. Опции области Timeout intervals
Наименование | Назначение |
Connection (sec)
(Соединение) |
Задает интервал тайм-аута соединения в секундах |
Query (sec) (Запрос) | Задает интервал тайм-аута запроса в секундах |
Idle (min) (Холостой режим) | Задает интервал тайм-аута холостого режима в минутах. Активные соединения по истечении этого интервала времени деактивизируются |
Wait time (ms) (Время ожидания) | Задает промежуток времени в миллисекундах, по истечении которого Visual FoxPro может определить, завершено ли выполнение оператора SQL |
Параметры удаленного представления
Таблица 22.5. Параметры удаленного представления
Параметр | Описание |
Share connection (Совместное подключение) | Указывает, что в новых представлениях будет использоваться текущее совместно используемое соединение |
Fetch memo (Выборка Memo-поля) | Указывает, что Memo-поле не будет выбираться из источника данных до тех пор, пока оно не будет активизировано в представлении данных |
SQL updates: Criteria (Критерии SQL-обновления) | Задает критерий обновления данных |
SQL updates: Method (Методы SQL-обновления) | Задает метод обновления данных |
Records to fetch at a time (Выборка записей за промежуток времени) | Задает количество записей, возвращаемых за один раз из удаленного источника данных |
Maximum records to fetch (Максимальная выборка записей за промежуток времени) | Ограничивает общее число записей, возвращаемых в представлении |
Use memo for fields >= (Использовать перевод символьных данных в Мемо-поля) | Задает условие преобразования длинных символьных полей в Memo-поля в выводе представления |
Records to batch update (Количество обновляемых одновременно записей) | Задает число записей, подлежащих обновлению в одной команде |
Область Connection defaults содержит параметры, используемые при создании именованных соединений (табл. 22.6).
Параметры именованного соединения
Таблица 22.6. Параметры именованного соединения
Параметр | Описание |
Asynchronous execution (Асинхронное выполнение) | Задает признак асинхронной обработки |
Display warnings (Показывать предупреждения) | Задает режим выдачи предупреждающих сообщений |
Batch processing (Пакетная обработка) | Обеспечивает пакетную обработку. Если установить этот переключатель, Visual FoxPro не будет возвращать результаты вызова SQLEXEC ( ) до тех пор, пока не поступят все отдельные результирующие наборы |
Automatic transactions (Автоматические транзакции)
Show login (Показывать окно приглашения) |
Определяет, каким образом соединение управляет ходом транзакций в удаленной таблице о тображает диалоговое окно ввода регистрационного приглашения только в том случае, если в определении соединения или представления не задана информация регистрации |
Connection timeout (sec) (Ожидание соединения) | Задает интервал времени (в секундах), в течение которого допускается ожидание установки соединения с удаленным сервером. Если в течение этого времени соединение не устанавливается, Visual FoxPro генерирует ошибку |
Idle timeout (min) (Холостой режим) | Задает интервал времени (в минутах), в течение которого допускается простаивание, прежде чем соединение будет прекращено. Если в течение этого времени не был сделан запрос к серверу, Visual FoxPro разрывает соединение. Однако, если сделать запрос к серверу по истечении интервала тайм-аута для соединения, Visual FoxPro автоматически попытается его восстановить |
Query timeout (sec) (Ожидание запроса) | Задает интервал времени (в секундах), в течение которого допускается ожидание от сервера ответа на запрос. Если сервер тратит на обра. ботку больше заданного числа секунд, Visual FoxPro генерирует ошибку |
Wait time (ms) (Время ожидания завершения запроса) | Задает интервал времени (в миллисекундах) между проверками на завершение запроса |
Опции области SQL WHERE clause includes
Таблица 22.7. Опции области SQL WHERE clause includes
Опция | Назначение |
Key fields only (Только ключевые поля) | Указывает, что предложение WHERE, используемое для обновления удаленных таблиц, включает только поля, входящие в список Field name (Имя поля) |
Key and updateable fields (Ключевые и доступные для изменения поля) | Указывает, что предложение WHERE, используемое для обновления удаленных таблиц, включает поля, входящие в список Field name (Имя поля), а также все обновляемые поля |
Key and modified fields (Ключевые и модифицированные поля) | Указывает, что предложение WHERE, используемое для обновления удаленных таблиц, включает поля, входящие в список Field name (Имя поля), и все остальные изменившиеся поля |
Key and timestamp (Ключевые поля и отметки времени) | Указывает, что предложение WHERE, используемое для обновления удаленных таблиц, включает первичные поля, входящие в список Field name (Имя поля), а также сравнение по отметкам времени |
В области Update using (Строка обновления) задается способ обновления полей на сервере базы данных (табл. 22.8).
Опции области Update using
Таблица 22.8. Опции области Update using
Опция | Назначение |
SQL DELETE then INSERT | Указывает, что сначала исходная запись таблицы базы данных будет удалена, а затем будет добавлена новая запись |
SQL UPDATE | Указывает, что запись таблицы базы данных будет модифицироваться |
Поля области Field validation
Таблица 22.9. Поля области Field validation
Поле | Назначение |
Rule (Правило) | Задает правило проверки достоверности данных на уровне поля |
Message
(Сообщение) |
Задает сообщение об ошибке, которое будет выдаваться, если введенные данные не согласуются с правилом уровня поля |
Default value
(Значение по умолчанию) |
Задает для поля значение по умолчанию |
Для удаленных данных правило проверки достоверности данных на уровне поля задается средствами сервера базы данных. Вы можете задать локальное правило для:
уменьшения времени отклика системы; уменьшения загрузки сетевых ресурсов; проверки данных перед их пересылкой удаленному источнику данных.Visual FoxPro не сравнивает локальное и удаленное правило проверки достоверности данных.
В области Display (Отобразить) вы можете задать условия проверки достоверности данных на уровне поля при отображении и вводе данных (табл. 22.10).
Поля области Display
Таблица 22.10. Поля области Display
Поле | Назначение |
Format (Формат) | Задает формат отображения данных. Этот формат используется в окне Browse, отчетах и формах |
Input mask (Маска ввода) | Задает маску ввода данных |
Caption (Описание) | Задает описательное имя поля. Название отображается в качестве заголовка столбца при просмотре таблицы. Оно может включать до 128 символов |
Если вы планируете использовать представление данных в формах, то можете использовать опции области Map field type to classes (Установить соответствие между типами полей и классами) для задания типа объекта управления, создаваемого в форме при размещении данного поля.
Для удаленных представлений данных вы можете определить тип и размер поля представления данных. Используйте для этого опции области Data mapping (Соответствие типов данных).
Поле редактирования Comment (Комментарий) содержит описательный комментарий о данном поле. Все, что вы здесь введете, при выборе поля будет отображено в качестве описания в нижней части диспетчера проектов.
Ввод имени пользователя и пароля
Ввод имени пользователя и пароля
Ввод имени соединения
Ввод имени соединения
Все созданные вами именованные соединения отображаются в разделе Connections (Соединения) списка Database (База данных). Например, на рис. 22.7 приведены именованные соединения с источниками данных Access, Microsoft SQL Server и Microsoft Excel.
Выбор источника данных
Выбор источника данных
Выбор мастера удаленных представлений
Выбор мастера удаленных представлений
На первом шаге вы выбираете источник данных из списка имеющихся источников данных или созданных вами именованных соединений (рис. 22.10).
Если удаленный источник данных требует идентификации пользователя, то на экране открывается диалоговое окно ввода имени пользователя и пароля (рис. 22.11).
Введите имя пользователя и пароль входа в базу данных. После этого откроется диалоговое окно выбора полей (рис. 22.12), помещаемых в создаваемое представление. Вы можете выбирать поля из нескольких таблиц или представлений базы данных, с которой вы соединились. Вначале выберите одну таблицу и перенесите поля выбранной таблицы в список Selected Fields (Выбранные поля), а затем выберите поля из другой таблицы или другого представления.
Выбор полей удаленного представления
Выбор полей удаленного представления
Если вы выберете более одной таблицы, вам необходимо определить отношения между таблицами (рис. 22.13). Для этого выберите нужные поля из приведенных списков и нажмите кнопку Add (Добавить).
Вид диалогового окна настройки параметров
Замечание
Вид диалогового окна настройки параметров соединения зависит от типа источника данных. Тем не менее, для всех источников данных необходимо в поле ввода Name (Имя) указать имя источника данных, которое в дальнейшем используется для ссылки на источник данных. Поле ввода Description (Описание) содержит краткое описание источника данных. Если при определении значений остальных полей возникнут проблемы, обратитесь к администратору базы данных, к которой вы собираетесь определить доступ.
Для определения свойств полей представления
Замечание
Для определения свойств полей представления данных вы можете использовать функцию DBSETPROP ( )
Для определения значений параметров области
Замечание
Для определения значений параметров области Data processing (Обработка данных) вы можете использовать функцию DBSETPROP ().
Область Timeout intervals (Интервалы времени) содержит опции, устанавливающие временные параметры обработки данных (табл. 22.4).
Для определения значений параметров области
Замечание
Для определения значений параметров области Data processing (Обработка данных) вы можете использовать функцию DBSETPROP ().
По умолчанию для именованного соединения задается имя Connect 1. При закрытии окна конструктора соединений открывается диалоговое окно Save (Сохранить) (рис. 22.6), предлагающее ввести подходящее имя соединения.
Если удаленный источник данных требует
Замечание
Если удаленный источник данных требует идентификации пользователя, то при открытии удаленного представления данных на экране открывается диалоговое окно ввода имени пользователя и пароля.
в многоуровневом представлении изменения отражаются
Замечание
При обновлении данных в многоуровневом представлении изменения отражаются в том представлении, на котором основано представление верхнего уровня. Если нужно обновить базовые таблицы многоуровневого представления, то необходимо применить команду TABLEUPDATE для каждого представления многоуровневой структуры.
Visual FoxPro автоматически выполняет команду
Замечание
Visual FoxPro автоматически выполняет команду TABLEUPDATE при закрытии представления. При этом представления верхнего уровня закрываются первыми, поэтому вам придется обновлять представления с каждого верхнего уровня на каждый последующий нижний уровень. После закрытия последнего (самого нижнего уровня) представления базовые таблицы для данных представлений будут содержать полный список всех выполненных обновлений.