Отправка запросов SOAP с помощью клиента Visual Studio 2005 (Visual Basic)
В будущей версии Microsoft SQL Server эта возможность будет удалена. Избегайте использования этой возможности в новых разработках и запланируйте изменение существующих приложений, в которых она применяется.
Пример в этом подразделе похож на пример в подразделе «Отправка запросов SOAP с помощью клиента Visual Studio 2005 (C#)». Единственное различие состоит в том, что этот пример написан на языке Visual Basic. Поэтому в подразделе приводится только необходимый исходный код и шаги для создания примера.
Создание рабочего образца
Так как создание этого образца содержит много шагов, приложение разделено на четыре части:
Часть 1. Выполнение хранимой процедуры.
Часть 2. Выполнение SQL-запроса без параметров.
Часть 3. Выполнение SQL-запроса с параметрами.
Часть 4. Выполнение пользовательской функции.
В каждой части содержится набор инструкций. В конце каждой части работу приложения можно проверить.
Создание необходимого класса учетных записей-посредников
Создайте папку на компьютере для этого приложения.
На клиентском компьютере из группы программ Microsoft Visual Studio 2005 запустите Microsoft Visual Studio 2005.
Выберите Создать проект.
Выберите Visual Basic Projects в качестве типа проекта Project Type.
В текстовом поле Name укажите NativeSOAPApp2.
В текстовом поле Location укажите путь к папке, куда необходимо сохранить проект.
Выберите Windows Application в качестве шаблона и нажмите кнопку ОК.
В окне обозревателя решений щелкните правой кнопкой мыши элемент Ссылки и выберите пункт Добавить веб-ссылку. Другим способом добавления веб-ссылки является выбор из меню Project пункта Add Web Reference.
В окне Address введите https://Server/sql?wsdl, где Server — это имя сервера, и нажмите клавишу ВВОД. Если формирование WSDL-документа завершилось успешно, можно увидеть описание конечной точки. В этот момент выберите AddReference. Это действие создает необходимые классы-посредники, позволяющие вызывать методы в WSDL-документе.
Часть 1. Выполнение хранимой процедуры.
В этой части приложение запрашивает веб-метод GetCustomerInfo.
Добавьте на форму Form1 текстовое поле (textBox1), кнопку (button1) и список (listBox1).
Щелкните правой кнопкой мыши текстовое поле и выберите пункт Свойства. Измените значение Text с textBox1 на 1. Это значение идентификатора клиента по умолчанию.
Щелкните правой кнопкой мыши кнопку button1 и выберите пункт Свойства.
Измените значение свойства Text с button1 на ExecSP.
Измените значение свойства (name) на ExecSP.
Щелкните правой кнопкой мыши список listBox1 и выберите пункт Свойства. Измените значение свойства HorizontalScrollbar на True.
Дважды щелкните ExecSP.
Скопируйте код из раздела «Листинг кода Visual Basic для ExecSP» в эту функцию.
Обновите код. Замените ссылки на server именем узла, определенным во время создания конечной точки с помощью инструкции CREATE ENDPOINT.
Сохраните и скомпилируйте проект. Дополнительные сведения см. в предыдущем разделе «Компиляция кода»
Часть 2. Выполнение SQL-запроса без параметров.
В этой части клиентское приложение выполняет нерегламентированный запрос (запрос FOR XML), который получает имена трех работников из таблицы Employee в базе данных AdventureWorks.
На вкладке [Design] на форму Form1 добавьте еще одну кнопку (button1).
Щелкните правой кнопкой мыши эту кнопку и выберите пункт Свойства.
Измените значение свойства Text с button1 на ExecBatchFindAllEmps.
Измените значение свойства (name) на ExecBatchFindAllEmps.
Дважды щелкните ExecBatchFindAllEmp.
Скопируйте код из раздела «Листинг кода Visual Basic для FindAllEmps7» в эту функцию.
Обновите код. Замените ссылки на server именем узла, определенным во время создания конечной точки с помощью инструкции CREATE ENDPOINT.
Сохраните и скомпилируйте проект. Дополнительные сведения см. в предыдущем разделе «Компиляция кода»
Часть 3. Выполнение SQL-запроса с параметрами.
Эта часть аналогична предыдущей, за исключением того, что SOAP-запрос для нерегламентированного запроса включает параметр запроса. Запрос FOR XML запрашивает сведения о сотруднике по указанному идентификатору.
На вкладке [Design] на форму Form1 добавьте еще одну кнопку (button1).
Щелкните правой кнопкой мыши эту кнопку и выберите пункт Свойства.
Измените значение свойства Text с button1 на ExecBatchFindAnEmp.
Измените значение свойства (name) на ExecBatchFindAnEmp.
Дважды щелкните ExecBatchFindAnEmp.
Скопируйте код из раздела «Листинг кода Visual Basic для FindAnEmp» в эту функцию.
Обновите код. Замените ссылки на server именем узла, определенным во время создания конечной точки с помощью инструкции CREATE ENDPOINT.
Сохраните и скомпилируйте проект. Дополнительные сведения см. в предыдущем разделе «Компиляция кода».
Часть 4. Выполнение пользовательских функций.
В этой части клиентское приложение отправляет SOAP-запрос к веб-методу UDFReturningScalar. Веб-метод соответствует определяемой пользователем функции, отправляющей целочисленное значение.
На вкладке [Design] на форму Form1 добавьте еще одну кнопку (button1).
Щелкните правой кнопкой мыши эту кнопку и выберите пункт Свойства.
Измените значение свойства Text с button1 на ExecUDFReturningScalar и
измените значение свойства (name) на ExecUDFReturningScalar.
Дважды щелкните ExecUDFReturningScalar.
Скопируйте код из раздела «Листинг кода Visual Basic для ExecUDF» в эту функцию.
Обновите код. Измените ссылки на сервер по имени узла, определенного во время создания конечной точки с помощью инструкции CREATE ENDPOINT.
Сохраните и скомпилируйте проект. Дополнительные сведения см. в предыдущем разделе «Компиляция кода».
Так как конечная точка задает встроенную проверку подлинности, в коде появляется следующая строка: proxy.Credentials = System.Net.CredentialCache.DefaultCredentials.
При использовании проверки подлинности SQL Server рекомендуется удалить эту строку и заменить ее кодом, который реализует заголовки WS-Security для предоставленных учетных данных проверки подлинности SQL Server. Дополнительные сведения см. в разделе Проверка подлинности SQL Server по протоколу SOAP.
Примечание |
---|
При использовании проверки подлинности SQL Server или обычной проверки подлинности SQL Server требует использования протокола SSL, чтобы обеспечить безопасную зашифрованную передачу учетных данных пользователя, которые в противном случае будут передаваться открытым текстом. Дополнительные сведения о включении использования протокола SSL с конечными точками HTTP см. в разделе Настройка сертификата для использования протоколом SSL. |
Компиляция кода
При установке SQL Server устанавливается платформа .NET Framework 2.0. Эти инструкции компиляции используют последнюю версию платформы .NET Framework (наибольший номер в папке \WINDOWS\Microsoft.NET\Framework).
Компиляция кода
- Сохраните весь проект.
Откройте командную строку и перейдите в папку, где был сохранен проект.
Из этой папки скопируйте файл Reference.vb из подпапки Web Reference\Server (например, «Web Reference\Server\Reference.vb»). Файлы Form1.vb и Reference.vb должны быть в одной папке.
Скомпилируйте код и укажите имя исполняемого EXE-файла. Например, если имя исполняемого файла NativeSOAPApp2.exe, командная строка будет такой:
\WINDOWS\Microsoft.NET\Framework\v2.0.xxxxx\vbc.exe /out:NativeSOAPApp2.exe /r:System.dll /r:System.Data.dll /r:System.Xml.dll /r:System.Web.Services.dll /r:Microsoft.VisualBasic.dll /r:System.Drawing.dll /r:System.Windows.Forms.dll /m:Form1 Form1.vb Reference.vb
xxxxx является номером папки, который соответствует версии платформы .NET Framework.
В результате в текущем каталоге создается исполняемый объект (NativeSOAPApp2.exe).
Примечание При использовании более ранней версии платформы .NET Framework возможно возникновение ошибки времени выполнения. В этом случае попытайтесь обновить хранимую процедуру GetCustomerInfo путем добавления предложения FOR XML AUTO в конец инструкции SELECT следующим образом.
SELECT TOP 3 SalesOrderID, OrderDate FROM SalesOrderHeaderWHERE CustomerID = @CustomerIDFOR XML AUTO
Результаты выполнения хранимой процедуры отображаются в списке.
См. также