<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>SQL Server (και άλλες databases)</title><link>https://www.dotnetzone.gr:443/cs/forums/28/ShowForum.aspx</link><description>Θέματα που αφορούν τον SQL Server (7.0, 2000, 2005) αλλά και Oracle, Access, DB2, MySQL, κλπ.</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: execute(sqlquery)</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/44996.aspx</link><pubDate>Tue, 30 Sep 2008 20:01:18 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:44996</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/44996.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=44996</wfw:commentRss><description>&lt;P&gt;Δοκίμασες να αφαιρέσεις ότι έχει να κάνει με την @level;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;DECLARE&lt;/SPAN&gt; @SQLString &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;nvarchar&lt;/SPAN&gt;(500);&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;DECLARE&lt;/SPAN&gt; @ParmDefinition &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;nvarchar&lt;/SPAN&gt;(500);&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;DECLARE&lt;/SPAN&gt; @max_title &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;varchar&lt;/SPAN&gt;(30);&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;SET&lt;/SPAN&gt; @SQLString = N&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;'SELECT @max_titleOUT = max(Title)&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM AdventureWorks.HumanResources.Employee'&lt;/SPAN&gt;;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;SET&lt;/SPAN&gt; @ParmDefinition = &lt;A href="mailto:N'@max_titleOUT"&gt;N&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;'@max_titleOUT&lt;/A&gt; varchar(30) OUTPUT'&lt;/SPAN&gt;;&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;EXECUTE&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:brown;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;sp_executesql&lt;/SPAN&gt; @SQLString, @ParmDefinition, @max_titleOUT=@max_title &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;OUTPUT&lt;/SPAN&gt;;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;SELECT&lt;/SPAN&gt; @max_title;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Επίσης, στη σελίδα που σου έδωσα το link έχει πλήρη επεξήγηση του πως δουλεύει η sp_executesql, τη διάβασες;&lt;/P&gt;</description></item><item><title>Απ: execute(sqlquery)</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/44994.aspx</link><pubDate>Tue, 30 Sep 2008 19:33:39 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:44994</guid><dc:creator>Hector</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/44994.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=44994</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;KelMan:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;Με την EXECUTE δεν μπορείς να κάνεις κάτι τέτοιο. Μπορείς όμως με την sp_executesql. Παράδειγμα από &lt;a href="http://msdn.microsoft.com/en-us/library/ms188001.aspx"&gt;books on line&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-weight:normal;font-size:11px;color:black;font-family:Courier New;background-color:transparent;"&gt;&lt;span style="font-weight:normal;font-size:11px;color:blue;font-family:Courier New;background-color:transparent;"&gt;DECLARE&lt;/span&gt; @IntVariable &lt;span style="font-weight:normal;font-size:11px;color:blue;font-family:Courier New;background-color:transparent;"&gt;int&lt;/span&gt;;&lt;br&gt;&lt;span style="font-weight:normal;font-size:11px;color:blue;font-family:Courier New;background-color:transparent;"&gt;DECLARE&lt;/span&gt; @SQLString &lt;span style="font-weight:normal;font-size:11px;color:blue;font-family:Courier New;background-color:transparent;"&gt;nvarchar&lt;/span&gt;(500);&lt;br&gt;&lt;span style="font-weight:normal;font-size:11px;color:blue;font-family:Courier New;background-color:transparent;"&gt;DECLARE&lt;/span&gt; @ParmDefinition &lt;span style="font-weight:normal;font-size:11px;color:blue;font-family:Courier New;background-color:transparent;"&gt;nvarchar&lt;/span&gt;(500);&lt;br&gt;&lt;span style="font-weight:normal;font-size:11px;color:blue;font-family:Courier New;background-color:transparent;"&gt;DECLARE&lt;/span&gt; @max_title &lt;span style="font-weight:normal;font-size:11px;color:blue;font-family:Courier New;background-color:transparent;"&gt;varchar&lt;/span&gt;(30);&lt;br&gt;&lt;br&gt;&lt;span style="font-weight:normal;font-size:11px;color:blue;font-family:Courier New;background-color:transparent;"&gt;SET&lt;/span&gt; @IntVariable = 197;&lt;br&gt;&lt;span style="font-weight:normal;font-size:11px;color:blue;font-family:Courier New;background-color:transparent;"&gt;SET&lt;/span&gt; @SQLString = N&lt;span style="font-weight:normal;font-size:11px;color:red;font-family:Courier New;background-color:transparent;"&gt;'SELECT @max_titleOUT = max(Title)&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM AdventureWorks.HumanResources.Employee&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WHERE ManagerID = @level'&lt;/span&gt;;&lt;br&gt;&lt;span style="font-weight:normal;font-size:11px;color:blue;font-family:Courier New;background-color:transparent;"&gt;SET&lt;/span&gt; @ParmDefinition = N&lt;span style="font-weight:normal;font-size:11px;color:red;font-family:Courier New;background-color:transparent;"&gt;'@level tinyint, @max_titleOUT varchar(30) OUTPUT'&lt;/span&gt;;&lt;br&gt;&lt;br&gt;&lt;span style="font-weight:normal;font-size:11px;color:blue;font-family:Courier New;background-color:transparent;"&gt;EXECUTE&lt;/span&gt; &lt;span style="font-weight:normal;font-size:11px;color:brown;font-family:Courier New;background-color:transparent;"&gt;sp_executesql&lt;/span&gt; @SQLString, @ParmDefinition, @level = @IntVariable, @max_titleOUT=@max_title &lt;span style="font-weight:normal;font-size:11px;color:blue;font-family:Courier New;background-color:transparent;"&gt;OUTPUT&lt;/span&gt;;&lt;br&gt;&lt;span style="font-weight:normal;font-size:11px;color:blue;font-family:Courier New;background-color:transparent;"&gt;SELECT&lt;/span&gt; @max_title;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;Ευχαριστώ για την παράθεση του κώδικα. Το πρόβλημα είναι πως το query μου είναι κάθε φορά σταθερό, δεν έχει μεταβλητές μέσα (βλ. @level).&lt;br&gt;Όταν πάω να καλέσω την &lt;span style="font-weight:normal;font-size:11px;color:black;font-family:Courier New;background-color:transparent;"&gt;&lt;span style="font-weight:normal;font-size:11px;color:brown;font-family:Courier New;background-color:transparent;"&gt;sp_executesql &lt;/span&gt;&lt;/span&gt;μου χτυπάει&lt;span style="font-weight:normal;font-size:11px;color:black;font-family:Courier New;background-color:transparent;"&gt;&lt;span style="font-weight:normal;font-size:11px;color:brown;font-family:Courier New;background-color:transparent;"&gt; &lt;/span&gt;&lt;/span&gt;το εξής :&lt;br&gt;Msg 214, Level 16, State 2, Procedure sp_executesql, Line 1&lt;br&gt;Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.&lt;br&gt;&lt;br&gt;Καμιά ιδέα?&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Παναγιώτης Καναβός:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;Το να δημιουργείς και να εκτελείς
ένα SQL string είναι αρκετά επικίνδυνο καθώς σε εκθέτει σε SQL
Injection attacks. Αν δεν ελέγχεις τις παραμέτρους που χρησιμοποιείς
για να χτίσεις το string μπορεί κάποιος χρήστης να ενσωματώσει
εκτελέσιμη SQL μέσα στο δικό σου string και να κάνει αρκετή ζημιά.
Μήπως μπορείς να φτιάξεις ένα και μόνο query το οποίο θα παίρνει
παραμέτρους αντί να χτίζεις το δικό σου? &lt;/p&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;
&lt;br&gt;
Δε διαφωνώ καθόλου μαζί σου αλλά η εφαρμογή που θα χτίζει το συγκεκριμένο query είναι εντελώς ασφαλής και έχω τον πλήρη έλεγχο.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;</description></item><item><title>Απ: execute(sqlquery)</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/44978.aspx</link><pubDate>Tue, 30 Sep 2008 05:58:37 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:44978</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/44978.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=44978</wfw:commentRss><description>&lt;P&gt;Το να δημιουργείς και να εκτελείς ένα SQL string είναι αρκετά επικίνδυνο καθώς σε εκθέτει σε SQL Injection attacks. Αν δεν ελέγχεις τις παραμέτρους που χρησιμοποιείς για να χτίσεις το string μπορεί κάποιος χρήστης να ενσωματώσει εκτελέσιμη SQL μέσα στο δικό σου string και να κάνει αρκετή ζημιά. Μήπως μπορείς να φτιάξεις ένα και μόνο query το οποίο θα παίρνει παραμέτρους αντί να χτίζεις το δικό σου? &lt;/P&gt;</description></item><item><title>Απ: execute(sqlquery)</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/44974.aspx</link><pubDate>Tue, 30 Sep 2008 00:57:15 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:44974</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/44974.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=44974</wfw:commentRss><description>&lt;P&gt;Με την EXECUTE δεν μπορείς να κάνεις κάτι τέτοιο. Μπορείς όμως με την sp_executesql. Παράδειγμα από &lt;A href="http://msdn.microsoft.com/en-us/library/ms188001.aspx"&gt;books on line&lt;/A&gt;:&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;DECLARE&lt;/SPAN&gt; @IntVariable &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;int&lt;/SPAN&gt;;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;DECLARE&lt;/SPAN&gt; @SQLString &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;nvarchar&lt;/SPAN&gt;(500);&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;DECLARE&lt;/SPAN&gt; @ParmDefinition &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;nvarchar&lt;/SPAN&gt;(500);&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;DECLARE&lt;/SPAN&gt; @max_title &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;varchar&lt;/SPAN&gt;(30);&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;SET&lt;/SPAN&gt; @IntVariable = 197;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;SET&lt;/SPAN&gt; @SQLString = N&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;'SELECT @max_titleOUT = max(Title)&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM AdventureWorks.HumanResources.Employee&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WHERE ManagerID = @level'&lt;/SPAN&gt;;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;SET&lt;/SPAN&gt; @ParmDefinition = N&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;'@level tinyint, @max_titleOUT varchar(30) OUTPUT'&lt;/SPAN&gt;;&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;EXECUTE&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:brown;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;sp_executesql&lt;/SPAN&gt; @SQLString, @ParmDefinition, @level = @IntVariable, @max_titleOUT=@max_title &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;OUTPUT&lt;/SPAN&gt;;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;SELECT&lt;/SPAN&gt; @max_title;&lt;/SPAN&gt;&lt;/P&gt;</description></item><item><title>execute(sqlquery)</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/44972.aspx</link><pubDate>Mon, 29 Sep 2008 23:38:06 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:44972</guid><dc:creator>Hector</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/44972.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=44972</wfw:commentRss><description>Καλησπέρα σε όλους.&lt;br&gt;&lt;br&gt;Θα είμαι σύντομος.&lt;br&gt;&lt;br&gt;Έχω μία procedure που χτίζει μία παράμετρο πχ @cmd σύμφωνα με κάποια κριτήρια και στο τέλος καλείται η execute(@cmd). Η @cmd είναι πάντα της μορφής "select count(*) ...".&lt;br&gt;&lt;br&gt;Πώς μπορώ να επιστρέψω σε άλλη μεταβλητή το αποτέλεσμα του execute(@cmd) ???&lt;br&gt;&lt;br&gt;Ευχαριστώ προκαταβολικά.&lt;br&gt;</description></item></channel></rss>