<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlserver.ro/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>T-SQL</title><link>http://sqlserver.ro/forums/15/ShowForum.aspx</link><description /><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Re: Parametru tip int</title><link>http://sqlserver.ro/forums/thread/2607.aspx</link><pubDate>Wed, 05 Sep 2007 12:17:53 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:2607</guid><dc:creator>ssandu</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/2607.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=2607</wfw:commentRss><description>&lt;P&gt;Va multumesc ptr. raspunsuri.&lt;/P&gt;
&lt;P&gt;Am adoptat prima solutie (cea cu functia Table-valued) si a functionat.&lt;/P&gt;</description></item><item><title>Re: Parametru tip int</title><link>http://sqlserver.ro/forums/thread/2606.aspx</link><pubDate>Wed, 05 Sep 2007 11:12:14 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:2606</guid><dc:creator>B_gd_n[ ]Sahlean</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/2606.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=2606</wfw:commentRss><description>&lt;p&gt;Definesti parametrul procedurii de tip NVARCHAR. Cand apelezi procedura stocata ii transmiti lista de valori sub forma unei structuri in format XML. &lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Exemplu: &lt;b&gt;&amp;lt;root&amp;gt; &amp;lt;parametru valoare="111"/&amp;gt; &amp;lt;parametru valoare="..."/&amp;gt; ... &amp;lt;/root&amp;gt;&lt;/b&gt; &lt;/p&gt;

