Announcement

Collapse
No announcement yet.

Assembly im SQL Server 2012 einbinden -> und trigger

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

  • Assembly im SQL Server 2012 einbinden -> und trigger

    Hi an alle,

    versuche ein Assembly in de SQL Server einzubinden um auf ein insert zu reagieren aber bekomme die Fehlermeldung nicht zu finden im SQL Katalog.

    Hab überall gesucht, es gibt Bespiele aber irgendwie klappt es nicht. Es geht drum tB. um sms zu verschicken oder mails zu versenden oder oder oder...
    Hab ne kleine ProbeFunktion geschrieben ohne DB Zugriff nur zum testen.

    Assembly:-------------------------------

    public class SendData
    {

    public static void SendSMS()
    {
    BasicHttpBinding bind = new BasicHttpBinding();
    bind.Security.Mode = BasicHttpSecurityMode.Transport;
    SMS.smscreator.SendSoapClient client = new SMS.smscreator.SendSoapClient(bind, new EndpointAddress("https://www.smscreator.de/gateway/send.asmx"));

    try
    {
    var res = client.SendSMS("xxx", "xx", "Test SMS - Client Report ", string.Empty, new string[] { xxx;xx", "xxx;xx" }, "SQL Server Event INSERT - #Feld1#", SMS.smscreator.SmsTextTyp.Standard, DateTime.MinValue);


    if (res.StatusCode != SMS.smscreator.LoginStatus.Ok)
    {

    //System.Diagnostics.Debug.WriteLine("Res : " + res.StatusCode.ToString());
    }
    else
    {
    //System.Diagnostics.Debug.WriteLine("Res : " + res.Value.JobId);
    }
    }
    catch (Exception ee)
    {
    //System.Diagnostics.Debug.WriteLine(ee.Message + System.Environment.NewLine + ee.StackTrace);
    }
    }

    }

    SQL:-----

    ALTER DATABASE NCC1704 SET TRUSTWORTHY ON;

    USE NCC1704
    GO

    CREATE ASSEMBLY [SendData]
    AUTHORIZATION [dbo]
    FROM 'D:\SendData.dll'
    WITH PERMISSION_SET = UNSAFE
    GO


    CREATE TRIGGER [dbo].[SendErrorData] ON [dbo].[Errors]
    AFTER INSERT AS
    EXTERNAL NAME [SendData].[SendData].[SendSMS]

    Funktioniert alles in einer Windows Anwendung.

    Gruß Kosta

  • #2
    Hmm... kennt sich niemand aus oder hab ich unklar bzw. nicht ausführlich genug beschrieben? Bitte bescheid geben wenn es so ist.
    Noch was ich seh diesen Beitrag gar nicht unter den neu eingestellten.

    Comment


    • #3
      Noch was ich seh diesen Beitrag gar nicht unter den neu eingestellten.
      Ich schon ........und "Neu" ist er dann nur, wenn du ihn noch nicht gelesen hast.
      Christian

      Comment


      • #4
        Auch hallo,

        siehe http://msdn.microsoft.com/de-de/libr...(v=vs.80).aspx wie man eine Assembly "zu Fuss" erstellt und einbindet.
        MfG
        Cheat-Sheets for Developers / Programming Quotes

        Comment


        • #5
          Ach sooooo..... dankeschön Christian

          Comment


          • #6
            Markus danke, ich versuche das Assembly direkt über den SQL Server einzubinden im Menüpinkt Neue Assembly habe aber keine Möglichkeit gefunden Dot.Net 4.0 einzubinden wie es im Beispiel händisch beschrieben wird. Das wird mein Problem sein.....

            Gruß Kosta

            Comment


            • #7
              habe aber keine Möglichkeit gefunden
              Das Beispiel hat sich mit VC# 2010 und dem Management Studio (jew. Expressversion) erfolgreich nachstellen lassen. Im Anhang die von VS erstellte Library, die das MS auch akzeptiert.
              Attached Files
              MfG
              Cheat-Sheets for Developers / Programming Quotes

              Comment


              • #8
                Hi Markus, danke.
                Habe es ausprobiert und natürlich geht die helloworld.dll aber es ist auch nicht viel code, die tut ja fast gar nichts.
                Meine dagegen hat mehrere Abhängigkeiten zum Framework und der SQL Server findet die nicht.

                Fehlermeldung
                "Die system.servicemodel, version=4.0.0.0, culture=neutral, publickeytoken=b77a5c561934e089.-Assembly wurde im SQL-Katalog nicht gefunden. (.Net SqlClient Data Provider)"

                Habe natürlich versucht alle dlls die er bemängelt in den DebugOrdner zu kopieren ohne Erfolg.

                Gruß Kosta

                Comment


                • #9
                  Hi, habs mit xp_cmdshell gemacht und es klappt

                  Comment

                  Working...
                  X