Затем создайте код подпрограммы btnNonQuery_Click, который приведен в листинге 4.4.
Private Sub btnNonQuery_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnNonQuery.Click
' Создание экземпляра объекта Connection.
Dim cnn As OleDbConnection = New OleDbConnection( _
"provider=SQLOLEDB;server=localhost;uid=sa;database=pubs")
Dim sql As String Dim result As Integer
' Создание экземпляра объекта Command.
Dim cmd As OleDbCommand = New OleDbCommand()
' Указание подключения и текста команды
cmd.Connection = cnn
cmd.CommandType = CommandType.Text
' Указание команды SQL для создания новой таблицы
sql = "CREATE TABLE tblStateZipCodes (" & _
"ZipCode char (5) NOT NULL, " & _
"State char (2) NOT NULL) "
MsgBox(sql) cmd.CommandText = sql
' Открытие подключения перед вызовом метода ExecuteNonQuery.
cnn.Open()
' Для обработки исключительных ситуаций нужно поместить
' код в блоке Try-Catch, потому что неудачное выполнение
' команды ТАКЖЕ генерирует ошибку времени выполнения.
Try
result = cmd.ExecuteNonQuery()
Catch ex As Exception
' Отображение сообщения об ошибке.
MessageBox.Show(ex.Message)
End Try
' Вывод результатов выполнения команды.
If result = -1 Then
MessageBox.Show("Command completed successfully")
' MessageBox.Show("Команда выполнена успешно")
Else
MessageBox.Show("Command execution failed")
' MessageBox.Show("Команда не выполнена")
End If
cnn.Close()
End Sub
После запуска полученного приложения и щелчка на кнопке ExecuteNonQuery сначала появится диалоговое окно с сообщением об успешном выполнении команды. Правильность выполнения команды можно проверить, просматривая список таблиц базы данных pubs в диалоговом окне Server Explorer интегрированной среды разработки Visual Studio .NET (которое описывается в главе 1, "Основы построения баз данных") или в программе SQL Server Enterprise Manager (которая рассматривается в главе 3, "Знакомство с SQL Server 2000").
При повторном щелчке на кнопке ExecuteNonQuery появятся два диалоговых окна с сообщениями: одно с сообщением о возникшей исключительной ситуации (оно создается блоком обработки исключительных ситуаций try-catch), а другое — о неудачном выполнении команды.
Аналогичным способом можно создать представление или хранимую процедуру. Для создания представления EmployeeJobs_view, которое возвращает отсортированный по должностям перечень сотрудников с указанием их имен, фамилий и должностей, замените команду SQL в листинге 4.4 приведенной ниже командой.
sql = "CREATE VIEW EmployeeJobs_view AS" & _
"SELECT TOP 100 PERCENT jobs. job_desc," & _
"employee.fname, employee.lname" &_
"FROM jobs INNER JOIN" & _
"employee ON jobs. job_id = employee. job_id &_
"ORDER BY jobs.job_desc"
Для включения предложения ORDER BY в определение представления с сортировкой результатов нужно включить в команду SELECT предложение ТОР.
Для создания хранимой процедуры, которая принимает один параметр и возвращает значение, нужно изменить эту команду SQL, как показано в листинге 4.5.
sql = "CREATE PROCEDURE AuthorsInState1 @State char(2)" & _
" AS declare @result int" & _