Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tại sao FireError không thành công trong C # 2012, nhưng hoạt động trong VB, trong khi FireInformation hoạt động ở cả hai?

Bạn có thể nhầm lẫn cú pháp tương tự nhưng khác nhau để kích hoạt sự kiện lỗi so với thông tin từ Thành phần Tập lệnh (tác vụ luồng dữ liệu) so với Nhiệm vụ tập lệnh (luồng điều khiển). Intellisense cho Component chỉ ra rằng tham số là pbCancel trong khi fireAgain tương ứng với tham số của Nhiệm vụ thông tin.

Thành phần tập lệnh

Ví dụ về thành phần tập lệnh 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);
}

Thành phần 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

Không cần phải chỉ định rõ ràng rằng một tham số là By Reference vì điều đó dường như được thực hiện trong định nghĩa so với yêu cầu C # để chỉ định nó cũng khi gọi. ByRef vs ByVal Clarification

Tác vụ tập lệnh

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

Tóm tắt

  • C # yêu cầu bạn chỉ định refout từ khóa. Chúng không phải là từ đồng nghĩa
  • VB cho phép bạn làm bất cứ điều gì
  • Sự kiện lỗi trong Thành phần có tham số hủy


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trong SQL Server, làm cách nào để tạo ID khóa chính tự động tăng dần bao gồm năm, một ký tự đặc biệt và một chuỗi số tuần tự?

  2. Thủ tục hoặc hàm !!! có quá nhiều đối số được chỉ định

  3. Cập nhật các thuộc tính Xml với các giá trị mới trong bảng SQL Server 2008

  4. Cách gặp lỗi sql trong thủ tục được lưu trữ

  5. ánh xạ dữ liệu giữa cùng một máy chủ nhưng các cơ sở dữ liệu khác nhau có cùng tên bảng