2012-09-11 5 views
6

Ich möchte den SQL Server Service Broker verwenden, um eine Nachricht (in SQL Server) zu generieren und in einer externen C# -App zu lesen.Ist es möglich, von einer C# -App auf SQL Server Service Broker zuzugreifen?

Ich bin auf Windows 2003 mit SQL Server 2005 beschränkt. Ich habe eine Reihe von Artikeln gelesen, die darauf hinweisen, dass dies eine Möglichkeit ist, aber ich sehe kein Beispiel irgendwo. Ist das möglich?

+0

Sorry für keine konstruktive Idee zu der Frage, wollte nur darauf hinweisen, dass SQL Server 2005 nicht einmal erweiterte Unterstützung in einem Jahr hat, so etwas neu zu kodieren könnte etwas zu überdenken sein. –

+0

Führt eine Sproc eine Option aus? – JeffO

+0

@JeffO Ja, ich kann einen Sproc ausführen, aber der Zweck der Übung besteht nicht darin, die Datenbank nach Ereignissen abzufragen, sondern sie in der C# -App zu empfangen. – AngryHacker

Antwort

3

T-SQL verfügt über Anweisungen für den Zugriff auf Service Broker: SEND, RECEIVE und andere. Sie können ADO.NET verwenden, um sie auszuführen.

+0

Was hat SSMS mit dem Service Broker zu tun? Fehle ich etwas? – AngryHacker

+0

@AngryHacker, ich denke meine Antwort ist nicht sehr klar. Lassen Sie mich eine Frage stellen: Warum kann Ihre C# -App keine Ereignisse lesen, indem Sie eine RECEIVE-Anweisung ausführen? – usr

+1

@AngryHacker: Service Broker ist vollständig in SQL Server enthalten. Sie verwenden T-SQL (['SEND'] (http://msdn.microsoft.com/de-de/library/ms188407.aspx), [' RECEIVE'] (http://msdn.microsoft.com/de) -us/library/ms186963.aspx)) und Sie Nachrichten von einer SQL Server-Instanz an eine andere SQL Server-Instanz austauschen. Sie können keine Nachrichten an eine C# -Anwendung senden, aber Sie * können * Nachrichten an eine Warteschlange (in SQL Server gehostet) senden, von der die C# -Anwendung die Nachricht (en) liest. –