Gjoreski 08.02.2017 22:50
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

zxz 08.02.2017 23:45
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.

Gjoreski 10.02.2017 01:50
Predmet:Re: Search SQL

Nikoj nema nesto da predlozi ?

zxz 10.02.2017 19:19
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

Gjoreski 11.02.2017 00:52
Predmet:Re: Search SQL

Sta je ovo ili je nesto ostalo od stari cod
DodajUslov [Look For Country], "[Country]", Kriterij, ArgCount

zxz 11.02.2017 00:56
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.

Gjoreski 11.02.2017 01:02
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

Gjoreski 11.02.2017 01:08
Predmet:Re: Search SQL

Nemogu je uploadirati dobijem poruka da maksimalna velicina koja mogu uploadirati je 2kb a rar je 350kb

zxz 11.02.2017 10:55
Predmet:Re: Search SQL

Ako mozese posalji mi tabelu pa da isprobam ako ne sam cu napraviti neku.
To sam juce ne brzinu sklepao.

zxz 11.02.2017 12:12
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.