Új hozzászólás Aktív témák
-
BlackWoOd
aktív tag
-
g4dg3t
senior tag
A gond ott van hogy elobb hivatkozol a parameterekre es csak kesobb hozod oket letre. Mikor meghivod a ParamByName metodust az SQL stringnek mar tartalmaznia kell a lekerdezest a parameterhivatkozasokkal egyutt!
Tehat helyesen:
...
with Query1, SQL do begin
Close;
Clear;
Add('SELECT *');
Add('FROM TranzTabla');
Add('WHERE (Datum>= :KezdDatum) AND (Datum<= :VegDatum)');
if LekerdFelhComboBox.ItemIndex > 0 then
Add('AND (Felhasznalo= :Felhaszn)');
if LekerdPartnerComboBox.ItemIndex > 0 then
Add('AND (Partner= :Partn)');
ParamByName('Felhaszn').AsString:=LekerdFelhComboBox.Text;
ParamByName('Partn').AsString:=LekerdPartnerComboBox.Text;
ParamByName('KezdDatum').AsDate:=LekerdDatePicker1.Date;
ParamByName('VegDatum').AsDate:=LekerdDatePicker2.Date;
Prepare;
Open;
end;
...
Lathatod azt is hogy mikor kell hivni a Prepare metodust (Open elott). Ez annyit csinal, hogy elore lefoglalja a Query futtatasahoz szukseges eroforrasokat igy a lekerdezes vmivel gyorsabban lefut!
[Szerkesztve] -
BlackWoOd
aktív tag
Hát, meglehet. 7-es verzióban benne van, de abban a 2.0-ás.
Esetleg ha a Companion CD-n szétnézel, lehet, hogy ott van eldugva.
(Nincs előttem 5-ös telepítő készlet, nem tudom megnézni sajna.)
Viszont sem a borland.com-on sem a bdn.borland.com-on nem találok demo-letöltést. (Tuti, hogy volt trial változata, ide a rozsdás bökőt, ha nem...)
szerk.: a 2.0 nem biztos, de tuti, hogy 1.0 fölötti volt.
[Szerkesztve] -
lao ce
aktív tag
hat arrol van elkepzelesem hogy en ezt hogyan csinalnam.
kerdes amugy hogyha cmb1 = Kiss es cmb2 = Bela
akkor az osszes kiss vagy bela kell megjelenjen vagy az osszes kis es bela?
amugy a checkboxokat hanyagolnam, az elso item minden comboban lehetne (all) vagy (minden) valasztas. kevesebb objectum = egyszerubb interfesz.
aztan kb... van egy sql valtozo, mondjuk aSQL
a combokat elnevezheted ugy mint a fieldek nevei, de egy cmb-vel az elejen, tehat cmbFirstName, cmbKeresztnev
az eleje az aSQL-nek valami ilyesmi lesz (megtartanam space-eket a ' jelek utan es elott!)
aSQL := ' select f1, f2, f3, f4 from table where ';
itt a datum
aSQL := aSQL + ' ( DateField >= #' + MyDateObj1.Value + '# ';
aSQL := aSQL + ' and DateField <= #' + MyDateObj2.Value + '# ) ';
aztan ugyi... vegig egy for ciklussal a kombokon
for i := 0 to ComponentCount-1 do begin
___currCompName := copy (Components.Name, 1, 3);
___currFieldName := copy(Components.Name,4, Length(Components.Name)-3 );
aztan mikor komborol van szo es raadasul nem a (minden) van kivalasztva:
___if (currCompName = 'cmb') and
______((Components as TCombobox).ItemIndex > 0) then
akkor hozzaadjuk az aSQL valtozohoz azt a feltetelt hogy ' and fieldname = ertek '.
meg az is van hogy itt 'and' vagy 'or' attol fuggoen hogy kiss bela hogy kell megjelenjen az elso kerdesben.
persze, ez nem ENNYIRE egyszeru mert lehet szam is meg text is meg date is a tipusa a dolognak. ez most text akar lenni de csak nem biztos hogy szintaktikailag helyesen irom.
aSQL := aSQL + ' and ' + currFieldName + ' = ''' +
Components as TCombobox)..Items.Strings [ (Components as TCombobox).ItemIndex] + ''' '
aztan egy par end a vegere es lehet futtatni a query-t.
[Szerkesztve] -
lao ce
aktív tag
- en mindig sima combo-t hasznalok
- az auto feltolteshez amugy is a DBLookupComboBox -t kellene hasznalni...
- a dbcombonak igenis VAN itemindex-e, annyira elbizonytalanitottal hogy megneztem a helpben
- szerintem (bar nem hasznalom) elallitodik, hiszen erre valo, hogy az itemindex-szel elallitodjon a db is, nem?
Új hozzászólás Aktív témák
- Gumi és felni topik
- Kormányok / autós szimulátorok topikja
- NFL és amerikai futball topik - Spoiler veszély!
- Büszke apukák és anyukák topikja
- gban: Ingyen kellene, de tegnapra
- Xbox Series X|S
- Konzolokról KULTURÁLT módon
- Számtech boltosok memoárjai, azaz amikor kiborulunk...
- Tőzsde és gazdaság
- potyautas: Nóta állj!
- További aktív témák...
- Latitude 5520 27% 15.6" FHD IPS érintő i7-1185G7 MX450 16GB 512GB magyar vbill ujjlolv IR kam gar
- iPad Air 4 64GB wifi+ cellular kiváló akkuval
- Google Pixel 8 128GB Rose, Bontatlan, Új, 0 Perces, 1 Év Garancia
- Google Pixel 8 128GB Rose, Bontatlan, Új, 0 Perces, 1 Év Garancia
- Thrustmaster t-gt 2 szett
- Xiaomi Redmi Note 13 Pro+ 512GB, Kártyafüggetlen, 1 Év Garanciával
- Azonnali készpénzes AMD CPU AMD VGA számítógép felvásárlás személyesen / postával korrekt áron
- BESZÁMÍTÁS! Apple Watch SE 2024 44mm Cellular okosóra garanciával hibátlan működéssel
- Keresünk dokkolókat
- Akció - Dell Latitude 5400 - i7 8665U, 8-16GB RAM, SSD, EU bill, számla, 6 hó
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest