QueryDef: определения запросов
Кроме таблиц, база данных может содержать определения запросов. Запросы, которые обычно используются в базе данных, сохраняются в ней и вызываются по именам. Ко всем запросам в базе данных можно обращаться через объект QueryDefs, подобный объекту TableDef. Объект QueryDefs - это семейство объектов QueryDef, каждый из которых соответствует сохраненному запросу. Из программы можно обращаться к следующим свойствам семейства QueryDefs.
• Count. Возвращает число запросов, сохраненных в базе данных.
• Name. Возвращает имя запроса.
• SQL. Возвращает SQL-оператор запроса.
Число запросов, сохраненных в базе данных, можно получить с помощью следующего выражения.
DB.QueryDefs.Count
Чтобы обратиться ко всем запросам, сохраненным в базе данных, объявите объектную переменную QueryDef
Dim qry As QueryDef
а затем просмотрите элементы семейства QueryDefs с помощью цикла For Each...Next.
For Each qry In DB.QueryDefs
Debug.Print qry.Name
Next
VB6 в действии: проект DBStructure
Приложение DBStruct (см. рис. 17.24) позволяет открыть любую базу данных и просмотреть имена ее таблиц, их структуру, запросы, сохраненные в базе данных, и их определения. Таблицы и запросы базы данных отображаются в двух списках слева. Под именем каждой таблицы находятся названия ее индексов. Щелкните на имени таблицы, чтобы отобразить ее поля, или на имени запроса, чтобы отобразить его определение.
Начнем с кода кнопки Open Database.
Программа 17.14. Кнопка Open Database
Private Sub Command1_C1ick()
On Error GoTo NoDatabase
CommonDialog1.CancelError = True
CommonDialog1.Filter = "Databases|* mdb"
CommonDialogI ShowOpen
' Открытие базы данных
If CommonDialog1.fileName <> " " Then
Set DB = OpenDatabase (CommonDialog1.filename)
Label1.Caption = CommonDialog1.filename
End If
' Очистка элементов управления ListBox
FIdList.Clear
TbiList.Clear
Dim tbl As TableDef
Dim idx As Index
Dim TName As String