Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Upotreba parametara u Query komponenti

[es] :: Pascal / Delphi / Kylix :: Upotreba parametara u Query komponenti

[ Pregleda: 1516 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Mr. Rejn
Deki Karamatijević
Sremčica

Član broj: 2514
Poruke: 515
*.adsl.sezampro.yu.



+4 Profil

icon Upotreba parametara u Query komponenti30.12.2006. u 22:46 - pre 210 meseci
Kada prosledim parametre komponenti tipa IBQuery:
Code:

Pretraga->Params->ParamValues["broj;kupac;mesto"] =
          VarArrayOf(OPENARRAY(Variant, (Edit18->Text+"%", Edit19->Text+"%",Edit20->Text+"%")));

nista se ne vraca kao rezultat. Ono "%" se koristi zato sto je u glavnom upitu prisutan 'like'.
Ovo radi bez problema kada se stavi samo jedan parametar,npr. "broj",ali potrebno je da radi i onda
kada nisu prosledjeni svi parametri.Da li ovakav nacin prosledjivanja parametara zahteva da svi para-
matri budu popunjeni,tj. "broj","kupac" i "mesto"?
Ag + Na -> Xe
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Upotreba parametara u Query komponenti31.12.2006. u 01:31 - pre 210 meseci
Prikaži čitav upit. Zašto kumulativno podešavaš parametre, razdvoj ih.
 
Odgovor na temu

Mr. Rejn
Deki Karamatijević
Sremčica

Član broj: 2514
Poruke: 515
*.adsl.sezampro.yu.



+4 Profil

icon Re: Upotreba parametara u Query komponenti31.12.2006. u 11:11 - pre 210 meseci
Citat:
savkic: Prikaži čitav upit. Zašto kumulativno podešavaš parametre, razdvoj ih.

Podešavam ih kumulativno zato što želim da vršim pretragu sa više parametara istovremeno.
Kada kažeš da ih razdvojim možeš i da kažeš šta misliš pod time i da daš neki (pseudo)kod,
ovako postujem kod samo da bih te pitao šta podrazumevaš pod time,možda ovako nešto
sa ParamByName,ako nije to reci na šta si mislio:
Code:

Pretraga->ParamByName("broj")->AsString =  Edit18->Text+"%";
Pretraga->ParamByName("kupac")->AsString =  Edit19->Text+"%";
Pretraga->ParamByName("mesto")->AsString =  Edit21->Text+"%";

Upit:
Code:

select 
tdokumenti_ulaznefakture."Broj",
tkupcidobavljaci."NazivKupcaDobavljaca", 
tkupcidobavljaci."Mesto"
from tkupcidobavljaci
   inner join tdokumenti_ulaznefakture on 
  (tkupcidobavljaci."SifraKupcaDobavljaca" = tdokumenti_ulaznefakture."SifraKupcaDobavljaca")
   inner join tdokumenti_ulaznefakture_sub on 
  (tdokumenti_ulaznefakture."IDUlazneFakture" = tdokumenti_ulaznefakture_sub."IDUlazneFakture")
where 
tdokumenti_ulaznefakture."Broj" like :broj
   and
tkupcidobavljaci."NazivKupcaDobavljaca" like :kupac
   and 
tkupcidobavljaci."Mesto" like :mesto
order by 
tdokumenti_ulaznefakture."Broj"

Ponavljam da radi kada sadrži samo jedan parametar,npr. "broj",bez ovog:
Code:

...
 and
tkupcidobavljaci."NazivKupcaDobavljaca" like :kupac
   and 
tkupcidobavljaci."Mesto" like :mesto

Ag + Na -> Xe
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Upotreba parametara u Query komponenti31.12.2006. u 15:28 - pre 210 meseci
> ovako postujem kod samo da bih te pitao šta podrazumevaš pod time,možda ovako nešto
> sa ParamByName,ako nije to reci na šta si mislio:

Upravo to, s tim što ako će se ove vrednosti često dodeljivati (u petlji npr.) onda je bolje koristiti indeksni pristup.
Pretraga->Params[0] := 'Pera';

> inner join tdokumenti_ulaznefakture on
> (tkupcidobavljaci."SifraKupcaDobavljaca" = tdokumenti_ulaznefakture."SifraKupcaDobavljaca")
> inner join tdokumenti_ulaznefakture_sub on

Lakše je koristiti case insensitive polja (bez navodnika se kreiraju i koriste), takođe aliasi olakšavaju snalaženje.

> Ponavljam da radi kada sadrži samo jedan parametar,npr. "broj",bez ovog:

Ili napravi poseban upit koji će sadržati samo polja koja za koje imaš filter vrednosti ili pokušaj da nešto iskombinuješ sa COALESCE i dodelom % parametrima. Primer:
WHERE
(COALESCE(KUPAC, '') LIKE :Kupac) AND
(COALESCE(MESTO, '') LIKE :Mesto).
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Upotreba parametara u Query komponenti

[ Pregleda: 1516 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.