VariableDispenser.LockForWrite(String) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Ajoute la variable à la liste des variables à verrouiller pour l'accès en lecture/écriture.
public:
void LockForWrite(System::String ^ variable);
public void LockForWrite (string variable);
member this.LockForWrite : string -> unit
Public Sub LockForWrite (variable As String)
Paramètres
- variable
- String
Nom de la variable à ajouter à la liste à verrouiller pour l'accès en lecture/écriture.
Exemples
L’exemple de code suivant crée une VariableDispenser variable système et ajoute deux variables système à la liste verrouillée pour la lecture, et une variable à la liste verrouillée pour l’écriture. Ensuite, il GetVariables est appelé pour verrouiller les trois variables de la collection, et les listes sont libérées et mises à disposition pour de nouvelles variables.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;
namespace Microsoft.SqlServer.SSIS.Sample
{
class Program
{
static void Main(string[] args)
{
Package pkg = new Package();
Variables vars = null;
VariableDispenser variableDispenser = pkg.VariableDispenser;
variableDispenser.LockForRead("System::PackageName");
variableDispenser.LockForRead("System::OfflineMode");
variableDispenser.LockForWrite("User:MyVariable");
variableDispenser.GetVariables(ref vars);
// Verify that the variable is locked before unlocking.
Console.WriteLine("Variables are locked? {0}", vars.Locked);
foreach (Variable myVar in vars)
{
Console.WriteLine("Name {0}", myVar.Name);
Console.WriteLine("Description {0}", myVar.Description);
Console.WriteLine();
}
// Use Contains to determine whether indexing can be used.
Boolean pkgName = variableDispenser.Contains("PackageName");
String qName = variableDispenser.GetQualifiedName("PackageName");
Console.WriteLine("Contains is valid? {0}", pkgName);
Console.WriteLine("Fully qualified name is: {0}", qName);
vars.Unlock();
Console.WriteLine("Variables are locked? {0}", vars.Locked);
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime
Namespace Microsoft.SqlServer.SSIS.Sample
Class Program
Shared Sub Main(ByVal args() As String)
Dim pkg As Package = New Package()
Dim vars As Variables = Nothing
Dim variableDispenser As VariableDispenser = pkg.VariableDispenser
variableDispenser.LockForRead("System::PackageName")
variableDispenser.LockForRead("System::OfflineMode")
variableDispenser.LockForWrite("User:MyVariable")
variableDispenser.GetVariables( vars)
' Verify that the variable is locked before unlocking.
Console.WriteLine("Variables are locked? {0}", vars.Locked)
Dim myVar As Variable
For Each myVar In vars
Console.WriteLine("Name {0}", myVar.Name)
Console.WriteLine("Description {0}", myVar.Description)
Console.WriteLine()
Next
' Use Contains to determine whether indexing can be used.
Dim pkgName As Boolean = variableDispenser.Contains("PackageName")
Dim qName As String = variableDispenser.GetQualifiedName("PackageName")
Console.WriteLine("Contains is valid? {0}", pkgName)
Console.WriteLine("Fully qualified name is: {0}", qName)
vars.Unlock()
Console.WriteLine("Variables are locked? {0}", vars.Locked)
End Sub
End Class
End Namespace
Exemple de sortie :
Variables are locked? True
Name MyVariable
Description
Name OfflineMode
Description The offline mode currently set for the package
Name PackageName
Description The package name
Contains is valid? True
Fully qualified name is: System::PackageName
Variables are locked? False
Remarques
Cette méthode, lors de son premier appel, crée une liste et ajoute la variable donnée à la liste. Lors des appels suivants, les variables sont ajoutées à la liste existante. Cette méthode ne verrouille pas les variables, elle crée simplement la liste. Lorsque vous avez terminé de créer une liste des variables souhaitées, appelez GetVariables pour verrouiller les variables trouvées dans cette liste. N’importe quel nombre d’appels à et LockForReadLockForWrite peut être effectué avant GetVariables d’être appelé.
Notes
Un seul client peut acquérir un verrou en lecture/écriture sur une variable donnée à la fois. Par conséquent, si seule l’autorisation de lecture est nécessaire, il est préférable d’utiliser LockForRead pour éviter les conflits dans l’accès aux variables.
Si le verrou a réussi, désactivez-le en appelant Unlock.