Article View: ee.prog
Article #119Re: SQL sp
From: Indrek Lambut
Date: Fri, 07 Mar 2003 14:32
Date: Fri, 07 Mar 2003 14:32
88 lines
3529 bytes
3529 bytes
MSSQL puhul @katID ei tohi int olla kui listi tahetakse ette anda. Kipub
rohkem varchar olema.
loogiline oleks teha funktsioon, mis teeb komaerldusega listist intidest
koosnev tabeli
seda funktsiooni l�heb ikka ja j�lle vaja
Create Function dbo.inttablekomalistist (@komalist Text)
Returns @inttable Table ([taisarv] Int)
As
Begin
/*Tee mingi ts�kkel, otsi k�ik numbrid �les ja �kshaaval */
insert @inttable ...
ning p�ring siis lihtne
SELECT T.CategoryID, T.fromdate
FROM Table T , dbo.inttablekomalistist (@katID) I
WHERE T.fromdate = @kp AND T.CategoryID = I.taisarv
Aga kui ei viitsi ja turva ei ole probleem ning pole ka probleme
kiiruse/optimeerimisega siis tee d�naamiliselt koostatav sql
declare @cmd varchar(8000)
select @cmd = 'SELECT CategoryID, fromdate FROM Table
WHERE fromdate = ''' +convert(char(20),@kp,120) + ''' AND CategoryID IN
('+@katID +')'
exec @cmd
Indrek
"noel" <noel1@mail.ee> wrote in message
news:3e688ead$0$163$bb624dac@diablo.uninet.ee...
> Unustasun siis juba selle sp �ra sest on kiire. tegin asja nagu tavaliselt
> kuigi kui keegi teab lahendust oleks vastuse eest t�nulik
>
>
> "Urmo" <urmo@mindspamisbadworks.ee> wrote in message
> news:3e688a34$1@news.infonet.ee...
> > MS SQL ei v�imalda array kasutamist. Tavaliselt lahendatakse see miski
> > r�veda h�kiga, kus
> > parameetrid antakse sisse stringina mis procis lahti h�kitakse ja
> > EXECitakse. Koos k�ige sellega
> > kaasnevate r��mudega (turva ntx)
> >
> > "noel" <noel1@mail.ee> wrote in message
> > news:3e688729$0$154$bb624dac@diablo.uninet.ee...
> > > Oleks siis abi veits vaja. Omal pea enam ei taba pointi.
> > > Asi nimelt selline:
> > > on array ntx: 15,16,17
> > > ning see on vaja edastada sp(storedProcedure)-le ning seal kasutan
WHERE
> > bla
> > > IN (@strArray)
> > > vastust aga ei saa.
> > > Kus jama seda ei saa aru. Kuup�evaga on k�ik jonksus ning ka �ksiku
> > int-iga.
> > > SQL Server 2000 + ASP 3.0
> > >
> > > sp:
> > > CREATE PROCEDURE spSt
> > > @katID int,
> > > @kp smalldatetime
> > > AS
> > > SELECT CategoryID, fromdate
> > > FROM Table
> > > WHERE fromdate = @kp AND CategoryID IN(@katID)
> > > GO
> > >
> > > lehel:
> > > cmd.Parameters.Append cmd.CreateParameter("katID", adInteger,
> > adParamInput,
> > > 4, intKatID)
> > >
> > >
> > >
> >
> >
>
>
Technical Details
Message-ID:
<3e68ad21$0$168$bb624dac@diablo.uninet.ee>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-04!sn-xit-06!sn-xit-08!supernews.com!newsfeed.news2me.com!newsfeed.icl.net!newsfeed.fjserv.net!news-FFM2.ecrc.net!uio.no!newsfeed1.funet.fi!newsfeeds.funet.fi!newsfeed.uninet.ee!diablo.uninet.ee!not-for-mailReferences:
<3e688729$0$154$bb624dac@diablo.uninet.ee> <3e688a34$1@news.infonet.ee> <3e688ead$0$163$bb624dac@diablo.uninet.ee>Show Full Headers
Complete Article Headers
X-Google-Language: ESTONIAN,CP1257 X-Google-Thread: 115021,d0df9aee1da85cc8 X-Google-Attributes: gid115021,public X-Google-Thread: f8b3f,d0df9aee1da85cc8 X-Google-Attributes: gidf8b3f,public X-Google-ArrivalTime: 2003-03-07 06:35:07 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-04!sn-xit-06!sn-xit-08!supernews.com!newsfeed.news2me.com!newsfeed.icl.net!newsfeed.fjserv.net!news-FFM2.ecrc.net!uio.no!newsfeed1.funet.fi!newsfeeds.funet.fi!newsfeed.uninet.ee!diablo.uninet.ee!not-for-mail From: "Indrek Lambut" <Indrek.Lambut@mail.ee> Newsgroups: ee.prog,ee.arvutid.www References: <3e688729$0$154$bb624dac@diablo.uninet.ee> <3e688a34$1@news.infonet.ee> <3e688ead$0$163$bb624dac@diablo.uninet.ee> Subject: Re: SQL sp Date: Fri, 7 Mar 2003 16:32:25 +0200 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Lines: 90 Message-ID: <3e68ad21$0$168$bb624dac@diablo.uninet.ee> NNTP-Posting-Host: 194.204.11.140 X-Trace: 1047047457 diablo.uninet.ee 168 194.204.11.140