Оператор CREATE PROCEDURE (Microsoft Access SQL)
Область применения: Access 2013, Office 2013
Создает сохраняемую процедуру.
Примечание.
Ядро СУБД Access не поддерживает использование оператора CREATE PROCEDURE или любые операторы DDL с базами данных с ядром СУБД Jet, не принадлежащими Microsoft.
Синтаксис
Процедура CREATE PROCEDURE [param1 datatype[, param2 datatype[, ...]] Sqlstatement AS
Оператор CREATE PROCEDURE состоит из трех частей:
Часть | Описание |
---|---|
procedure | Название процедуры. Необходимо выполнение стандартных соглашений об именовании. |
param1, param2 | От 1 до 255 имен полей или параметров. Пример:CREATE PROCEDURE Sales_By_Country [Beginning Date] DateTime, [Ending Date] DateTime; Дополнительные сведения о параметрах см. в разделе ПАРАМЕТРЫ. |
datatype | Один из основных типов данных Microsoft Access SQL или их синонимов. |
sqlstatement | Оператор SQL, например SELECT, UPDATE, DELETE, INSERT, CREATE TABLE, DROP TABLE и т. д. |
Комментарии
Оператор SQL состоит из выражения PROCEDURE, определяющего имя процедуры, необязательный список определений параметров и одного оператора SQL.
Имя процедуры не может совпадать с именем существующей таблицы.
Пример
В этом примере присваивается имя запросу CategoryList и выполняется вызов процедуры EnumFields, которую вы можете найти в приведенном примере для оператора SELECT.
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)
' Populate the Recordset.
rst.MoveLast
' 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