Sdílet prostřednictvím


Use-Transaction

Přidá blok skriptu do aktivní transakce.

Syntax

Use-Transaction
   [-TransactedScript] <ScriptBlock>
   [-UseTransaction]
   [<CommonParameters>]

Description

Rutina Use-Transaction přidá blok skriptu do aktivní transakce. To vám umožní provádět transakční skriptování pomocí objektů Rozhraní Microsoft .NET Framework s podporou transakcí. Blok skriptů může obsahovat pouze objekty rozhraní .NET Framework s povolenou transakcí, například instance třídy Microsoft.PowerShell.Commands.Management.TransactedString.

Při použití této rutiny se vyžaduje parametr UseTransaction , který je pro většinu rutin volitelný.

Use-Transaction je jednou ze sady rutin, které podporují funkci transakcí v Windows PowerShell. Další informace najdete v tématu about_Transactions.

Příklady

Příklad 1: Skript pomocí objektu s povolenou transakcí

PS C:\> Start-Transaction
PS C:\> $transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
PS C:\> $transactedString.Append("Hello")
PS C:\> Use-Transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
PS C:\> $transactedString.ToString()
Hello
PS C:\> Use-Transaction -TransactedScript { $transactedString.ToString() } -UseTransaction
Hello, World
PS C:\> Complete-Transaction
PS C:\> $transactedString.ToString()
Hello, World

Tento příklad ukazuje, jak použít Use-Transaction skriptovat proti objektu .NET Framework s povolenou transakcí. V tomto případě je objekt TransactedString objekt.

První příkaz použije rutinu Start-Transaction ke spuštění transakce.

Druhý příkaz používá příkaz New-Object k vytvoření objektu TransactedString . Uloží objekt do proměnné $TransactedString.

Třetí i čtvrtý příkaz používají metodu Appendobjektu TransactedString k přidání textu do hodnoty $TransactedString. Jeden příkaz je součástí transakce. Druhý příkaz není.

Třetí příkaz používá metodu Append transakčního řetězce k přidání Hello k hodnotě $TransactedString. Vzhledem k tomu, že příkaz není součástí transakce, změna se použije okamžitě.

Čtvrtý příkaz použije Use-Transaction k přidání textu do řetězce v transakci. Příkaz použije metodu Append k přidání ", World" k hodnotě $TransactedString. Příkaz je uzavřený ve složených závorkách ( {} ), aby se z něj udělal blok skriptu. Parametr UseTransaction je v tomto příkazu povinný.

Páté a šesté příkazy používají ToString metoda TransactedString objektu k zobrazení hodnoty TransactedString jako řetězec. Jeden příkaz je opět součástí transakce. Druhá transakce není.

Pátý příkaz používá ToString metoda k zobrazení aktuální hodnoty $TransactedString proměnné. Vzhledem k tomu, že není součástí transakce, zobrazí pouze aktuální stav řetězce.

Šestý příkaz používá Use-Transaction ke spuštění stejného příkazu v transakci. Vzhledem k tomu, že příkaz je součástí transakce, zobrazí aktuální hodnotu řetězce v transakci, podobně jako náhled transakce změny.

Sedmý příkaz použije k potvrzení transakce rutinu Complete-Transaction.

Poslední příkaz používá ToString metoda k zobrazení výsledné hodnoty proměnné jako řetězec.

Příklad 2: Vrácení transakce zpět

PS C:\> Start-Transaction
PS C:\> $transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
PS C:\> $transactedString.Append("Hello")
PS C:\> Use-Transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
PS C:\> Undo-Transaction
PS C:\> $transactedString.ToString()
Hello

Tento příklad ukazuje efekt vrácení zpět transakce, která zahrnuje příkazy Use-Transaction . Stejně jako všechny příkazy v transakci i při vrácení transakce zpět se provedené změny zahodí a data se nezmění.

První příkaz použije start-transaction ke spuštění transakce.

Druhý příkaz použije New-Object k vytvoření objektu TransactedString . Uloží objekt do proměnné $TransactedString.

Třetí příkaz, který není součástí transakce, používá metodu Append k přidání "Hello" k hodnotě $TransactedString.

Čtvrtý příkaz používá Use-Transaction ke spuštění dalšího příkazu, který používá metodu Append v transakci. Příkaz použije metodu Append k přidání ", World" k hodnotě $TransactedString.

Pátý příkaz použije k vrácení transakce zpět rutinu Undo-Transaction. V důsledku toho jsou všechny příkazy provedené v transakci obráceny.

Poslední příkaz používá ToString metoda k zobrazení výsledné hodnoty $TransactedString jako řetězec. Výsledky ukazují, že na objekt byly použity pouze změny, které byly provedeny mimo transakci.

Parametry

-TransactedScript

Určuje blok skriptu, který je spuštěn v transakci. Zadejte libovolný platný blok skriptu uzavřený ve složených závorkách ( { } ). Tento parametr je povinný.

Type:ScriptBlock
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-UseTransaction

Zahrnuje příkaz v aktivní transakci. Tento parametr je platný jenom v případě, že probíhá transakce. Další informace najdete v tématu about_Transactions.

Type:SwitchParameter
Aliases:usetx
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Vstupy

None

Vstup do této rutiny nelze připojit.

Výstupy

PSObject

Tato rutina vrátí výsledek transakce.

Poznámky

  • Parametr UseTransaction zahrnuje příkaz v aktivní transakci. Vzhledem k tomu, že rutina Use-Transaction se vždy používá v transakcích, je tento parametr nutný k tomu, aby byl jakýkoli příkaz Use-Transaction efektivní.