Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

SQL server 2000 - parametrizovan SQL query za DTS

[es] :: MS SQL :: SQL server 2000 - parametrizovan SQL query za DTS

[ Pregleda: 2488 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

snowwoman
Katarina Macko
Novi Sad

Član broj: 20897
Poruke: 17
*.dcccorp.com.



Profil

icon SQL server 2000 - parametrizovan SQL query za DTS28.09.2004. u 18:50 - pre 238 meseci
Pozdrav svima,

pokusavam da napravim paket za prebacivanje podataka iz SQL server baze u FoxPro bazu. Podaci koji se prebacuju zavise od spoljasnjeg parametra. Kada SELECT upit koji prebacuje podatke (koristim Transform Data Task) napisem sa fiksnim vrednostima radi, a kada stavim da gleda parametar, javlja mi sintax error.

Upit koji radi:

select productID, office_name, office_infoID, officeID, serviceID, currID,
bankID, bank_name, branch_name, branch_infoID, branchID, rtrim(left(c.corr_name,25))+'('+cast(c.priority as varchar)+')' as corr_name, p.corrID as corrID, countryID, cityID, p.status as status, p.folio_type as folio_type
from dbo.v_Product_POS p LEFT OUTER JOIN dba.Correspondent c on p.corrID=c.corrID
where p.status=1
and ((select new_pp from oper.Agent where Acode='M0001')*p.officeID>=0
or (select new_pp from oper.Agent where Acode='M0001')*p.branchID>=0)

order by productID desc

Upit koji ne radi:

select productID, office_name, office_infoID, officeID, serviceID, currID,
bankID, bank_name, branch_name, branch_infoID, branchID, rtrim(left(c.corr_name,25))+'('+cast(c.priority as varchar)+')' as corr_name, p.corrID as corrID, countryID, cityID, p.status as status, p.folio_type as folio_type
from dbo.v_Product_POS p LEFT OUTER JOIN dba.Correspondent c on p.corrID=c.corrID
where p.status=1
and ((select new_pp from oper.Agent where Acode=?)*p.officeID>=0
or (select new_pp from oper.Agent where Acode=?)*p.branchID>=0)

order by productID desc

Imam globalni parametar Acode definisan za paket.

U cemu je problem? Da li ovi upiti za DTS ne podrzavaju ugnjezdene upite?

Unapred zahvalna :)
 
Odgovor na temu

amladjo
Mladen Arbutina
Novi Sad

Član broj: 30160
Poruke: 53
195.178.35.*

Sajt: www.dynasoft.rs


Profil

icon Re: SQL server 2000 - parametrizovan SQL query za DTS29.09.2004. u 11:57 - pre 238 meseci
Dva upitnika predstavljaju dva parametra. Bar u ADO okruženju koje koristim.

Pokušaj navesti dva parametra čiji je sadržaj isti ('M0001').
 
Odgovor na temu

snowwoman
Katarina Macko
Novi Sad

Član broj: 20897
Poruke: 17
*.dcccorp.com.



Profil

icon Re: SQL server 2000 - parametrizovan SQL query za DTS29.09.2004. u 15:37 - pre 238 meseci
Ne radi :(

Probala sam vec ranije bila da ostavim samo jedan upitnik (pomislivsi da je problem taj koji si naveo), a da drugi zamenim stringom, ali nece da radi. Javlja mi sintax error na Parse Query, tako da ni ne mogu da odem na dodavanje parametara.

Ako probam da u where uslov stavim polje1=? and polje2=?, radi bez obzira koliko parametara imam (bitno je da imam jedan definisan). Nece da radi u ovom ugnjezdenom upitu.

Katarina
 
Odgovor na temu

DarkMan
Darko Matesic

Član broj: 20445
Poruke: 572
195.252.80.*

Jabber: DarkMan


Profil

icon Re: SQL server 2000 - parametrizovan SQL query za DTS29.09.2004. u 23:12 - pre 238 meseci
Nisam nikada koristio parametrizovane upite a ne znam ni sta ti je ovo DTS, ali ako ti je to sintaksa za TRANSACT SQL i kao sto si navela da ne prima ? u ugnjezdenoj petlji mozes da probas sledece:

DECLARE @param1 varchar(30)
DECLARE @param2 varchar(30)

SET @param1 = ?;
SET @param2 = ?;
select productID, office_name, office_infoID, officeID, serviceID, currID,
bankID, bank_name, branch_name, branch_infoID, branchID, rtrim(left(c.corr_name,25))+'('+cast(c.priority as varchar)+')' as corr_name, p.corrID as corrID, countryID, cityID, p.status as status, p.folio_type as folio_type
from dbo.v_Product_POS p LEFT OUTER JOIN dba.Correspondent c on p.corrID=c.corrID
where p.status=1
and ((select new_pp from oper.Agent where Acode=@param1)*p.officeID>=0
or (select new_pp from oper.Agent where Acode=@param2)*p.branchID>=0)
order by productID desc;


U svakom slicaju ako ti nista ne funkcionise napravi query rucno pomocu stringova.
 
Odgovor na temu

snowwoman
Katarina Macko
Novi Sad

Član broj: 20897
Poruke: 17
195.252.81.*



Profil

icon Re: SQL server 2000 - parametrizovan SQL query za DTS30.09.2004. u 11:26 - pre 238 meseci
DTS (Data Transformation Services) jesu servisi SQL servera za brzo prebacivanje puno podataka iz jedne baze u drugu (ili iz fajla / u fajl). Upit koji sam navela koristim za selektovanje podataka koji se prebacuju. Kada se koristi Transform Data Task potrebno je napisati samo SQL upit (znaci jedna naredba), ne moze se koristiti Transact SQL. A meni je potrebna zavisnost od spoljasnjeg parametra.

Postoji drugi nacin. Da prvo ove podatke ispucam u neku tabelu (prilikom pozivanja paketa u zavisnosti od prosledjenog parametra). I onda selektovanje vrsim samo iz te tabele upitom tipa (select polje1, polje2, ..., poljeN from pom_table where polje1=? ).Ovo sam uradila i radi sve super.

Ono sto sam ja htela jeste da izbegnem ubacivanje u pomocnu tabelu, vec sam htela sve resiti jednim upitom. Zanima me da li je to moguce? Da znam za ubuduce :) Ako nije moguce zasto nije moguce, jer nisam uspela da nadjem objasnjenje o tome da li je dozvoljeno koriscenje parametara u ugnjezdenom upitu koji se koristi kao Transform Data Task.

Pozdrav
 
Odgovor na temu

snowwoman
Katarina Macko
Novi Sad

Član broj: 20897
Poruke: 17
195.252.81.*



Profil

icon Re: SQL server 2000 - parametrizovan SQL query za DTS30.09.2004. u 11:36 - pre 238 meseci
E samo da vam javim da sam saznala da se parametri ne mogu koristiti u ugnjezdenim upitima koji se koriste za prebacivanje podataka u DTS :(

Zivi bili :)
 
Odgovor na temu

[es] :: MS SQL :: SQL server 2000 - parametrizovan SQL query za DTS

[ Pregleda: 2488 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.