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

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

Использование 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. Нарушение авторских прав; Мы поможем в написании вашей работы!




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


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


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Хронометражно-табличная методика определения суточного расхода энергии студента Цель: познакомиться с хронометражно-табличным методом опреде­ления суточного расхода энергии...

ОЧАГОВЫЕ ТЕНИ В ЛЕГКОМ Очаговыми легочными инфильтратами проявляют себя различные по этиологии заболевания, в основе которых лежит бронхо-нодулярный процесс, который при рентгенологическом исследовании дает очагового характера тень, размерами не более 1 см в диаметре...

Примеры решения типовых задач. Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2   Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2. Найдите константу диссоциации кислоты и значение рК. Решение. Подставим данные задачи в уравнение закона разбавления К = a2См/(1 –a) =...

Примеры задач для самостоятельного решения. 1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P   1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P...

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

Педагогическая структура процесса социализации Характеризуя социализацию как педагогический процессе, следует рассмотреть ее основные компоненты: цель, содержание, средства, функции субъекта и объекта...

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