Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Использование Microsoft OLE Provider for SQL Server для доступа к данным на SQL Server





В главе «Введение в технологию ADO» рассматривается также использование Microsoft OLE Provider for SQL Server для доступа к данным на SQL Server. Чтобы соединиться с SQL Server посредством этого провайдера, необходимо аргументу Provider свойства ConnectionString объекта ADODB.Connection присвоить значение:

SQLOLEDB

Строка подключения для этого провайдера обычно имеет следующий вид:

“Provider=SQLOLEDB; Data Source= ServerName; Initial Catalog= DatabaseName; User ID= UserName; PWD= UserPassword

В листинге 22.3 представлен код для подключения к SQL Server. Строка подключения присваивается свойству ConnectionString объектной переменной cn в строках кода 12–13.

Листинг 22.3 Открытие ADO-соединения с использованием Microsoft OLE Provider for SQL Server

1: Dim cn As ADODB.Connection

2: Dim rs As ADODB.Recordset

3:

4: Function ADODB_ConnectedSQL() As Boolean

5: ' устанавливает соединение для SQL Server

6:

7:

8: On Error GoTo err_not_connection

9:

10: Set cn = New ADODB.Connection

11: cn.Provider = "SQLOLEDB"

12: cn.ConnectionString = _

13: "DATABASE=Фирма;SERVER=NATALI;UID=Dmitry;PWD=Dmitry"

14: cn.Open

15:

16: ADODB_ConnectedSQL = True

17: Exit Function

18:

19: err_not_connection:

20: ADODB_ConnectedSQL = False

21:

22: End Function

23:

24: Sub Test_ADODB_Connected()

25: ' тестирует ADODB_Connected: устанавливает соединение и

26: ' использует данные из представления Запасы_VIEW

27:

28: Dim i As Integer, j As Integer

29:

30:

31: If ADODB_ConnectedSQL() Then

32: MsgBox "Похоже, соединение установлено..."

33: ' код, использующий установленное соединение:

34:

35: Set rs = New ADODB.Recordset

36: rs.CursorType = adOpenDynamic

37: rs.Source = "Запасы_VIEW" ‘запрос с использованием представления

38: Set rs.ActiveConnection = cn

39: rs.Open

40:

41: 'установить начальную строку таблицы:

42: j = 1

43:

44: 'записать заголовки полей в Excel-лист:

45: For i = 0 To rs.Fields.Count - 1

46: ActiveWorkbook.Sheets(1).Cells(j, i + 1).Value = _

47: rs.Fields(i).Name

48: Next

49:

50: 'записать содержимое полей в Excel-лист:

51: rs.MoveFirst

52: Do While Not rs.EOF

53: j = j + 1

54: For i = 0 To rs.Fields.Count - 1

55: ActiveWorkbook.Sheets(1).Cells(j, i + 1).Value = _

56: rs.Fields(i)

57: Next

58: rs.MoveNext

59: Loop

60:

61:

62: cn.Close ' закрыть соединение

63: Else

64: MsgBox " Что-то не получается с подключением! "

65: End If

66:

67: End Sub

В листинге 22.3 снова немного изменена процедура Test_ADODB_Connected: теперь для доступа к данным SQL Server используется представление Запасы_VIEW (см. главу 7). Результат выполнения этого кода представлен на рис. 22.10.

Рис. 22.10

Результат выполнения кода листинга 22.3

В листинге 22.4 в процедуре Test_ADODB_Connected для доступа к данным SQL Server используется хранимая процедура ИнвВедомость (см. главу 7) с параметром ‘1506’. Результат выполнения этого кода представлен на рис. 22.11.

Листинг 22.4 Открытие ADO-соединения с использованием Microsoft OLE Provider for SQL Server

1: Dim cn As ADODB.Connection

2: Dim rs As ADODB.Recordset

3:

4: Function ADODB_ConnectedSQL() As Boolean

5: ' устанавливает соединение для SQL Server

6:

7:

8: On Error GoTo err_not_connection

9:

10: Set cn = New ADODB.Connection

11: cn.Provider = "SQLOLEDB"

12: cn.ConnectionString = _

