Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

Введение в ADO+ (FAQ)

div.main {margin-left: 20pt; margin-right: 20pt}

Введение в ADO+ (FAQ)


Сартин Вячеслав


Что такое ADO+?


ADO+ - это новое поколение технологии доступа к данным от Microsoft. ADO+ была разработана с учетом распределенных и интернет приложений. ADO+ обеспечивает мощную поддержку XML и автономную обработку данных.

В настоящие время ADO+ доступна как часть NGWS платформы. В Visual Studio.NET реализована полная поддержка для ADO+.

Чем отличается ADO+ от ADO?


Основное отличие ADO+ от ADO - это отсутствие объекта Recordset. По заявлению Microsoft, ADO+ не заменяет, а дополняет общую технологию доступа к данным, вы сможете использовать вместе, ADO и ADO+ в вашем приложении.

Какой общий доступ к данным Namespaces в NGWS?


Обратите внимание: что Namespaces, это только слова из библиотеки NGWS. Вам потребуется импортировать библиотеки ADO перед использованием их классов, наподобие Java или C/C++.

Ниже перечислены имена общего доступа в Namespaces:

System.Data System.Data.ADO System.Data.SQL System.Data.XML System.Data.SQLTypes

Какие основные объекты в ADO+?


Этот примет позволит получить Вам представление о том как создавать каталоги и подкаталоги.

Основные объекты ADO+:

Connection Command DataReader DataSet DataSetCommand

Как подключится к базе данных?


Способ подключения к базе данных очень похож на используемый в ADO. Для этого используется объект Connection. Посмотрите на фрагмент кода приведенный ниже:

Dim cnn As ADOConnection cnn = New ADOConnection("OLEDB_connection_string") cnn.Open() cnn.Close()

Как использовать объект Command?


Объект Command используется также как и в ADO.

Dim cmd As ADOCommand cmd = New ADOCommand("my_query", cnn) cmd.Execute() cmd.CommandText = "new_query"

Как использовать объект Command для получения записей?


Вы можете выбирать записи используя объект DataReader объекта Command.

Dim dr As ADODataReader cmd.Execute(dr) Do While dr.Read() Response.Write(dr("field1")) Loop dr.Close()

Как использовать объект Command для выполнения хранимых процедур?


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

Dim cmd As ADOCommand Dim p As ADOParameter P = New ADOParameter("name", type, width) p.Value = "myValue" cmd.Parameters.Add(p) cmd.Execute()

Что такое DataSetCommand и DataSet?


DataSetCommand подобна объекту Command, но используется для заполнения набора данных.

Dim dscmd As ADODataSetCommand Dim ds As ADODataSet dscmd = New ADODataSetCommand("sql", cnn) ds = New DataSet() dscmd.FillDataSet(ds, "recordset_name_in_ds")

В приведенном примере, DataSetCommand открывает соединение как обычно. Метод FillDataSet используется для заполнения набора данных.

Как работать с DataSet?


Dim row As DataRow For Each row In ds.Tables("recordset_name_in_ds").Rows row.Columns("field1").ToString() Next

Как добавить новую запись?


Dim row As DataRow row = ds.Tables("recordset_name_in_ds").NewRow() row("field1") = "value1" row("field1") = "value1" ds.Tables("recordset_name_in_ds").Rows.Add(row) dscmd.Update(ds, "recordset_name_in_ds")

Как изменять данные?


Dim row As DataRow row = ds.Tables("recordset_name_in_ds").Rows(i) row("field1") = "value1" row("field1") = "value1" dscmd.Update(ds, "recordset_name_in_ds")

Как найти строку?


row = ds.Tables("recordset_name_in_ds").Find("Field1=value1")

Как удалить строку?


ds.Tables("recordset_name_in_ds").Rows(i).Delete dscmd.Update(ds, "recordset_name_in_ds")

Как фильтровать данные в наборе данных?


Вы можете фильтровать данные согласно определенному условию, используя свойство RowFilter объекта DataView.

Dim view As DataView view = new DataView(ds.Tables("users")) view.RowFilter = "user_id='bipin'"

Как обрабатывать ошибки?


Для обработки ошибок можно применить несколько способов. Наиболее часто для этого применяется блок Try...Catch. ADO+ обеспечивает механизм способный устанавливать собственное сообщение об ошибке для каждой строки.

Dim cnn As ADOConnection Dim cmd As ADODataSetCommand Dim ds As DataSet Dim errors As DataRow() Public Sub Page_load(sender as Object, evt as EventArgs) cnn = New ADOConnection("dsn=sample") cnn.Open() ds = New DataSet() cmd = New ADODataSetCommand("select * from users", cnn) cmd.FillDataSet(ds, "users") ds.Tables("users").Rows(0).RowError = "Error 1" ds.Tables("users").Rows(1).RowError = "Error 2" If ds.Tables("users").HasErrors Then errors = ds.Tables("users").GetErrors() For i = 0 To errors.Length -1 Response.Write("<BR>") Response.Write(errors(i), ("user_id").ToString() & _ "----" & errors(i).RowError) Response.Write("<BR>") Next End If End Sub

В приведенном коде устанавливается сообщение об ошибке в зависимости от результата проверки. Это позволяет Вам использовать общий обработчик ошибок. Так же, обратите внимание на то, что свойство RowError устанавливается в ADO+ если имеется реальная ошибка в базе данных.

Как управлять транзакциями?


Для управления транзакциями в ADO+ существуют методы BeginTransaction, CommitTransaction и RollBackTransaction. Эти методы очень похожи на эквивалентные в ADO. Посмотрите на ниже приведенный пример:

Try cnn.Open() cnn.BeginTransaction() cmd = New ADOCommand("insert into users" & _ "(user_id, name, password, email)" & _ " values('aaa','aaa','aaa','aaa')",cnn) cmd.Execute() cmd.CommandText = "insert into users" & _ "(user_id,name,password,email)" & _ " values('bbb','bbb','bbb','bbb')" cmd.Execute() cnn.CommitTransaction() Catch myException As Exception cnn.RollBackTransaction() Response.Write(myException.ToString()) End Try

  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте