Ваше клиент-серверное приложение может обращаться к данным на сервере с помощью:

Удаленные представления обеспечивают наиболее обший и простой способ для обращения и обновления удаленных данных. Мастера переноса (upsizing wizards) могут автоматически создавать удаленные представления в вашей базе данных как часть переноса или же вы можете использовать Visual FoxPro для создания удаленных представлений после переноса. Для получения более подробной информации об удаленных представлениях смотрите описание задачи Как: создавать удаленные представления.

Технология SQL pass-through позволяет вам посылать предложения SQL непосредственно серверу. Предложения SQL pass-through, вследствие того, что они исполняются на back-end сервере, представляют собой мощный способ увеличить производительность ваших клиент-серверных приложений. В приведенной ниже таблице производится сравнение удаленных представлений с SQL pass-through.

Сравнение удаленного представления с технологиями SQL Pass-Through
Удаленное представление SQL Pass-Through

Основано на предложении SQL SELECT.

Основано на любом родном серверном предложении SQL, позволяя исполнение предложения определения данных или хранимых процедур на удаленном сервере.

Может быть использовано в качестве источника данных для элементов управления в design time.

Не может быть использовано в качестве источника данных для элементов управления.

Нет возможности исполнить команд DDL (data definition language - язык определения данных) на источнике данных .

Предоставляет метод для использования команд DDL на источнике данных.

Извлекает один набор результатов.

Извлекает один или более наборов результатов.

Обеспечивает встроенное управление соединением.

Требует явного управления соединением.

Обеспечивает встроенную по умолчанию информацию для обновлений, вставок и удалений.

Не обеспечивает информацией по умолчанию.

Обеспечивает явное исполнение SQL и извлечение данных.

Обеспечивает явное исполнение SQL и управление извлечением результата.

Не обеспечивает обслуживание транзакций.

Обеспечивает явное обслуживание транзакций.

Хранит свойства на постоянной основе в базе данных.

Обеспечивает временные свойства для курсора SQL pass-through, основанные на свойствах сессии.

Использует асинхронное прогрессивное извлечение во время исполнения SQL.

Полностью поддерживает программируемое асинхронное извлечение.

Технология SQL pass-through предоставляет перечисленные ниже преимущества по сравнению с удаленными представлениями:

Запросы SQL pass-through, кроме того, имеют и ряд недостатков:

Независимо от того, используете ли вы удаленные представления или SQL pass-through, вы можете запрашивать и обновлять удаленные данные. Во многих приложениях вы можете использовать как удаленные представления, так и SQL pass-through.

Использование функций SQL Pass-Through

Для использования SQL pass-through с целью соединения с удаленным ODBC источником данных, вы должны сначала вызвать функцию Visual FoxPro SQLCONNECT() для создания соединения. Затем вы можете использовать функции Visual FoxPro SQL pass-through для посылки удаленному источнику данных команд на исполнение.

Для использования функций Visual FoxPro SQL pass-through

  1. Убедитесь, что ваша система способна подключить ваш компьютер к вашему источнику данных. Используйте тестовую утилиту, такую как ODBC Test for ODBC.

  2. Установите соединение с вашим источником данных с помощью функции SQLCONNECT() или SQLSTRINGCONNECT().

    Например, если вы соединяете Visual FoxPro к источнику данных SQL Server sqlremote, вы можете зарегистрироваться с помощью приведенной ниже команды:

     CopyCode imageСкопировать код
    nConnectionHandle = SQLCONNECT('sqlremote','<userid>','<password>')
    NoteЗамечание

    Вы можете, кроме того, для соединения посредством именованного соединения использовать функцию SQLCONNECT().

  3. Используйте функции Visual FoxPro SQL pass-through для извлечения данных в курсоры Visual FoxPro и обрабатывайте полученные данные с помощью стандартных команд и функций Visual FoxPro.

    Например, вы можете послать запрос таблице authors и посмотреть выходной курсор с помощью приведенной ниже команды:

     CopyCode imageСкопировать код
    ? SQLEXEC(nConnectionHandle,"select * from authors","mycursorname")
    BROWSE
  4. Отсоединитесь от источника данных с помощью функции SQLDISCONNECT() function.

Смотрите также