&lt;p&gt;Procesezi datele in format XML transmise ca parametru (vezi @xml) cu ajutorul OPENXML.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Exemplu:&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;DECLARE @xml NVARCHAR(255)&lt;br&gt;SET @xml = '&amp;lt;root&amp;gt; &amp;lt;parametru valoare="111"/&amp;gt; &amp;lt;parametru valoare="222"/&amp;gt; &amp;lt;parametru valoare="333"/&amp;gt; &amp;lt;/root&amp;gt;'&lt;br&gt;&lt;br&gt;DECLARE @id_xml INT&lt;br&gt;EXEC sp_xml_preparedocument @id_xml OUTPUT, @xml&lt;br&gt;&lt;br&gt;&lt;font color="red"&gt;&lt;strike&gt;SELECT *&lt;br&gt;FROM Articol&lt;br&gt;WHERE IdArticol IN&lt;br&gt;(&lt;/strike&gt;&lt;br&gt;SELECT valoare&lt;br&gt;FROM OPENXML (@id_xml, '/root/parametru') WITH ( valoare INT )&lt;br&gt;&lt;strike&gt;)&lt;/strike&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;EXEC sp_xml_removedocument @id_xml &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Sau inserezi valorile din @xml intr-o tabela (ex. variabila tabela; pp. ca nu sunt multe valori).&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Exemplu:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;DECLARE @xml NVARCHAR(255)&lt;br&gt;SET @xml = '&amp;lt;root&amp;gt; &amp;lt;parametru valoare="111"/&amp;gt; &amp;lt;parametru valoare="222"/&amp;gt; &amp;lt;parametru valoare="333"/&amp;gt; &amp;lt;/root&amp;gt;'&lt;br&gt;&lt;br&gt;DECLARE @tabel TABLE (parametru INT)&lt;br&gt;&lt;br&gt;DECLARE @id_xml INT&lt;br&gt;EXEC sp_xml_preparedocument @id_xml OUTPUT, @xml&lt;br&gt;&lt;br&gt;INSERT INTO @tabel (parametru)&lt;br&gt;SELECT valoare&lt;br&gt;FROM OPENXML (@id_xml, '/root/parametru') WITH ( valoare INT )&lt;br&gt;&lt;br&gt;EXEC sp_xml_removedocument @id_xml&lt;br&gt;&lt;br&gt;&lt;strike&gt;&lt;font color="red"&gt;SELECT *&lt;br&gt;FROM Articol&lt;br&gt;WHERE IdArticol IN &lt;/font&gt;&lt;/strike&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;font color="red"&gt;&lt;strike&gt;(&lt;/strike&gt; &lt;/font&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;font color="red"&gt;SELECT parametru FROM @tabel &lt;/font&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;strike&gt;&lt;b&gt;&lt;font color="red"&gt;)&lt;font color=""&gt;&amp;nbsp; &lt;/font&gt;&lt;/font&gt;&lt;/b&gt;&lt;/strike&gt;&lt;font color="red"&gt;&lt;font color=""&gt;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: Parametru tip int</title><link>http://sqlserver.ro/forums/thread/2605.aspx</link><pubDate>Wed, 05 Sep 2007 10:30:04 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:2605</guid><dc:creator>xmldeveloper</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/2605.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=2605</wfw:commentRss><description>&lt;P&gt;Sau folositi sql dinamic si aveti grija la sql injection:&lt;/P&gt;
&lt;P&gt;DECLARE @InVariable varchar(1024);&lt;BR&gt;DECLARE @SQLString nvarchar(500);&lt;/P&gt;
&lt;P&gt;DECLARE @ParmDefinition nvarchar(500);&lt;/P&gt;
&lt;P&gt;SET @ParmDefinition = N'@tipuri varchar(1024)';&lt;BR&gt;&lt;BR&gt;SET @SQLString =N'select * from tabel where tip IN (@tipuri)';&lt;/P&gt;
&lt;P&gt;SET @tipuri='1,2,3';&lt;/P&gt;
&lt;P&gt;EXECUTE sp_executesql @SQLString, @ParmDefinition,&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;&amp;nbsp;&amp;nbsp; @tipuri= @InVariable;&lt;BR&gt;&lt;/P&gt;</description></item><item><title>Re: Parametru tip int</title><link>http://sqlserver.ro/forums/thread/2604.aspx</link><pubDate>Wed, 05 Sep 2007 10:23:20 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:2604</guid><dc:creator>Diana</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/2604.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=2604</wfw:commentRss><description>&lt;p&gt;Se poate de asemenea imagina si o solutie pe baza de "dynamically
build SQL statement" - poti de exemplu concatena 'SELECT
&amp;lt;lista_campuri'&amp;gt; FROM tabel WHERE tip IN(',
CAST(&amp;lt;valoare_numerica&amp;gt; AS varchar(2)),.......,')'. Intre
valorile numerice nu uita sa adaugi virgule...&lt;img src="http://sqlserver.ro/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;br&gt;
&lt;/p&gt;&lt;p&gt;Apoi poti folosi sp_executesql pentru sirul rezultat.&lt;br&gt;
&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Re: Parametru tip int</title><link>http://sqlserver.ro/forums/thread/2603.aspx</link><pubDate>Wed, 05 Sep 2007 10:07:21 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:2603</guid><dc:creator>Diana</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/2603.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=2603</wfw:commentRss><description>&lt;p&gt;De exemplu poti sa:&lt;/p&gt;&lt;p&gt;- folosesti un "varchar" @tipuri - '0, 1, 2'&lt;/p&gt;&lt;p&gt;-
scrii o functie "table valued" care ia la "intrare" parametrul @tipuri
si un delimitator, face un "split" al sirului @tipuri dupa delimitator
(in cazul de fata virgula) si "intoarce" valorile (---&amp;gt; 0, 1, 2)
intr-un tabel.&lt;/p&gt;&lt;p&gt;- SELECT &amp;lt;lista_campuri&amp;gt; FROM tabel WHERE tip IN (SELECT * FROM functie(@tipuri, ','))&amp;nbsp;&lt;/p&gt;&lt;p&gt;Daca lucrezi cu SQL 2005, poti safolosesti o functie CLR - .NET este superior TSQL in ceea ce priveste lucrul cu sirurile.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Parametru tip int</title><link>http://sqlserver.ro/forums/thread/2602.aspx</link><pubDate>Wed, 05 Sep 2007 09:50:32 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:2602</guid><dc:creator>ssandu</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/2602.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=15&amp;PostID=2602</wfw:commentRss><description>&lt;P&gt;Am o procedura de tipul&lt;/P&gt;
&lt;P&gt;select * from tabel where tip IN (@tipuri)&lt;/P&gt;
&lt;P&gt;tip este de tip int si vreau sa-i pasez mai multe int&lt;/P&gt;
&lt;P&gt;Trebuie sa devina ceva de genul select * from tabel where tip IN (0,1,2)&lt;/P&gt;
&lt;P&gt;Cum sa fac parametrul @tipuri ?&lt;/P&gt;
&lt;P&gt;varchar nu merge.&lt;/P&gt;</description></item></channel></rss>