[ M E N E @ 15.04.2008. 16:08 ] @
Kako da mi c# preda kao parametar niz? (za moju stored proceduru) u pitanju su stringovi, ako to nesto znaci (ali hteo bih generalniji odgovor, da znam kako se to inace radi) hvala |
[ M E N E @ 15.04.2008. 16:08 ] @
[ Fedya @ 15.04.2008. 16:12 ] @
Niz kao tip podatka ne mozes proslediti. Posto su u pitanju stringovi mozes ih razdvojiti nekim specijalnim znakom i parsirati u proceduri.
[ Djoks @ 15.04.2008. 16:27 ] @
[ deerbeer @ 16.04.2008. 13:00 ] @
A sto ne bi koristio http://msdn2.microsoft.com/en-...ta.sqlclient.sqlparameter.aspx
Pretrazi .NET forum bilo je dosta price o tome i primera Meni ovo deluje malo kao egzibicija :) ..al iskren da budem nisam probao [ Zidar @ 16.04.2008. 14:06 ] @
Fedya ti je dao odgovor "Niz kao tip podatka ne mozes proslediti. Posto su u pitanju stringovi mozes ih razdvojiti nekim specijalnim znakom i parsirati u proceduri."
Konstruisi string koji izgleda ovako nekako "a,b,c,d,e" - elemenit niza su a b c d e. Stavis ih u string tako sto dodas zareze izmedju njih. Na server strani treba ti procedura koja taj string razbije na element i onda radis s njima sta hoces. Bilo je i na ovom forumu price o tome kako se razbija string na elemente koristeci Transact SQL. Ako te interesuje, mozda mozemo da pomognemo oko SQL dela. Onda tvoj kod ne mora da se petlja s time, to uradi procedura na SQL serveru. [ adopilot @ 21.04.2008. 12:36 ] @
Kada uspiješ proslijditi niz kao sting "a,b,c,d,e"
Onda u Stored proceduri možeš probati korititi UDF "funkciju" Meni je pošlo za rukom uz pomoć jedne ovakve: Ovo je kriranje funkcije Code: CREATE FUNCTION [dbo].[fn_ado_param] (@ado nvarchar(4000), @Delim char(1)= ',') RETURNS @VALUES TABLE (ado nvarchar(4000))AS BEGIN DECLARE @chrind INT DECLARE @Piece nvarchar(4000) SELECT @chrind = 1 WHILE @chrind > 0 BEGIN SELECT @chrind = CHARINDEX(@Delim,@ado) IF @chrind > 0 SELECT @Piece = LEFT(@ado,@chrind - 1) ELSE SELECT @Piece = @ado INSERT @VALUES(ado) VALUES(@Piece) SELECT @ado = RIGHT(@ado,LEN(@ado) - @chrind) IF LEN(@ado) = 0 BREAK END RETURN END A ovo je pozivanje UDFa u stored proceduri Code: select ... from ... where uslov in (SELECT ado FROM fn_ado_param (@grupa_lista,',')) Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|