13: "DATABASE=Фирма;SERVER=NATALI;UID=Dmitry;PWD=Dmitry"

14: cn.Open

15:

16: ADODB_ConnectedSQL = True

17: Exit Function

18:

19: err_not_connection:

20: ADODB_ConnectedSQL = False

21:

22: End Function

23:

24: Sub Test_ADODB_Connected()

25: ' тестирует ADODB_Connected: устанавливает соединение и

26: ' использует хранимую процедуру ИнвВедомость

27:

28: Dim i As Integer, j As Integer

29:

30:

31: If ADODB_ConnectedSQL() Then

32: MsgBox "Похоже, соединение установлено..."

33: ' код, использующий установленное соединение:

34:

35: Set rs = New ADODB.Recordset

36: rs.CursorType = adOpenDynamic

37: rs.Source = "EXEC ИнвВедомость @Kod='1506'"

38: Set rs.ActiveConnection = cn

39: rs.Open

40:

41: 'установить начальную строку таблицы:

42: j = 1

43:

44: 'записать заголовки полей в Excel-лист:

45: For i = 0 To rs.Fields.Count - 1

46: ActiveWorkbook.Sheets(1).Cells(j, i + 1).Value = _

47: rs.Fields(i).Name

48: Next

49:

50: 'записать содержимое полей в Excel-лист:

51: rs.MoveFirst

52: Do While Not rs.EOF

53: j = j + 1

54: For i = 0 To rs.Fields.Count - 1

55: ActiveWorkbook.Sheets(1).Cells(j, i + 1).Value = _

56: rs.Fields(i)

57: Next

58: rs.MoveNext

59: Loop

60:

61:

62: cn.Close ' закрыть соединение

63: Else

64: MsgBox "Что-то не получается подключиться к базе данных!"

65: End If

66:

67: End Sub

Рис. 22.11

Результат выполнения кода листинга 22.4

Следует отметить, что, как обычно, формировать строку подключения можно с использованием данных в диалоговых окнах.

Функцию ADODB_ConnectedSQL можно использовать и для подключения к SQL Server из Access. В главе «Введение в технологию ADO» приведен пример подключения из Access к внешнему mdb-файлу. Если в качестве функции подключения к базе данных использовать функцию ADODB_ConnectedSQL, то в диалоговой форме, показанной на рис. 7.10, можно было бы отобразить информацию, хранимую на SQL Server.

 

 







Дата добавления: 2015-09-04; просмотров: 416. Нарушение авторских прав; Мы поможем в написании вашей работы!




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


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


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

Седалищно-прямокишечная ямка Седалищно-прямокишечная (анальная) ямка, fossa ischiorectalis (ischioanalis) – это парное углубление в области промежности, находящееся по бокам от конечного отдела прямой кишки и седалищных бугров, заполненное жировой клетчаткой, сосудами, нервами и...

Основные структурные физиотерапевтические подразделения Физиотерапевтическое подразделение является одним из структурных подразделений лечебно-профилактического учреждения, которое предназначено для оказания физиотерапевтической помощи...

Почему важны муниципальные выборы? Туристическая фирма оставляет за собой право, в случае причин непреодолимого характера, вносить некоторые изменения в программу тура без уменьшения общего объема и качества услуг, в том числе предоставлять замену отеля на равнозначный...

КОНСТРУКЦИЯ КОЛЕСНОЙ ПАРЫ ВАГОНА Тип колёсной пары определяется типом оси и диаметром колес. Согласно ГОСТ 4835-2006* устанавливаются типы колесных пар для грузовых вагонов с осями РУ1Ш и РВ2Ш и колесами диаметром по кругу катания 957 мм. Номинальный диаметр колеса – 950 мм...

Философские школы эпохи эллинизма (неоплатонизм, эпикуреизм, стоицизм, скептицизм). Эпоха эллинизма со времени походов Александра Македонского, в результате которых была образована гигантская империя от Индии на востоке до Греции и Македонии на западе...

Демографияда "Демографиялық жарылыс" дегеніміз не? Демография (грекше демос — халық) — халықтың құрылымын...

Studopedia.info - Студопедия - 2014-2025 год . (0.014 сек.) русская версия | украинская версия