Use-Transaction
Přidá blok skriptu do aktivní transakce.
Syntaxe
Use-Transaction
[-TransactedScript] <ScriptBlock>
[-UseTransaction]
[<CommonParameters>]
Description
Rutina Use-Transaction
přidá blok skriptu do aktivní transakce. Díky tomu můžete provádět transactované skriptování pomocí objektů Rozhraní Microsoft .NET Framework s podporou transakcí. Blok skriptu může obsahovat pouze objekty rozhraní .NET Framework s podporou transakcí, například instance Microsoft.PowerShell.Commands.Management.TransactedString třídy.
Parametr UseTransaction , který je volitelný pro většinu rutin, je vyžadován při použití této rutiny.
Use-Transaction
je jednou ze sady rutin, které podporují funkci transakcí ve Windows PowerShellu. Další informace najdete v tématu about_Transactions.
Příklady
Příklad 1: Skript pomocí objektu s podporou transakcí
Start-Transaction
$transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
$transactedString.Append("Hello")
Use-Transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
$transactedString.ToString()
Hello
Use-Transaction -TransactedScript { $transactedString.ToString() } -UseTransaction
Hello, World
Complete-Transaction
$transactedString.ToString()
Hello, World
Tento příklad ukazuje, jak použít Use-Transaction
skriptování proti objektu rozhraní .NET Framework s podporou transakcí. V tomto případě je objekt TransactedString objektu.
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í TransactedString objektu. Uloží objekt do $TransactedString
proměnné.
Třetí a čtvrté příkazy oba používají Append metoda TransactedString objektu přidat text k hodnotě $TransactedString
. Jeden příkaz je součástí transakce. Druhý příkaz není.
Třetí příkaz používá metodu Append transacted řetězce přidat Hello k hodnotě $TransactedString
. Protože příkaz není součástí transakce, změna se použije okamžitě.
Čtvrtý příkaz používá Use-Transaction
k přidání textu do řetězce v transakci. Příkaz používá metodu Append k přidání ", World" k hodnotě $TransactedString
. Příkaz je uzavřený do složených závorek ({}
), aby byl blok skriptu. Parametr UseTransaction je vyžadován v tomto příkazu.
Páté a šesté příkazy používají ToString metoda TransactedString objektu k zobrazení hodnoty TransactedString jako řetězec. Opět platí, že jeden příkaz je součástí transakce. Druhá transakce není.
Pátý příkaz používá ToString metoda k zobrazení aktuální hodnoty $TransactedString proměnné. Protož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. Protože příkaz je součástí transakce, zobrazí aktuální hodnotu řetězce v transakci, podobně jako náhled změny transakce.
Sedmý příkaz používá rutinu Complete-Transaction
k potvrzení transakce.
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
Start-Transaction
$transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
$transactedString.Append("Hello")
Use-Transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
Undo-Transaction
$transactedString.ToString()
Hello
Tento příklad ukazuje účinek vrácení transakce, která obsahuje Use-Transaction
příkazy. Stejně jako všechny příkazy v transakci, když se transakce vrátí zpět, provedené změny se zahodí a data se nezmění.
První příkaz používá Start-Transaction
ke spuštění transakce.
Druhý příkaz používá New-Object
k vytvoření TransactedString objektu. Uloží objekt do $TransactedString
proměnné.
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í jiného příkazu, který používá metodu Append v transakci. Příkaz používá metodu Append k přidání ", World" k hodnotě $TransactedString
.
Pátý příkaz používá 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 u objektu byly použity pouze změny provedené mimo transakci.
Parametry
-TransactedScript
Určuje blok skriptu, který se spouští v transakci. Zadejte libovolný platný blok skriptu uzavřený do složených závorek ({}
). Tento parametr je povinný.
Typ: | ScriptBlock |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-UseTransaction
Zahrnuje příkaz v aktivní transakci. Tento parametr je platný pouze v případě, že probíhá transakce. Další informace najdete v tématu about_transactions.
Typ: | SwitchParameter |
Aliasy: | usetx |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
None
Vstup do této rutiny nelze převést.
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ýkoliUse-Transaction
příkaz efektivní.