[ gotivac @ 25.03.2006. 22:54 ] @
Imam jedan problem, koji zapravo to i nije, ali gnjavi i zbunjuje, pa ako neko zna o čemu se radi ... Platforma je Visual Studio 2005 (VB) i Access baza. Pokušaću na što jednostavnijem primeru da objasnim. Recimo da iz neke tabele treba izlistati sve slogove koji, nema veze, recimo imaju šifru koju korisnik bira. Dakle, na formi korisnik popuni tekst polje za šifru, i neka promenljiva, recimo strSifra dobije tu vrednost. U ranije kreiranom datasetu kreiram TableAdapter sa FillBy komandom kojoj prosledjujem ovu sifru kao parametar, recimo: Me.UslugeDataSet.PrometTableAdapter.FillBy(strSifra) E, sad, problem je kod kreiranja upita. Recimo da u parametre SQL upita ubacim parametar koji se zove SIFRA. Napišem query: SELECT * FROM Promet WHERE (SifraProizvoda = @SIFRA). Ovo radi bez ikakvih problema, ali šta se dešava - kad otkucam ovakav query, dobijem poruku o grešci: The wizard detected the following problems when configuring the TableAdapter: "Fill"; Details: Generate SELECT statement Error in WHERE clause near '@'. Unable to parse query text. Click OK to ignore this dialog and finish the wizard, or click Cancel to return to the wizars and reconfigure your adapter. Kliknem na OK i to dalje sve radi bez problema. Ponekad, kada ulazim ponovo da petljam po tom query-ju, sam mi razdvoji @ i SIFRA, pa moram da brišem space izmedju njih da bi radilo, a ako više čačkam, hoće i da pogubi parametre TableAdaptera, pa moram iznova da ih kreiram... Znači, to sve radi OK, samo gnjavi porukom o grešci prilikom kreiranja i uliva dozu nesigurnosti ... Zna li neko o čemu se radi, da li je u pitanju bug ili ja negde grešim??? |