Announcement

Collapse
No announcement yet.

CLR Aufruf Einbettung VB.net

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

  • CLR Aufruf Einbettung VB.net

    Hallo,
    folgendes Problem passt sicherlich in verschidene Foren, da es aber primär um die Einbindung in den SQL Server geht, poste ich es hier:

    ich habe in einer Tabellenzelle eine Formel der Art: 12*(4+20) stehen. Diese möchte ich nun in einer Procedur auflösen und mit dem resultierenden Ergebnis Werte anderer Tabellen updaten. Bisher (SQL Server 2000) geschah das in einem JScript (Befehl eval()) welches in einem DTS Paket lief.

    Nach Umstellung auf SQL Server2005 und Einbindung des Scripts in ein SSIS Paket benötigt die Ausführung für 12 Monatswerte 2 Min!
    Daher möchte ich ein Assembly schreiben, welches vom SQL Server aufgerufen wird.

    Ich kann die Eval() Funktion aus Vb.net verwenden (Einbettung der Microsoft SriptControl Komponente) um dies DB unabhängig auszuführen.

    Wie aber kann ich die beiden Technologien (VB.net, CLR Integration SQL Server2005) miteinander verheiraten? Geht dies in diesem Fall überhaupt (Wegen Einbettung der COM Komponente)?
    Schon mal Danke für Eure Tipps

  • #2
    Normalerweise sollte sich jedes assembly einbinden lassen, daher sollte es auch mit dem COM kein Problem geben, vermute ich mal. Genaueres erfährt man vielleicht hier:
    http://vb-magazin.de/forums/forums/thread/2713.aspx
    oder hier:
    http://www.terrashop.de/ean/9780470054031/
    und sicher ein bisschen auch direkt bei MS:
    http://msdn2.microsoft.com/de-de/lib...36(en-us).aspx

    Die Frage ist nur - kann man das nicht vielleicht direkt mit TSQL lösen? Es gibt ja dynamic SQL, bei dem man einen String zusammenbauen und mit Exec() ausführen kann. Damit liessen sich solche Formeln wie in deinem Beispiel auch ganz einfach berechnen. Google doch mal nach "dynamic sql" ...

    bye,
    Helmut

    Comment


    • #3
      Danke für die Links, muss mal schauen ob ich da was finde.

      Zur Anregung bezüglich dynamic SQL: Das geht in diesem Fall schlecht, weil die Applikation die Formeln direkt in eine Tabellenzelle schreibt. Die Auflösung der Formel ist dann recht aufwändig, je nach Komplexität (Punkt vor Strich......)

      Das ganze mit einer fertigen Funktion (eval()) abzufackeln erscheint mir daher als interessantere Lösung, insbesondere da es vermutlich performater ist als eine zigfach geschachtelte if else Prozedur die bei der Ausführung den String zerlegen und dann die Einzelteile als mathematische Komponenten wieder zusammenstückeln muss.
      Gruß Christian

      Comment

      Working...
      X