Announcement

Collapse
No announcement yet.

SSIS-Paket

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SSIS-Paket

    Hallo zusammen,
    hat jemand eine Idee wie ich in einem SSIS-Paket umsetzen könnte, dass ich aus einer Datenbank als Quelle in eine csv.Datei ein begrenztes Datum ausgeben kann? Ich will praktisch das Paket einmal bauen und dann z.B. den Monat auswählen ohne dass ich dann immer im Paket rumbauen muss. Wäre dankbar für jeden Tip.

  • #2
    Hallo,

    in SSIS Paketen ist (eigentlich) keine Interaktion vorgesehen, die Paket sollen vollautomatisch ablaufen.

    Eine Möglichkeit wäre eine einfache Textdatei abzulegen, in der Du das gewünschte Datum einträgst.
    Im Paket wird dann die Datei eingelesen, z.B. über ein Script-Task, der Wert in eine Variable geschrieben, die Du dann in einem weitere Datenfluss-Task als Wert für einen Abfrage Parameter verwendest, um die Datensätze einzuschränken.
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      DatePart ?

      Hallo,
      wenn die Variable irgendwie am Systemdatum festgemacht werden kann, koennte DatePart zur Loesung benutzt werden.

      Wie Olaf schon sagte, einen ScriptTask benutzen.

      z. B.

      [code]Text
      Code:
      Imports System
      Imports System.Data
      Imports System.Math
      Imports Microsoft.SqlServer.Dts.Runtime
      
      Public Class ScriptMain
      
      	Public Sub Main()
      		Dts.Variables("Kalenderwoche").Value = _
      		DatePart("ww", Now(), FirstDayOfWeek.Monday, FirstWeekOfYear.FirstFourDays)
      		
      		Dts.TaskResult = Dts.Results.Success
      	End Sub
      	
      End Class
      Beschreibung
      Die Funktion DatePart ist Bestandteil des .NET-Frameworks und gibt einen Teil
      des übergebenen Datums zurück. Dies kann der Monat, das Quartal, der Wochentag
      oder wie in diesem Beispiel die Kalenderwoche sein.
      Der Funktion DatePart können bis zu vier Parameter übergeben werden.
      Das Ergebnis wird immer als Integerwert zurückgegeben.
      Der erste Parameter gibt den gewünschten Datumsteil an (ww = Kalenderwoche), der
      zweite Parameter ist das auszuwertende Datum.
      In diesem Beispiel haben wir das Systemdatum verwendet: Now().
      VB.NET bietet zwei Möglichkeiten für die Angabe des Datumsteils.
      Entweder ein String-Kürzel (ww) oder einen Enumerationswert (DateInterval.WeekOfYear).
      Der dritte und vierte Parameter sind optional. Werden diese Parameter
      nicht mit übergeben, wird die Berechnung nach dem amerikanischen System durchgeführt.
      Für den Wochentag oder den Monat ist dies natürlich unwichtig. Allerdings
      weicht die Berechnung der Kalenderwoche in den USA von der Berechnung in Europa ab.
      In den USA beginnt die Woche mit dem Sonntag und die erste Kalenderwoche
      im Jahr beinhaltet immer den 1. Januar.
      In Europa gilt dagegen die ISO-Norm 8601: Die Woche beginnt mit dem Montag
      und die 1. Kalenderwoche hat mindestens vier Tage im aktuellen Jahr.
      In diesem Beispiel DatePart("ww", Now(), FirstDayOfWeek.Monday
      FirstWeekOfYear.FirstFourDays)
      wird die Kalenderwoche des Systemdatums nach ISO-Norm als Integerwert zurückgegeben.


      Bsp. zu DatePart : http://msdn.microsoft.com/en-us/libr...8VS.71%29.aspx

      mfg

      BD
      Zuletzt editiert von bdittmar; 31.07.2010, 14:42.

      Comment


      • #4
        Ich löse, das immer so, dass ich quasi eine Steuerungs-tabelle in der DB anlege. Dort gebe ich die Felder ein, aus denen dann das Paket die Variablen ausliest.
        In Deinem Fall kannst Du ein einziges Datumsfeld in eine separate Tabelle erstellen und dein begrenzendes Datum von da aus auslesen. Nerdig wird das ganze dann noch, wenn du mit c# ein grafisches Frontend zum bearbeiten dieser Tabelle baust

        Comment


        • #5
          Ich hätte auch eine Steuertabelle vorgeschlagen. Erscheint mir best-of-practice zu sein

          Comment


          • #6
            Vielen Dank für die Unterstützung. Schön, dass es das Forum gibt, da kann man viel lernen!

            Comment

            Working...
            X