OnAskReflectRights(Var Cancel: Boolean);
Cancel - parameter that determines whether a query on updating access permissions on objects on DBMS level is displayed.
By default value False is passed, at the same time a query on updating access permissions on objects on DBMS level is displayed.
If the True value is passed as the value of the parameter, the dialog will not be displayed, the permissions will be updated only on the platform level.
The OnAskReflectRights method implements an event that occurs before updating the permissions to the objects.
Public Class CUpdateEvents: UpdateEvents
Public Sub OnBeginUpdate(Update: IMetabaseUpdate);
Var
Flag: IMetabaseUpdateProperty;
Begin
Debug.WriteLine("Update of repository objects");
Flag := Update.Properties.FindById("Ver");
If Flag <> Null Then
Flag.Value := "1.1";
End If;
End Sub OnBeginUpdate;
Public Sub OnAskConstraintsHandling(Update: IMetabaseUpdate; Node: IMetabaseUpdateNode;
Details: String;
Var Handling: UpdateDataConstraintsHandlingType);
Begin
Handling := UpdateDataConstraintsHandlingType.KeepTableUnchanged;
End Sub OnAskConstraintsHandling;
Public Sub OnAskReflectRights(Var Cancel: Boolean);
Begin
Cancel := True;
End Sub OnAskReflectRights;
Public Sub OnUpdateObject(Update: IMetabaseUpdate; CurrentNode: IMetabaseUpdateNode; Var Skip: Boolean);
Begin
If CurrentNode.NodeType = MetabaseUpdateNodeType.DeleteObject Then
Skip := True;
End If;
End Sub OnUpdateObject;
Public Sub OnEndUpdate(Update: IMetabaseUpdate);
Begin
Debug.WriteLine("Update of objects is completed");
End Sub OnEndUpdate;
End Class CUpdateEvents;
This example is a template for update module. On applying of update that contains this module the following checks are performed:
If update contains a flag of update with the Ver identifier, a value "1.1" is assigned for this flag. Only those objects for that a condition of update equals "Ver=1.1" are updated.
On failure of data integrity the update of the whole object is ignored.
Updating permissions to objects, for which it is necessary will be performed only on the platform level.
In update elements that delete repository objects are ignored.
See also: