Benutzer mit den meisten Antworten
SSIS Skriptkomponente - Transformation NULL-Werte

Frage
-
Hallo,
ich versuche eine Skriptkomponente in einem Datenfluss zur Transformation zu nutzen. Die Eingabespalten können NULL-Werte enthalten.
über eine IF-Bedinung habe ich versucht NULL-Werte bei den Berechnungen auszuschließen:
------------------------------------------------------------------------------------
public override void Eingabe0_ProcessInputRow(Eingabe0Buffer Row)
{
if (Row.Spalte1 != null && Row.Spalte2 != null)
{...Berechnungen...}
}
------------------------------------------------------------------------------------
Trotzdem erhalte ich die Fehlermeldung, dass eine Spalte NULL-Werte enthält. Wie kann ich die NULL-Werte im Skript rausfiltern oder irgendwie das ganze zum Laufen bringen??
Im Pre-execute??
Fragen über Fragen.
Vielen Dank im Voraus!!!!!
D
Antworten
-
Siehe auch MSDN ScriptBuffer.IsNull Method => Examples, dort steht der autogenerierte Code für BufferWrapper mit der _IsNull Property als Beispiel.
Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de- Als Antwort markiert Andrei Talmaciu Montag, 24. Januar 2011 12:30
-
Hallo,
das null aus C# ist was ganz anderes als ein NULL Wert in SQL. Mit null kannst Du nur prüfen, ob ein Objekt instanziiert ist oder nicht. In C# wäre das Äquivalent DBNull, aber auch das brauchst Du nicht verwenden. Der Code-Generator erzeugt auch ein Property "Spalte1_IsNull", das Du zur Prüfung verwenden kannst:
public override void Eingabe0_ProcessInputRow(Eingabe0Buffer Row)
{
while (Row.NextRow())
{
if (!Row.Spalte0_IsNull)
{
Row.Spalte0 += 1;
}
}
}
Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de- Bearbeitet Olaf HelperMVP Donnerstag, 20. Januar 2011 11:57 Korrektur NextRow
- Als Antwort markiert Andrei Talmaciu Montag, 24. Januar 2011 12:30
Alle Antworten
-
Hallo,
das null aus C# ist was ganz anderes als ein NULL Wert in SQL. Mit null kannst Du nur prüfen, ob ein Objekt instanziiert ist oder nicht. In C# wäre das Äquivalent DBNull, aber auch das brauchst Du nicht verwenden. Der Code-Generator erzeugt auch ein Property "Spalte1_IsNull", das Du zur Prüfung verwenden kannst:
public override void Eingabe0_ProcessInputRow(Eingabe0Buffer Row)
{
while (Row.NextRow())
{
if (!Row.Spalte0_IsNull)
{
Row.Spalte0 += 1;
}
}
}
Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de- Bearbeitet Olaf HelperMVP Donnerstag, 20. Januar 2011 11:57 Korrektur NextRow
- Als Antwort markiert Andrei Talmaciu Montag, 24. Januar 2011 12:30
-
Siehe auch MSDN ScriptBuffer.IsNull Method => Examples, dort steht der autogenerierte Code für BufferWrapper mit der _IsNull Property als Beispiel.
Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de- Als Antwort markiert Andrei Talmaciu Montag, 24. Januar 2011 12:30