Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SQL.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
327.17 Кб
Скачать

Выражение procedure

Определяет имя и, при необходимости, параметры запроса. Формат:

PROCEDURE name [param1 datatype[, param2 datatype[, ...]]

Оператор PROCEDURE имеет следующие части:

Часть

Описание

name

Имя процедуры

param1, param2

Одно или несколько названий полей или параметров. Например, PROCEDURE Sales_By_Country [Beginning Date] DateTime, [Ending Date] DateTime; См. PARAMETERS

datatype

Один из основных типов данных Microsoft Jet или синоним

Процудура SQL состоит из выражения PROCEDURE, определяющего имя процедуры, не обязательного списка определения параметров и одного оператора SQL. Если выражение включает несколько определений полей (пары param-datatype), они разделяются запятыми. За выражением должен следовать оператор SQL (SELECT, UPDATE и т.п.).

Введенное в SQL-режиме конструктора запросов выражение PROCEDURE, удаляется при переключении в другой режим, при этом результат запроса не меняется. Если были определены параметры, то выражение PROCEDURE заменяется выражением PARAMETERS.

В следующем примере вводится имя запроса CategoryList (используется функция SQLTRANSFORMOutput):

Sub ProcedureX()

Dim dbs As Database, rst As Recordset

Dim qdf As QueryDef, strSql As String

' Modify this line to include the path to Northwind on your computer.

Set dbs = OpenDatabase("Northwind.mdb")

strSql = "PROCEDURE CategoryList; " _ & "SELECT DISTINCTROW CategoryName, " _ & "CategoryID FROM Categories ORDER BY CategoryName;"

' Create a named QueryDef based on the SQL statement.

Set qdf = dbs.CreateQueryDef("NewQry", strSql)

' Create a temporary snapshot-type Recordset.

Set rst = qdf.OpenRecordset(dbOpenSnapshot)

rst.MoveLast ' Populate the Recordset.

' Call EnumFields to print the contents of the Recordset.

' Pass the Recordset object and desired field width.

EnumFields rst, 15

' Delete the QueryDef because this is a demonstration.

dbs.QueryDefs.Delete "NewQry"

dbs.Close

End Sub

Объявление parameters

Объявляет имя и тип параметра в параметрическом запросе. Формат

PARAMETERS name datatype [, name datatype [, ...]]

Объявление PARAMETERS имеет следующие части:

Часть

Описание

name

Имя параметра. Присваивается свойству Name объекта Parameter и используется для идентификации в наборе Parameters. Отображается в диалоге запроса параметра при выполнении запроса. Имена, содержащие пробелы или знаки пунктуации, нужно заключать в квадратные скобки.

datatype

Один из основных типов данных Microsoft Jet или синоним

Обявление параметров позволяет менять условия запроса, т.к. они запрашиваются при его выполнении. Объявление не обязательно, но если есть, должно предшествовать другим операторам. Если оно включает более одного параметра, они разделяются запятыми. Следующее объявление включает два параметра:

PARAMETERS [Low price] Currency, [Beginning date] DateTime;

Объявленные имена можно использовать в выражениях WHERE и HAVING:

PARAMETERS [Low price] Currency, [Beginning date] DateTime;

SELECT OrderID, OrderAmount FROM Orders WHERE OrderAmount > [Low price] AND OrderDate >= [Beginning date];

Параметры запрашиваются при каждом выполнении запроса, что позволяет пользователю ввести нужные значения. Объявление PARAMETERS эквивалентно определению параметров в ячейках Criteria конструктора запросов.

Для выполнения следующего примера нужно создать новый запрос в базе Northwind и ввести в режиме SQL

PARAMETERS [Enter a Last Name:] Text;

SELECT * FROM Employees WHERE LastName = [Enter a Last Name:];

Запрос будет запрашивать у пользователя Last Name. Аналогично, запрос

PARAMETERS [Enter a Category ID:] Value;

SELECT CategoryID, ProductName, Count([Order Details].OrderID) AS Tally FROM Products INNER JOIN [Order Details] ON Products.ProductID = [Order Details].ProductID GROUP BY CategoryID, ProductName HAVING CategoryID = [Enter a Category ID:];

будет запрашивать Category ID.

Tabelle 1 Типы данных

Поле таблицы

Параметр запроса

VBA

DAO-константа

Microsoft Jet

Yes/No

Yes/No

Boolean

dbBoolean

BOOLEAN, BIT, LOGICAL, LOGICAL1, YESNO

Number (Byte)

Byte

Byte

dbByte

BYTE, INTEGER1

Number(Integer)1

Integer

Integer

dbInteger

SHORT, INTEGER2, SMALLINT

Number (Long Integer)

Long Integer

Long

dbLong

LONG, INT, INTEGER, INTEGER4

Auto(Long Integer)

Long Integer

Long

dbLong

COUNTER, AUTOINCREMENT

Number(Single)

Single

Single

dbSingle

SINGLE, FLOAT4, IEEESINGLE, REAL

Number(Double)

Double

Double

dbDouble

DOUBLE, FLOAT, FLOAT8, IEEEDOUBLE, NUMBER, NUMERIC

Currency

Currency

Currency

dbCurrency

CURRENCY, MONEY

Date/Time

Date/Time

Date

dbDate

DATETIME, DATE, TIME, TIMESTAMP

Replikations-ID

Replication ID

dbGUID

GUID

Text

Text

String

dbText

TEXT, ALPHANUMERIC, CHAR, CHARACTER, STRING, VARCHAR

Memo

Memo

String

dbMemo

LONGTEXT, LONGCHAR, MEMO, NOTE

Hyperlink

Memo

String

dbMemo

LONGTEXT, LONGCHAR, MEMO, NOTE

OLE-Objekt

OLE Object

String

dbLongBinary

LONGBINARY, GENERAL, OLEOBJECT

Binary

BINARY, VARBINARY2

Value

Variant

VALUE

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]