OleDbCommand.Prepare Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří připravenou (nebo zkompilovanou) verzi příkazu ve zdroji dat.
public:
override void Prepare();
public:
virtual void Prepare();
public override void Prepare();
public void Prepare();
override this.Prepare : unit -> unit
abstract member Prepare : unit -> unit
override this.Prepare : unit -> unit
Public Overrides Sub Prepare ()
Public Sub Prepare ()
Implementuje
Výjimky
Příklady
Následující příklad vytvoří OleDbCommand a otevře připojení. Příklad pak připraví uloženou proceduru ve zdroji dat předáním řetězce, který je příkazem SQL SELECT a řetězcem, který se použije pro připojení ke zdroji dat.
private static void OleDbCommandPrepare(string connectionString)
{
using (OleDbConnection connection = new
OleDbConnection(connectionString))
{
connection.Open();
// Create the Command.
OleDbCommand command = new OleDbCommand();
// Set the Connection, CommandText and Parameters.
command.Connection = connection;
command.CommandText =
"INSERT INTO dbo.Region (RegionID, RegionDescription) VALUES (?, ?)";
command.Parameters.Add("RegionID", OleDbType.Integer, 4);
command.Parameters.Add("RegionDescription", OleDbType.VarWChar, 50);
command.Parameters[0].Value = 20;
command.Parameters[1].Value = "First Region";
// Call Prepare and ExecuteNonQuery.
command.Prepare();
command.ExecuteNonQuery();
// Change parameter values and call ExecuteNonQuery.
command.Parameters[0].Value = 21;
command.Parameters[1].Value = "SecondRegion";
command.ExecuteNonQuery();
}
}
Public Sub OleDbCommandPrepare(ByVal connectionString As String)
Using connection As OleDbConnection = New _
OleDbConnection(connectionString)
connection.Open()
' Create the Command.
Dim command As New OleDbCommand()
' Set the Connection, CommandText and Parameters.
command.Connection = connection
command.CommandText = _
"INSERT INTO dbo.Region (RegionID, RegionDescription) VALUES (?, ?);"
command.Parameters.Add("RegionID", OleDbType.Integer, 4)
command.Parameters.Add("RegionDescription", OleDbType.VarWChar, 50)
command.Parameters(0).Value = 20
command.Parameters(1).Value = "First Region"
' Call Prepare and ExecuteNonQuery.
command.Prepare()
command.ExecuteNonQuery()
' Change parameter values and call ExecuteNonQuery.
command.Parameters(0).Value = 21
command.Parameters(1).Value = "Second Region"
command.ExecuteNonQuery()
End Using
End Sub
Poznámky
Pokud je vlastnost nastavena CommandType na TableDirect, Prepare nedělá nic. Pokud CommandType je nastavena na StoredProcedure, volání Prepare by mělo být úspěšné, i když může způsobit no-op.
Před voláním Preparezadejte datový typ každého parametru v příkazu, který se má připravit. U každého parametru s datovým typem proměnlivé délky je nutné nastavit vlastnost Size na požadovanou maximální velikost. Prepare vrátí chybu, pokud tyto podmínky nejsou splněny.
Pokud voláte metodu Execute po volání Prepare, jakákoli hodnota parametru, která je větší než hodnota zadaná vlastností Size , se automaticky zkrátí na původní zadanou velikost parametru a nebudou vráceny žádné chyby zkrácení.
Výstupní parametry (ať už připravené nebo ne) musí mít datový typ zadaný uživatelem. Pokud zadáte datový typ s proměnnou délkou, musíte také zadat maximální velikost.