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



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

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

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

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

Трамадол (Маброн, Плазадол, Трамал, Трамалин) Групповая принадлежность · Наркотический анальгетик со смешанным механизмом действия, агонист опиоидных рецепторов...

Мелоксикам (Мовалис) Групповая принадлежность · Нестероидное противовоспалительное средство, преимущественно селективный обратимый ингибитор циклооксигеназы (ЦОГ-2)...

Менадиона натрия бисульфит (Викасол) Групповая принадлежность •Синтетический аналог витамина K, жирорастворимый, коагулянт...

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

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

Типовые ситуационные задачи. Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической   Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической нагрузке. Из медицинской книжки установлено, что он страдает врожденным пороком сердца....

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