{"id":824,"date":"2007-11-30T21:10:15","date_gmt":"2007-11-30T20:10:15","guid":{"rendered":"http:\/\/www.glorf.it\/blog\/2007\/11\/30\/allgemein\/stored-procedure-generator"},"modified":"2008-07-19T12:21:31","modified_gmt":"2008-07-19T10:21:31","slug":"stored-procedure-generator","status":"publish","type":"post","link":"http:\/\/www.glorf.it\/blog\/2007\/11\/30\/allgemein\/stored-procedure-generator","title":{"rendered":"Stored-Procedure-Generator"},"content":{"rendered":"<p>In seinem Artikel &quot;<a href=\"http:\/\/www.codeproject.com\/cs\/database\/SqlProcedure.asp\">SqlProcedure &#8211; Improve Database Performance, Eliminate Errors and Reduce Code<\/a>&quot; stellt &quot;adambl&quot; ein Werkzeug vor mit dem man automatisiert Stored-Procedures f&#252;r seine Datenzugriffsschicht generieren lassen kann. <\/p>\n<blockquote><p>This article includes a utility to generate wrappers for stored procedures that improve performance and eliminate certain run-time errors, and a Framework for unit testing of the wrappers.<\/p>\n<p>Background<\/p>\n<p>If you are using an ORM Framework for managing data persistence (like NHibernate), then you don&#x0027;t have the problem this article tackles, but if your code has a hand-crafted data access layer and executes stored procedures with SqlDataReader, then read on.<\/p><\/blockquote>\n<p>In der Vergangenheit musste ich leider sehr oft erleben, dass generierter Code h&#228;ufig genug suboptimal war. Andererseits sollte eine mittelm&#228;&#223;ige Prozedur f&#252;r 80% der F&#228;lle reichen, vielleicht sogar f&#252;r 95%, je nach Anforderungen. Wir bedienen beispielsweise eher kleine und mittlere B&#252;ros, da sind es bestimmt 90%. Wenn man an die F&#228;lle geht, die den Hotspot bedienen, dann kann man ja immer noch Hand anlegen. Sollte man allerdings Anwendungen f&#252;r massive-parallele Bearbeitungen schreiben, dann empfehle ich f&#252;r alles durchdachte Handarbeit&#8230; <\/p>\n<p>Ein unsch&#228;tzbarer Vorteil: Wenn man bei &#196;nderungen in der Datenbank nur auf das Kn&#246;pfchen dr&#252;cken muss und die meisten Prozeduren sind automatisch angepasst, dann ist das nat&#252;rlich ein riesen Produktivit&#228;tsgewinn. <\/p>\n<p>Wer sowas braucht, der sollte sich das Teil mal ansehen, bevor er sich selber ans Werk macht. Vielleicht ist es ja parametrisierbar oder &#252;ber Templates steuerbar (geht aus dem Artikel nicht hervor). &quot;<a href=\"http:\/\/en.wikipedia.org\/wiki\/Not_Invented_Here\">Not invented here<\/a>&quot; ist mega-out. \ud83d\ude09<\/p>\n<p><a href=\"http:\/\/www.codeproject.com\/cs\/database\/SqlProcedure.asp\">Da geht lang.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In seinem Artikel &quot;SqlProcedure &#8211; Improve Database Performance, Eliminate Errors and Reduce Code&quot; stellt &quot;adambl&quot; ein Werkzeug vor mit dem man automatisiert Stored-Procedures f&#252;r seine Datenzugriffsschicht generieren lassen kann. This article includes a utility to generate wrappers for stored procedures that improve performance and eliminate certain run-time errors, and a Framework for unit testing of [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[236,235],"_links":{"self":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/824"}],"collection":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/comments?post=824"}],"version-history":[{"count":1,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/824\/revisions"}],"predecessor-version":[{"id":1256,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/824\/revisions\/1256"}],"wp:attachment":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/media?parent=824"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/categories?post=824"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/tags?post=824"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}