• 3 odgovora
  • 3.046 pregleda
Pretrazivanje MS SQL Baze ??? 14.09.2005. u 18:54 · pre 256 meseci #1
Uffff, sto mrzim kad mi ne radi nesto sto bi trebalo da radi.

Povezao sam bazu u MS SQL 2005 kroz Delphi 2005, preko ADO konekcije isve f-onise odlicno, ali kada sam na novoj formi hteo da pretrazujem bazu preko ADOQuery-ja prosta f-ja mi ne radi.

Imam po jedan Edit box za svaki Column i hteo bi da kad unesem podatke u boxeve po kojima hocu da pretrazujem dobijem odgovor u DBGrid-u.

kada recimo stavim f-ju za dugme:

Code:

begin
  with ADOQuery1 do begin
  Close;
  SQL.Clear;
  SQL.Add('SELECT Ime, Prezime FROM Studenti');
    open;
end;

sve radi savrseno, i izbaci mi te dve kolone koje sam potrazio...
ali, kada dodam opciju WHERE nikako nece da radi
Code:

begin
  with ADOQuery1 do begin
  Close;
  SQL.Clear;
  SQL.Add('SELECT * FROM Studenti WHERE Ime = "Nikola"');
    open;
end;


Onda mi izbacuje greske tipa invalid column name Nikola....
Probao sam sve zive kombinacije i sa LIKE i Svim zivim navodnicima i bez njih....

Znaci kako ide ispravan kod za ovakvo pretrazivanje, da mi na primer na dugme izbaci sve recorde sa imenom Nikola u koloni "Ime" , a potom da vidimo kako bi bilo da korisnici pretrazuju preko Edit boxova, po jedan za svaku kolonu.
Potpis
So Many Girls !!!
So Little Time !!!
Re: Pretrazivanje MS SQL Baze ??? 14.09.2005. u 19:40 · pre 256 meseci #2

Probaj ovako.

Code:

begin
  with ADOQuery1 do begin
  Close;
  SQL.Clear;
  SQL.Add('SELECT * FROM Studenti WHERE Ime ='+QuotedStr('Nikola'));
    open;
end;
Potpis
Marcha
-----------------------------------
Pretpostavka je majka zajeba.
Re: Pretrazivanje MS SQL Baze ??? 14.09.2005. u 22:55 · pre 256 meseci #3
Toooo Kralju........... to je falilo.

Pa sam onda umesto fiksne reci ubacio sam edit1.text i to radi savrseno.

E sad kako bi bilo najbolje da se povezu 7 edit boxeva sa 7 kolona. Da li da se koristi komanda OR, AND ili nesto slicno. Kako bi bilo najbolje iz vaseg iskustva. Da li da se ubacuju wildcards "%" ispred i iza edit box-eva. Ili da se ubaci mozda neki combobox za odabir tacne pretrage, ili pretrage sa %edit1.text%. I naravno treba da stavim da ako se neko polje ne popuni, da ga ne uzima u obzir.

Potpis
So Many Girls !!!
So Little Time !!!
Re: Pretrazivanje MS SQL Baze ??? 15.09.2005. u 10:50 · pre 256 meseci #4
To sto ti marcha nije rekao, je da ovaj string:
SELECT * FROM Studenti WHERE Ime = "Nikola"

nije validan TSQL statement u SQL serveru. Kod SQL standard delimiter za string jedinacni navod (') a ne dupli (").

samo si trebao
Code:

begin
  with ADOQuery1 do begin
  Close;
  SQL.Clear;
  SQL.Add('SELECT * FROM Studenti WHERE Ime = ''Nikola'' ');
    open;
end;


Uz put, pre nego sto predjes na implementaciju u delphi, prvo fino istestiraj SQL statemente preko Query Analyzera, proveri execution plan, indexe ... itn ...
Potpis
People who think they know everything tend to irritate those of us who do.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme