2009-07-22 17 views
0

ich folgendes Szenario hauptsächlichwie ein Rest Webdienst von SQL Server verbrauchen

  • einige echte Grund Rest Web-Service haben, ich bin die Existenz einer einzigen Datensatz nur die Überprüfung, es ist nur eine einzige Validierung, ich bin bewegt nicht Hunderte von Reihen um ...

  • , die von sQL Server 2005, sQL 2008 ... und ja, sQL 2000 und sQL 6.5 (autsch!)

  • aufgerufen werden soll ich denke, Mit Sql 2005 und 2008 konnte ich eine Montage realisieren Bly mit HttpWebRequest ...

  • Wie wäre es mit SQL 2000 und 6.5 ??? vielleicht mit curl thru xp_cmdshell ???

hat jemand versucht, so etwas zu tun?

- einige interessante Links, die ich

SQL Server - Using CLR integration to consume a Web Service

http://blogs.msdn.com/sqllive/archive/2008/06/18/accessing-rest-based-web-services-using-sql-clr.aspx

http://www.simple-talk.com/sql/sql-server-2005/practical-sql-server-2005-clr-assemblies/

http://curl.haxx.se/

+0

ich schaffen würde ein Anwendungsdienst, der für die Durchführung dieser Arbeit zuständig ist, anstatt direkt von SQL Server aus zu arbeiten. Auf diese Weise müssen Sie sich nicht um die SQL Server-Version kümmern (so viel) ... –

+0

Ja, ich verstehe, was Sie meinen, das Problem ist, dass wir über eine Anwendung sprechen, die fast alle Geschäftslogik codiert hat in gespeicherten Prozeduren, und wir möchten es so behalten, weil auf die gespeicherten Prozeduren direkt von mehreren Stellen aus zugegriffen wird ... Ich meine, diese gespeicherten Prozeduren sind eine Art API für die Anwendung ... – opensas

Antwort

1

hey gefunden haben, was halten Sie von dieser Lösung denken, die gerade gekommen in meinen Gedanken

ich eine Tabelle in SQL mit den folgenden Feldern:

ID, URL, Anfrage, Antwort, HTTP_STATUS, domain_user, domain_password, Ergebnis, BEGIN_TIME, end_time

und ich eine Visual Basic-exe, oder einfach nur ein vbscript, wird aus der Schale mit den folgenden Informationen läuft

call_rest.vbs Server, db, Tabelle, id, dbuser, dBPassword

oder nur

call_rest.vbs udl_file, Tisch, id

call_rest, eine Verbindung zur Datenbank (dbuser & dbpassword verwenden), um die Daten aus der Tabelle liest, ruft den Rest Webservice (wie domain_user imitierten) und schreibt das Ergebnis in Reaktion, HTTP_STATUS und Ergebnisfelder (es kann auch komplette BEGIN_TIME und end_time, für Prüfzwecke) ...

ich denke, es arbeiten kann, und ich konnte diese Lösung für alle Version von sQL verwenden ...

+2

Das macht viel besser Sinn, als wenn Ihre Datenbank Web-Service-Aufrufe macht, was sehr wenig Sinn macht. –