[ Acid @ 01.08.2004. 11:02 ] @
Pozdrav svima.
Imam jedan mali problem oko kreiranja SQL komande za pretrazivanje baze. SQL komadna radi na principu:

SELECT *
FROM Imenik
WHERE ime LIKE parametarA

Nakon pozivanja ove komande sve radi kako treba, ali... Treba mi SQL komanda kojom se moze odrediti koje polje treba da se pretrazi, tipa:

SELECT *
FROM Imenik
WHERE ImePolja LIKE parametarA

gde je ImePolja takodje parametar. E sve je to lepo sam sto mi ova druga komanda uvek vraca 0 zapisa.

Kako ovo resiti?

Unapred veliko HVALA>
[ Acid @ 01.08.2004. 19:36 ] @
E, shvatio sam gde je problem, ali ne i gde je resenje.
Kada u pozivu komande dajem vrednost parametrima, SQL oba parametra stavlja izmedj apostrofa (string) pa tako umesto imena kolone (bez apostrofa) ja dobijem neki string.

ImePolja="Ime"
parametrA="nikola"

SQL:
select...
WHERE 'Ime' LIKE 'nikola'

a trebalo bi:
SELECT...
WHERE Ime LIKE 'nikola'

Ideje?
[ akrosoft @ 01.08.2004. 21:17 ] @
Pretpostavljam da se radi o MS SQL Serveru.
Mislim da mora da se upotrebi EXEC() da bi mogao da napises upit u textualnom obliku i da zamenis ime tabele sa text parametrom u kome ti se nalazi ime tabele. Ima tu jos jedan zez, posto u samom upitu, posle like, koristis navodnike, trebalo bi da ceo upit smestis u dvostruke navodnike. Za to treba da iskljucis QUOTED_IDENTIFIER. Probaj nesto ovako:

Code:

Declare @ImePolja varchar(20)
Set @ImePolja='Ime'
--Ne moras da deklarise @ImePolja ako ga imas kao parametar na ulazu
SET QUOTED_IDENTIFIER OFF
EXEC ("SELECT... WHERE " + @ImePolja + " LIKE 'nikola' " )
SET QUOTED_IDENTIFIER ON --opciono, ukljuci ponovo 
[ Acid @ 03.08.2004. 21:43 ] @
Hvala za ideju, ali
nije u pitanju MySQL vec VB.net i Access baza?!?!
Ovo bi mozda moglo da upali, ali ako mozes malo podronije objasni ovo sa iskljucivanjem navodnika.

Hvala>
[ Deep|Blue @ 04.08.2004. 11:45 ] @
a sto ne bi napravio sql upit u vb-u i izvrsio ga takvog?
[ akrosoft @ 04.08.2004. 14:04 ] @
Citat:
Acid: ...
Ovo bi mozda moglo da upali, ali ako mozes malo podronije objasni ovo sa iskljucivanjem navodnika.
Hvala


SET QUOTED_IDENTIFIER nece funkcionisati u MS Accessu......
Bojim se da neces moci u MS ACCESS-u da prosledis table name kao parametar za query. Zasto stvarno ne napravis sql upit u VB.NET i ne izvrsis ga.
[ Acid @ 04.08.2004. 14:42 ] @
jer radim u VB 2005, koji ima neke nove metode za manipulaciju bazama. moguce je koristiti i stare .net metode (preko kojih uspevam da resim problem), ali onda mi ne vredi koriscenje 2005-ice.