Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 5 odgovora
  • 3.723 pregleda

Najnovija ↓

Niz kao parametar 15.04.2008. u 17:08 · pre 225 meseci #1
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
Potpis
Uhvatili ste me nespremnog
Re: Niz kao parametar 15.04.2008. u 17:12 · pre 225 meseci #2
Niz kao tip podatka ne mozes proslediti. Posto su u pitanju stringovi mozes ih razdvojiti nekim specijalnim znakom i parsirati u proceduri.
Potpis
Every hamster has his day.
Re: Niz kao parametar 16.04.2008. u 15:06 · pre 225 meseci #5
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.
Re: Niz kao parametar 21.04.2008. u 13:36 · pre 225 meseci #6
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,','))
Potpis
S poštovanjem
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme