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



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

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

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

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

Характерные черты официально-делового стиля Наиболее характерными чертами официально-делового стиля являются: • лаконичность...

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

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

Классификация потерь населения в очагах поражения в военное время Ядерное, химическое и бактериологическое (биологическое) оружие является оружием массового поражения...

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

Йодометрия. Характеристика метода Метод йодометрии основан на ОВ-реакциях, связанных с превращением I2 в ионы I- и обратно...

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