anoniem Geplaatst: 19 oktober 2002 Delen Geplaatst: 19 oktober 2002 Ik ben bezig met een op stored procedure gebaseerde (web)applicatie en vraag me af hoe ik de inhoud van een bepaalde stored procedure kan uitlezen (en dan bedoel ik dus niet via de Enterprise Manager ;)). Is daar een SQL query voor te maken? Quote Link naar reactie
anoniem Geplaatst: 19 oktober 2002 Auteur Delen Geplaatst: 19 oktober 2002 Lijkt me niet. Zover ik weet is een stored procedure een stukje programmering, en sql leest databasetabellen. Volgens mij dus.... Quote Link naar reactie
anoniem Geplaatst: 20 oktober 2002 Auteur Delen Geplaatst: 20 oktober 2002 [quote:e5f05c8cc4="Wiep Corbier"]Lijkt me niet. Zover ik weet is een stored procedure een stukje programmering, en sql leest databasetabellen. [/quote:e5f05c8cc4] En wat denk je dat een stored procedure als resultaat terug kan geven... Dus dan stop je de stored procedure code in een enkele record met een veld die je als resultaat teruggeeft. Blijft alleen de originele vraag nog staan... Quote Link naar reactie
anoniem Geplaatst: 20 oktober 2002 Auteur Delen Geplaatst: 20 oktober 2002 Een goed idee van je om stored procedures te gebruiken voor een web applicatie! Een goed middel tegen SQL injection! Gebruik het in combinatie met reguliere expressies en je bent al een heel eind op weg naar een hele veilige webapplicatie. Voorbeeld Stored Procedures en ASP(JScript): [url]http://msdn.microsoft.com/library/default.asp?url=/library/en- us/ado270/htm/mdproactiveconnectionjs.asp[/url] Met Stored Procedures bepaal je het aantal parameters, op welke plaats die moeten komen en ook nog eens van welk datatype ze moeten zijn (in de SQL statement). Op die manier worden de statements wel heel veel veiliger. edit: vraag niet begrepen :( --- Ramses Quote Link naar reactie
anoniem Geplaatst: 20 oktober 2002 Auteur Delen Geplaatst: 20 oktober 2002 [quote:567e8d5ac2="ramses"]edit: vraag niet begrepen :([/quote:567e8d5ac2]Ik dacht al, wat begint hij nou te zwetsen over dingen die ik allang heb "uitgevonden" ;) Jammer is wel dat je er meteen ASP bij haalt ;) Quote Link naar reactie
anoniem Geplaatst: 20 oktober 2002 Auteur Delen Geplaatst: 20 oktober 2002 Mijn excuses voor mijn vorige post :wink: Het kan - zover ik weet - op twee manieren: Manier 1: [code:1:64621aeed1] SELECT text FROM syscomments, sysobjects WHERE sysobjects.id = syscomments.id AND syscomments.texttype = 2 AND sysobject.name = 'spNaam'; [/code:1:64621aeed1] [b:64621aeed1]Ik ben er alleen nog niet uit of het texttype 1 of 2 is.[/b:64621aeed1] De tweede manier is eenvoudiger en als volgt: [code:1:64621aeed1] sp_helptext 'spNaam'; [/code:1:64621aeed1] Met behulp van een SP :) --- Ramses Quote Link naar reactie
anoniem Geplaatst: 21 oktober 2002 Auteur Delen Geplaatst: 21 oktober 2002 Waarbij het gebruik van de system stored procedure sp_helptext natuurlijk de voorkeur geniet. Sowieso raadt MS aan om nooit rechtstreeks system tables uit te lezen aangezien deze niet gegarandeerd dezelfde structuur behouden over verschillende versies. Niet dat dat bij zo'n adhoc query overigens uit maakt ;) btw. andere (omslachtige) optie is in de QA op F8 rammen (object browser) en daarna met rechtermuisknop op je sproc klikken en "script to new window as create" (ofzoiets) kiezen. Als je overigens alleen de parameters wil weten van de sproc kan je ook sp_help (ALT-F1 in QA) gebruiken. tip: voeg sp_helptext toe als sneltoets in de QA (tools >> customize) Quote Link naar reactie
anoniem Geplaatst: 21 oktober 2002 Auteur Delen Geplaatst: 21 oktober 2002 [quote:4ab1a5bf22="Annie"]Als je overigens alleen de parameters wil weten van de sproc kan je ook sp_help (ALT-F1 in QA) gebruiken.[/quote:4ab1a5bf22]Nu ik toch bezig ben: kan ik ook de parameters en de "rest" apart krijgen? De sp_helptext '...' werkt in ieder geval: thanx a lot! Quote Link naar reactie
anoniem Geplaatst: 21 oktober 2002 Auteur Delen Geplaatst: 21 oktober 2002 Hoezo apart? Snap je vraag niet helemaal. Je kan de sp_helptext overigens ook gebruiken op de system stored procedures. Alhoewel ze niet allemaal toonbeelden van net programmeren zijn kan je daar wel vaak geinige truukjes of undocumented functies uit halen. En dus ook de informatie die je nodig hebt voor het opvragen van de parameters van een stored proc. Met een beetje van mezelf en een beetje van Ma...errr, microsoft kom ik bijvoorbeeld voor de params op onderstaande: [code:1:e714930517] SELECT 'Parameter_name' = name, 'Type' = type_name(xusertype), 'Length' = length, 'Prec' = CASE WHEN type_name(xtype) = 'uniqueidentifier' THEN xprec ELSE OdbcPrec(xtype, length, xprec) END, 'Scale' = OdbcScale(xtype,xscale), 'Param_order' = colid, 'Collation' = collation FROM syscolumns WHERE id = OBJECT_ID('STORED_PROC_NAAM') [/code:1:e714930517] Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen