Диалоговое окно 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 при закрытии представления. При этом представления верхнего уровня закрываются первыми, поэтому вам придется обновлять представления с каждого верхнего уровня на каждый последующий нижний уровень. После закрытия последнего (самого нижнего уровня) представления базовые таблицы для данных представлений будут содержать полный список всех выполненных обновлений.