Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 3 odgovora
  • 2.210 pregleda

Najnovija ↓

Upotreba parametara u Query komponenti 30.12.2006. u 23:46 · pre 241 mesec #1
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"?
Potpis
Ag + Na -> Xe
Re: Upotreba parametara u Query komponenti 31.12.2006. u 12:11 · pre 241 mesec #3
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
Potpis
Ag + Na -> Xe
Re: Upotreba parametara u Query komponenti 31.12.2006. u 16:28 · pre 241 mesec #4
> 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).
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme