• 12 odgovora
  • 3.680 pregleda
GROUP BY problem 27.11.2007. u 19:58 · pre 230 meseci #1
Potrebna mi je pomoć oko SQL sintakse za SQL Server 2005 express

Sledeća sintaksa u Server Management Studiju radi ono što treba i vraća recordsetove sa određenim vrednostima (View):

Code:

SELECT     dbo.KL_detalji.NalogID, dbo.Profili_S.Naziv, dbo.Profili_S.ProfilID
FROM         dbo.KL_detalji INNER JOIN
                      dbo.Profili_S ON dbo.KL_detalji.ProfilID = dbo.Profili_S.ProfilID INNER JOIN
                      dbo.KrojnaLista ON dbo.KL_detalji.NalogID = dbo.KrojnaLista.IzlazID
GROUP BY dbo.KL_detalji.NalogID, dbo.Profili_S.Naziv, dbo.Profili_S.ProfilID
HAVING      (dbo.KL_detalji.NalogID = 1)



Kada ovu sintaksu koristim u okviru aplikacije u VB6 u obliku Stringa:

Code:

MySQL = "SELECT KL_detalji.NalogID, Profili_S.Naziv, Profili_S.ProfilID " & _
        "FROM KL_detalji INNER JOIN " & _
        "Profili_S ON KL_detalji.ProfilID = Profili_S.ProfilID INNER JOIN " & _
        "KrojnaLista ON KL_detalji.NalogID = KrojnaLista.IzlazID " & _
        "GROUP BY KL_detalji.NalogID, Profili_S.Naziv, Profili_S.ProfilID " '& _
        "Having (KL_detalji.NalogID = 1)"

adoPrimaryRS_1.Open MySQL, DbConnect, adOpenStatic, adLockOptimistic
If adoPrimaryRS_1.RecordCount > 0 Then


ne prijavljuje nikakvu grešku ali ni ne vraća nikakvu vrednost (RecordCount je -1).

Kada izbacim deo od Having - ista stvar se dešava, tek ukoliko se izostavi deo koji ide od GROUP BY dobijam određeni broj
u vrednosti RecordCount

Zahvalan sam na bilo kojoj ideji, jer u pitanju potreba za brzom migraciom baze iz Accessa na SQL 2005 express


Edit: slovo
Re: GROUP BY problem 28.11.2007. u 10:23 · pre 230 meseci #2
Koju ti gresku izbaci?
Potpis
Every hamster has his day.
Re: GROUP BY problem 30.11.2007. u 02:31 · pre 230 meseci #3
Fedya,

kao što sam i napisao ne pokazuje nikakvu grešku već jednostavno vrednost vraćenog recordseta je -1, dakle nema vraćenih zapisa.

Re: GROUP BY problem 30.11.2007. u 12:44 · pre 230 meseci #4
zasto si pisao "Having (KL_detalji.NalogID = 1)" kad to nije grupisuce polje? Stavi ga u where, pa probaj
Re: GROUP BY problem 01.12.2007. u 21:38 · pre 230 meseci #5
Citat:
Koce: zasto si pisao "Having (KL_detalji.NalogID = 1)" kad to nije grupisuce polje? Stavi ga u where, pa probaj



Savet sa WHERE ne pomaže. Rezultat je da ne prijavljuje nikakvu grešku i upit i dalje vraća Recordset bez vrednosti tj RecordCount pokazuje -1.

Sam recordset je otvoren sa adOpenKeyset, adLockOptimistic ali probao sam i sa adOpenStatic (U accessu znam da pravi problem adOpenForwardOnly
i recordset.RecordCount)

Neke ideje ili predlozi pored ovog pomogli bi mi jer sam zaglavljen trenutno u radu.
Re: GROUP BY problem 01.12.2007. u 23:00 · pre 230 meseci #6
Verovatno je problem u kombinaciji kursora i lockingmode-a.

Probaj standardni:

Code:

adoPrimaryRS_1.Open MySQL, DbConnect, adOpenStatic, adLockReadOnly
Re: GROUP BY problem 02.12.2007. u 09:10 · pre 230 meseci #7
Vidim da u kodu imas MySQL, e sada, zvuci bedasto, ali da li si u medjuvremenu bazu prebacio sa MS SQL u MySQL?
Potpis
steve585
Re: GROUP BY problem 02.12.2007. u 13:59 · pre 229 meseci #8
VB promenljiva se zove 'MySQL', ali ne i server :)
Potpis
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
Re: GROUP BY problem 02.12.2007. u 14:51 · pre 229 meseci #9
mozes li onda okaciti tabele navedene u upitu. bice lakse.
Potpis
steve585
Re: GROUP BY problem 02.12.2007. u 15:14 · pre 229 meseci #10
Ma ne treba da kaci tabele, upit se izvrsava - znaci da je dobar. Proveri jos i da li si postavio kljuceve za tabele.
Re: GROUP BY problem 03.12.2007. u 20:47 · pre 229 meseci #11
Citat:
goranvuc: Ma ne treba da kaci tabele, upit se izvrsava - znaci da je dobar. Proveri jos i da li si postavio kljuceve za tabele.


Možda je rešenje u ovome ali nisam siguran šta treba da uradim. Baza je jednostavno konvertovana iz MS Accessa na SQL 2005.

U bazi (ranijoj i novoj na SQL serveru) koriste se samo tabele koje su imale određene međusobne relacije.

Napominjem da mnoge stvari (2/3 koda tj. upita) rade bez problema bez ikakvih prepravki koda, osim stringa konekcije i baze na koju se VB6 kači.
Re: GROUP BY problem 03.12.2007. u 20:54 · pre 229 meseci #12
Ako si samo konvertovao (Import Database) onda to jeste to, jer pri importu wizard ne postavlja kljuceve, vec to moras sam. Dakle stavi primarne kljuceve i resen ti je problem
Re: GROUP BY problem 28.12.2007. u 15:03 · pre 229 meseci #13
ma meni to i dalje bas cudno, jel mozes da uhvatis bas taj upit iz aplikacije kroz profiler (ili kroz debug) pa da pustis njega nad bazom, nema logike da vraca razlicite vrijednosti...
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme