🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: ee.prog
Article #119

Re: SQL sp

#119
From: Indrek Lambut
Date: Fri, 07 Mar 2003 14:32
88 lines
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-mail
References: <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