Студопедия — Использование Microsoft OLE Provider for SQL Server для доступа к данным на SQL Server
Студопедия Главная Случайная страница Обратная связь

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

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



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

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

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

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Вопрос. Отличие деятельности человека от поведения животных главные отличия деятельности человека от активности животных сводятся к следующему: 1...

Расчет концентрации титрованных растворов с помощью поправочного коэффициента При выполнении серийных анализов ГОСТ или ведомственная инструкция обычно предусматривают применение раствора заданной концентрации или заданного титра...

Психолого-педагогическая характеристика студенческой группы   Характеристика группы составляется по 407 группе очного отделения зооинженерного факультета, бакалавриата по направлению «Биология» РГАУ-МСХА имени К...

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

Случайной величины Плотностью распределения вероятностей непрерывной случайной величины Х называют функцию f(x) – первую производную от функции распределения F(x): Понятие плотность распределения вероятностей случайной величины Х для дискретной величины неприменима...

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

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