Sdílet prostřednictvím


Use-Transaction

Přidá blok skriptu do aktivní transakce.

Syntax

Default (Výchozí)

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, se vyžaduje při použití této rutiny.

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

Příklady

Příklad 1: Skript pomocí objektu s podporou 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 ke skriptování proti objektu rozhraní .NET Framework s povolenou 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 proměnné $TransactedString.

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

Třetí příkaz používá metodu Append transakčně prováděného řetězce k přidání 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í znaku "World" k hodnotě $TransactedString. Příkaz je uzavřený ve složených závorkách ({}), 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 objekt 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á metodu ToString k zobrazení aktuální hodnoty proměnné $TransactedString. 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á k potvrzení transakce rutinu Complete-Transaction.

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

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 účinek vrácení zpět transakce, která obsahuje příkazy Use-Transaction . 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 k zahájení transakce.

Druhý příkaz používá 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ý v transakci používá metodu Append . Příkaz používá metodu Append k přidání znaku "World" k hodnotě $TransactedString.

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

Konečný příkaz používá metodu ToString k zobrazení výsledné hodnoty $TransactedString jako řetězce. 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ý.

Vlastnosti parametru

Typ:ScriptBlock
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:0
Povinné:True
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů: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.

Vlastnosti parametru

Typ:SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False
Aliasy:usetx

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

CommonParameters

Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.

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 obsahuje příkaz v aktivní transakci. Vzhledem k tomu, že rutina Use-Transaction se v transakcích vždy používá, je tento parametr nutný k tomu, aby byl jakýkoli příkaz Use-Transaction účinný.