Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Пример VB-6. Просмотр содержимого таблицы базы данных




Этот пример показывает, как легко можно просмотреть содержимое любой таблицы базы данных сервера. На рис. 23.18 представлена форма (в режиме разработки), в следующей далее таблице приведены свойства элементов формы.

Рис. 23.18

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

Тип элемента Свойство, которое изменено (используется в коде) Значение Примечание
UserForm Name Form1 Имя формы, на которое можно ссылаться в коде.
  Caption Тестирование SQL-DMO (6) Заголовок.
Frame Name Frame1  
  Caption Базы данных SQL Server Текст – заголовок для Combo1.
ComboBox Name Combo1 Список для отображения (и выбора) наименований баз данных.
Frame Name Frame2  
  Caption Таблица Текст – заголовок для Combo2.
ComboBox Name Combo2 Список для отображения (и выбора) наименований таблиц выбранной в Combo1 базы данных.
CommandButton Name Command1 Кнопка для окончания работы с приложением.
  Caption Выход  
Frame Name Frame3  
  Caption Поля Текст – заголовок для MSFlexGrid1.
MSFlexGrid   MSFlexGrid1 Сетка для отображения данных в полях.

В листинге 23.6 приведен код модуля формы, а на рис. 23.19 — форма в режиме выполнения. Здесь, как и в проекте третьего примера, в процедуре загрузки формы формируется список баз данных сервера для комбинированного списка Combo1 (строки 12–15) и вызывается событийная процедура этого элемента управления (строка 17). В коде событийной процедуры Combo1_Click формируется список таблиц для базы данных (с именем в свойстве Combo1.Text) для комбинированного списка Combo2 (строки 29–32) и вызывается событийная процедура этого элемента управления (строка 34).

В коде событийной процедуры Combo2_Click объявляется переменная qsq с типом SQLDMO.QueryResults. В эту переменную можно возвращать результат T-SQL-запроса, т.е. данные таблицы. В строке 46 формируется строка с T-SQL-запросом, а в строках 51–52 при помощи метода ExecuteWithResults T-SQL-запрос выполняется с передачей результата объекту qsq.

В остальной части процедуры Combo2_Click формируются отображаемые свойства элемента MSFlexGrid. Сначала (строки 58–67) с использованием свойств Name и InPrimaryKey объектов коллекции obj1(Trim(Combo1.Text)).Tables(Trim(Combo2.Text)).Columns формируются заголовки полей сетки. Затем (строки 74–82) с использованием массива с результатом T-SQL-запроса qsq.GetColumnString формируются элементы сетки со значениями полей запроса.

Листинг 23.6 Код модуля формы для просмотра содержимого таблицы базы данных

1: Dim sqlOb As SQLDMO.SQLServer

2: Dim obj1 As Object

3:

4: Private Sub Form_Load()

5:

6: Set sqlOb = New SQLDMO.SQLServer

7: sqlOb.Connect "VOVA", "Dmitry", "Dmitry"

8:

9: Set obj1 = sqlOb.Databases

10:

11:

12: For Each dbs In obj1

13: Combo1.AddItem dbs.Name

14: Combo1.Text = dbs.Name

15: Next dbs

16:

17: Combo1_Click

18:

19: End Sub

20:

21: Private Sub Combo1_Click()

22: 'обработчик комбинированного списка 'База данных SQL Server'

23: 'занести в список Combo2 таблицы выбранной в Combo1 базы

24:

25: Frame2.Caption = "Таблицы базы '" & Trim(Combo1.Text) & "'"

26:

27: Combo2.Clear

28:

29: For Each tbl In obj1(Trim(Combo1.Text)).Tables

30: Combo2.AddItem tbl.Name

31: Combo2.Text = tbl.Name

32: Next tbl

33:

34: Combo2_Click

35:

36: End Sub

37:

38: Private Sub Combo2_Click()

39: 'обработчик комбинированного списка 'Таблица'

40: 'заполннить сетку данными текущей таблицы

41:

42: Dim qsq As SQLDMO.QueryResults

43:

44: MSFlexGrid1.Clear

45:

46: Frame3.Caption = "Содержимое таблицы '" & Trim(Combo2.Text) & "'"

47:

48: sql_query = "SELECT * FROM " & Trim(Combo2.Text)

49:

50:

51: Set qsq = _

52: sqlOb.Databases(Trim(Combo1.Text)).ExecuteWithResults(sql_query)

53:

54: MSFlexGrid1.Cols = qsq.Columns + 1

55:

56:

57: 'заполнение заголовков таблицы:

58: MSFlexGrid1.Row = 0 'строка заголовков

59: i = 1

60: For Each colu In _

61: obj1(Trim(Combo1.Text)).Tables(Trim(Combo2.Text)).Columns

62:

63: addText = colu.Name

64: If colu.InPrimaryKey Then addText = addText & " (primary key)"

65:

66: MSFlexGrid1.Col = i 'номер колонки

67: MSFlexGrid1.Text = addText 'заголовок

68:

69: i = i + 1

70:

71: Next colu

72:

73: 'заполнение сетки содержимым полей:

74: For i = 1 To qsq.Rows

75: ss = ""

76: For j = 1 To qsq.Columns

77: ss = ss & vbTab & qsq.GetColumnString(i, j)

78: Next

79:

80: MSFlexGrid1.AddItem ss

81:

82: Next

83:

84: End Sub

85:

86: Private Sub Command1_Click()

87: Unload Me

88: End Sub

Рис. 23.19

Форма для просмотра содержимого таблицы базы данных (в режиме выполнения)





Поделиться с друзьями:


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


Поиск на сайте:

Лучшие изречения:

В моем словаре нет слова «невозможно». © Наполеон Бонапарт
==> читать все изречения...

4196 - | 4151 -


© 2015-2026 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.