Centar za edukaciju-BiH


Stranice (2):1,2

#1 08.02.2017 21:50
Gjoreski Van mreze
Administrator
Registrovan od:02.02.2009
Postovi:1,828


Predmet:Search SQL
Imam eden SQL so koj vrsim pretraga Artikla po deo naziva ,deo sifre ili deo barcoda.
Ovo sve radi dobro do nekade odprilike 4000 artikla.
Sad u ovaj trenutek imam nesto vise od 40000 artikla i predtraga mi radi jako sporo.
Evo moj cod .

Treba mi predlog za nesto sto bi radilo brze.
PreuzmiIzvorni kôd (Visual Basic):
  1. Private Sub pret_Change()
  2.    
  3.   Set rsStavki = New ADODB.Recordset
  4.       rsStavki.CursorLocation = adUseClient
  5.        rsStavki.Open "SELECT * FROM tblArtikli WHERE Artikal_Prodazna_Cena<>0 AND Artikal_Ime LIKE '%"            & Me.pret.Text & "%' OR Artikal_Prodazna_Cena<>0 AND Artikal_BarKod LIKE '%" & Me.pret.Text & "%' ORDER BY Artikal_Ime", cn, adOpenStatic, adLockOptimistic
  6. ' Ovo se odnosi na gridu    
  7. lstArtikli.DataSource = rsStavki
  8.       lstArtikli.ReBind
  9.       lstArtikli.Refresh
  10.  
  11. End Sub
↑  ↓

#2 08.02.2017 22:45
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Search SQL
hehe nocas nisam tehnicki ispravan ali imamrjesenje za ovo jer sam ovovec rjesavao.
ima rjesenje i ovdje na forumu. jedna procedure i jedna sub.
problem sporog rada je %.
U prevodu prikazi sve i kada ne trazis i to veoma sporo radi.
I kada ne trezis po nekom polju onda upisujes ovo % odnosno trazi sve.
To nije dobro.
Sutra cu dati moje rjesenje a mozda neko da bolje do sutra.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#3 10.02.2017 00:50
Gjoreski Van mreze
Administrator
Registrovan od:02.02.2009
Postovi:1,828


Predmet:Re: Search SQL
Nikoj nema nesto da predlozi ?
↑  ↓

#4 10.02.2017 18:19
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Search SQL
Izvini ja zaboravio.
Evo probaj pvako.
PreuzmiIzvorni kôd (Visual Basic):
  1. Private Sub pret_Change()
  2.  
  3.    
  4.     Dim MySQL As String, Kriterija As String, MyRecordSource As String
  5.     Dim Tmp As Variant
  6.  
  7.     ArgCount = 0
  8.  
  9.     MySQL = "SELECT * FROM tblArtikli WHERE "
  10.     Kriterija = ""
  11.    
  12.     DodajUslov 0, "Artikal_Prodazna_Cena", Kriterij, "", "<>", "", ""
  13.     DodajUslov Me.pret.Text, "Artikal_Ime", Kriterij, " AND ", " Like ", "%", Chr(39)
  14.     DodajUslov 0, "Artikal_Prodazna_Cena", Kriterij, "", "<>", "", ""
  15.     DodajUslov Me.pret.Text, "Artikal_BarKod", Kriterij, " AND ", " Like ", "%", Chr(39)
  16.     DodajUslov [Look For Country], "[Country]", Kriterij, ArgCount
  17.  
  18.     If Kriterij = "" Then
  19.     Exit Sub
  20.     Else
  21.     Kriterij = Kriterij & " ORDER BY Artikal_Ime"
  22.     End If
  23.     MyRecordSource = MySQL & Kriterija
  24.    
  25.      Set rsStavki = New ADODB.Recordset
  26.      rsStavki.CursorLocation = adUseClient
  27.      rsStavki.Open MyRecordSource, cn, adOpenStatic, adLockOptimistic
  28. End Sub
  29. Private Sub DodajUslov(Vrijednost As Variant, ImePolja As String, Kriterij As String, Arg1 As String, Arg2 As Integer, Arg3 As String, Arg4 As String)
  30.    
  31.     If Vrijednost <> "" Then
  32.             Kriterij = Kriterij & Arg1
  33.         Kriterij = (Kriterij & ImePolja & Arg2 & Arg4 & Vrijednost & Arg3 & Arg4)
  34.     End If
  35.  
  36. End Sub

Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#5 10.02.2017 23:52
Gjoreski Van mreze
Administrator
Registrovan od:02.02.2009
Postovi:1,828


Predmet:Re: Search SQL
Sta je ovo ili je nesto ostalo od stari cod
DodajUslov [Look For Country], "[Country]", Kriterij, ArgCount
↑  ↓

#6 10.02.2017 23:56
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Search SQL
U pravu si ostalo zaboravio pobrisati.
I ostali kod nisam testirao jer nemam tabele i moguce da ima gresaka ali mislim da ces se snaci.
Moralo bi dosta brze da radi nego ono tvoje.
neznam koliko ima podataka ali mozda da kod stavis na komandni taster umjesto na on chanke.
Pozes ga sztaviti da je po sefaultu pa kad go pritisnes enter da se pokrene pretraga.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#7 11.02.2017 00:02
Gjoreski Van mreze
Administrator
Registrovan od:02.02.2009
Postovi:1,828


Predmet:Re: Search SQL
Ima puno gresaka i i pada uvek kod ova linija kad povikas funkcije

DodajUslov 0, "Artikal_Prodazna_Cena", Kriterij, "", "<>", "", ""

evo postavicu i baza pa ako nije ti problem probaj
Ovaj post je ureden 2 puta. Posljednja izmjena 11.02.2017 00:07 od strane Gjoreski. ↑  ↓

#8 11.02.2017 00:08
Gjoreski Van mreze
Administrator
Registrovan od:02.02.2009
Postovi:1,828


Predmet:Re: Search SQL
Nemogu je uploadirati dobijem poruka da maksimalna velicina koja mogu uploadirati je 2kb a rar je 350kb
↑  ↓

#9 11.02.2017 09:55
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Search SQL
Ako mozese posalji mi tabelu pa da isprobam ako ne sam cu napraviti neku.
To sam juce ne brzinu sklepao.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#10 11.02.2017 11:12
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Search SQL
Napravio sam ja tebelu ali sad mi je malo cudna ova tvoja pretraga.
rsStavki.Open "SELECT * FROM tblArtikli WHERE Artikal_Prodazna_Cena<>0 AND Artikal_Ime LIKE '%" & Me.pret.Text & "%' OR Artikal_Prodazna_Cena<>0 AND Artikal_BarKod LIKE '%" & Me.pret.Text & "%' ORDER BY Artikal_Ime"

Mozda da ispricas sta hoces da dobijes.
Artikal_Prodazna_Cena<>0

pojavljuje se dva puta.
Ukoliko odaberemo neki artikal .
Artikal_Ime LIKE '%" & Me.pret.Text & "%' OR Artikal_Prodazna_Cena<>0
znaci ili neki artikal ili bilo koji koji ima cijenu <>0.

Mozda malo opises ssta hoces dobiti.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

Stranice (2):1,2


Sva vremena su GMT +01:00. Trenutno vrijeme: 8: 12 pm.