Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Mengapa FireError gagal di C# 2012, tetapi berfungsi di VB, sementara FireInformation berfungsi di keduanya?

Anda mungkin membingungkan sintaks serupa tetapi berbeda untuk kesalahan penembakan vs peristiwa informasi dari Komponen Skrip (tugas aliran data) versus Tugas Skrip (alur kontrol). Intellisense untuk Komponen menunjukkan bahwa parameternya adalah pbCancel sedangkan fireAgain sesuai dengan parameter Tugas Informasi.

Komponen Skrip

Contoh Komponen Skrip C#

public override void Input0_ProcessInputRow(Input0Buffer Row)
{
    bool cancel = false;
    bool fireAgain = false;
    this.ComponentMetaData.FireInformation(0, "My sub", "info", string.Empty, 0, ref fireAgain);
    this.ComponentMetaData.FireError(0, "My sub", "error", string.Empty, 0, out cancel);
}

Komponen VB

Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
    Dim cancel As Boolean
    Dim fireAgain As Boolean
    Me.ComponentMetaData.FireInformation(0, "my sub", "info", String.Empty, 0, fireAgain)
    Me.ComponentMetaData.FireError(0, "I hate vb", "Error", String.Empty, 0, cancel)
End Sub

Tidak perlu secara eksplisit menentukan bahwa suatu parameter adalah Dengan Referensi karena hal itu tampaknya dilakukan dalam definisi versus persyaratan C# untuk menentukannya juga pada pemanggilan.Klarifikasi ByRef vs ByVal

Tugas Skrip

C#

    public void Main()
    {
        bool fireAgain = false;
        this.Dts.Events.FireInformation(0, "my sub", "info", string.Empty, 0, ref fireAgain);
        // Note, no cancel available
        this.Dts.Events.FireError(0, "my sub", "error", string.Empty, 0);
    }

VB

Public Sub Main()
    Dim fireAgain As Boolean = False
    Me.Dts.Events.FireInformation(0, "my sub", "info desc", String.Empty, 0, fireAgain)
    Me.Dts.Events.FireError(0, "my sub", "error desc", String.Empty, 0)

    Dts.TaskResult = ScriptResults.Success
End Sub

Ringkasan

  • C# mengharuskan Anda untuk menentukan ref dan out kata kunci. Mereka bukan sinonim
  • VB memungkinkan Anda melakukan apa saja
  • Acara kesalahan dalam Komponen memiliki parameter batal


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Memformat Angka di SQL Server

  2. Menyisipkan data ke dalam tampilan (SQL Server)

  3. Nonaktifkan Akun SA di SQL Server (Contoh T-SQL)

  4. Optimalisasi kueri SQL:Praktik terbaik untuk meningkatkan kinerja

  5. Tidak mendapatkan hitungan yang benar dalam SQL