次の方法で共有


IDbCommand.Prepare メソッド

準備された (コンパイル済みの) バージョンのコマンドをデータ ソースに作成します。

Sub Prepare()
[C#]
void Prepare();
[C++]
void Prepare();
[JScript]
function Prepare();

例外

例外の種類 条件
InvalidOperationException Connection が設定されていません。

または

ConnectionOpen ではありません。

解説

CommandType プロパティが TableDirect に設定されている場合、 Prepare は何も実行しません。 CommandTypeStoredProcedure に設定されている場合は、結果としての動作が何も実行されなくても Prepare の呼び出しが成功します。

使用例

[Visual Basic, C#, C++] 派生クラス OleDbCommand のインスタンスを作成し、接続を開く例を次に示します。この例では、次に、SQL Select ステートメントである文字列と、データ ソースに接続するために使用する文字列を渡して、データ ソースでストアド プロシージャを準備します。

 
Public Sub OleDbCommandPrepare()
    Dim id As Integer = 20
    Dim desc As String = "myFirstRegion"
    Dim rConn As OleDbConnection = New OleDbConnection("Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;")
    rConn.Open()
    Dim command As OleDbCommand = New OleDbCommand("", rConn)

    ' Create and prepare an SQL statement.
    command.CommandText = "insert into Region (RegionID, RegionDescription) values (@id, @desc)"
    command.Parameters.Add("@id", id)
    command.Parameters.Add("@desc", desc)
    command.Prepare() ' Calling Prepare after having set the Commandtext and parameters.
    command.ExecuteNonQuery()

    ' Change parameter values and call ExecuteNonQuery.
    command.Parameters(0).Value = 21
    command.Parameters(1).Value = "mySecondRegion"
    command.ExecuteNonQuery()
End Sub

[C#] 
public void OleDbCommandPrepareEx() {
   int  id = 20;
   string  desc = "myFirstRegion" ;
   OleDbConnection rConn = new OleDbConnection("Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;");
   rConn.Open();
   OleDbCommand command    = new OleDbCommand(null, rConn);

   // Create and prepare an SQL statement.
   command.CommandText = "insert into Region (RegionID, RegionDescription) values (@id, @desc)" ;
   command.Parameters.Add ( "@id", id) ;
   command.Parameters.Add ( "@desc", desc) ;
   command.Prepare() ;  // Calling Prepare after having set the Commandtext and parameters.
   command.ExecuteNonQuery();

   // Change parameter values and call ExecuteNonQuery.
   command.Parameters[0].Value = 21;
   command.Parameters[1].Value = "mySecondRegion";
   command.ExecuteNonQuery();
}

[C++] 
public:
  void OleDbCommandPrepareEx() {
     int  id = 20;
     String*  desc = S"myFirstRegion" ;
     OleDbConnection* rConn = 
       new OleDbConnection(S"Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;");
     rConn->Open();
     OleDbCommand* command = new OleDbCommand(0, rConn);

     // Create and prepare an SQL statement.
     command->CommandText = S"insert into Region (RegionID, RegionDescription) values (@id, @desc)" ;
     command->Parameters->Add ( S"@id", __box(id)) ;
     command->Parameters->Add ( S"@desc", desc) ;
     command->Prepare() ;  // Calling Prepare after having set the Commandtext and parameters.
     command->ExecuteNonQuery();

     // Change parameter values and call ExecuteNonQuery.
     command->Parameters->Item[0]->Value = __box(21);
     command->Parameters->Item[1]->Value = S"mySecondRegion";
     command->ExecuteNonQuery();
  }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

参照

IDbCommand インターフェイス | IDbCommand メンバ | System.Data 名前空間