Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

फ़ायररर सी # 2012 में विफल क्यों होता है, लेकिन वीबी में काम करता है, जबकि फायरइन्फॉर्मेशन दोनों में काम करता है?

आप स्क्रिप्ट घटक (डेटा प्रवाह कार्य) बनाम स्क्रिप्ट कार्य (नियंत्रण प्रवाह) से त्रुटि बनाम सूचना ईवेंट फायरिंग के लिए समान लेकिन भिन्न सिंटैक्स को भ्रमित कर सकते हैं। घटक के लिए इंटेलिजेंस इंगित करता है कि पैरामीटर pbCancel है जबकि फ़ायरअगेन सूचना कार्य के पैरामीटर से मेल खाता है।

स्क्रिप्ट घटक

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);
}

वीबी घटक

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

स्पष्ट रूप से यह निर्दिष्ट करने की कोई आवश्यकता नहीं है कि एक पैरामीटर संदर्भ द्वारा है क्योंकि ऐसा लगता है कि परिभाषा बनाम सी # आवश्यकता में इसे आमंत्रण पर भी निर्दिष्ट करने के लिए किया गया है।ByRef बनाम ByVal Clarification

स्क्रिप्ट टास्क

सी#

    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);
    }

वीबी

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

सारांश

  • C# के लिए आपको ref निर्दिष्ट करने की आवश्यकता है और out खोजशब्द। वे समानार्थी नहीं हैं
  • VB आपको कुछ भी करने देता है
  • घटकों में त्रुटि घटना एक रद्द पैरामीटर है


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं SQL सर्वर 2008 में ऑब्जेक्ट निर्भरताओं के साथ कॉलम कैसे छोड़ूं?

  2. SQL सर्वर प्राथमिक कुंजी के बिना संकुल अनुक्रमणिका के साथ तालिका बना रहा है

  3. SQL Server 2008 में XML फ़ील्ड से मानों का चयन करें

  4. SQL सर्वर 2008 R2 के लिए Try_Convert

  5. ASP.NET साइट में कोड बनाम कॉन्फ़िग फ़ाइल में SQL सर्वर कनेक्शन स्ट्रिंग