Mint design kérés

Mint design kérés
Hello mindenkinek, ma nézzük tanulsága az adatbázisból, és különösen megnézzük, hogyan lehet egy gyors a felhasználó, aki belép az adatokat, például keresni. Ez a funkció látható sok program, valamint sok helyen, mint a Facebook. ha van egy ember kereső, a legördülő listából, ahol megtalálható hasonló véletlen, hogy megkönnyíti a belépési adatok a felhasználó, ezt a funkciót, akkor próbálja meg, és a Delphi, mint például az MS Access adatbázisok, csak egy kicsit egyszerű formában. De az is használható más adatbázisok, amelyek felhasználhatók a Delphi. Már nézett sok példát találni az adatokat, ebben az esetben fogjuk használni az SQL-konstrukciók, mint a. amely korábban mi is venni, és használni. Egy példa erre az építőipari az alábbiakban ismertetjük:

Mint láttuk, a LIKE egyszerű kialakítás mintaegyeztetésre adatokat meg kell adnia egy bemeneti paraméter azt.

És most, hogy a példánkban és feladatok. Kezdésként hozzunk létre egy kis adatbázis vMSAccess. nem lesz túl egyszerű dolgokat, akkor csináld magad, és csak a tablettát, hívják Goroda. benne, hoztam létre az alábbi területeken:

Most kell egy kicsit, hogy töltse ki lemezt, nem sokat, tettem hozzá, hogy csak 5 bejegyzés:

Mint design kérés

A nagyon szerkezete a táblázatban, akkor lásd alább:


Menj előre, például, hozzon létre egy projektet Delphi. Helyezze a következő alkatrészeket a formában:

Az ingatlan Caption TLabel alkatrész write - „A város”. Következő kiosztani TAdoConnection komponenst. annak ConnectionString tulajdonság Megadja az adatszolgáltató - ebben az esetben MicrosoftJet 4.0OLEDBProvider. Folytassa a következő kapcsolat (tab), amely mutatja az utat adatbázisunkban (akkor adja meg a teljes elérési utat az adatbázisban, de ha ez az aktuális mappában a projekt, csak adja meg a teljes nevét adatbázisainkban kiterjesztésű, ebben az esetben, * .mdb). Az OK gombra kattintva folytassa a Mode tulajdon. amelyet választott a legördülő listából cmShareDenyNone. Bár akkor egyszerűen kiválaszthatja olvasni cmShareDenyRead. Nos LoginPromt tulajdonság False értékre van beállítva (nem teszik lehetővé levezetni egy ablakot, hogy kérje felhasználói nevet és jelszót, amely lehetővé teszi a hozzáférést az adatbázisunkban), kivéve, ha az adatbázis nincs beállítva jelszó, különben meg kell adnia a felhasználónevét és jelszavát, akkor ez a célunk csatlakozni állandóan ne vezessenek be egy és ugyanazon adatokat. Van egy jelszót az adatbázis nincs beállítva, így False. Végül, meg kell, hogy aktiválja a kapcsolatot adatbázisunkban, ez meg a Connected tulajdonságot False.

Most megyünk a konfiguráció a TADOQuery komponenst. Válassza TADOQuery a komponens és az ingatlan Connection TADOConnection adja meg a nevét az alkatrész. az én esetemben ez AdoConnection1. Következő, szükségünk van egy másik TADOQuery alkatrész tulajdon - ez paramétereket. Nyisd ki, és adjunk hozzá egy új paramétert (a neve), hívtam - gorods. Megmutatjuk neki az adat típusát (DataType) - ftString összes zárja ablakunk. Azonnal aktiválni a vizsgálatot nem szükséges, mert ez már nem regisztrált SQL konstrukciókat, és valójában nem fog sikerülni. Az általános nézet az ablak az én projekt kiderült, a következő:

Most jöjjön a kódot írni.

Válassza a komponens tSzerkesztés és mozgassa a listát az események, azt látjuk, hogy onkeyup esemény, és kattintson duplán kattintva megjelenik egy ablak a programkód erre az eseményre. Miért ez az esemény, mert ez jobban megfelel nekünk is, úgy tűnik, keletkezik, miután a felhasználó megadott egy másik a város jelképe, és már elengedi a gombot, még abban az esetben van egy kulcs érv. amely tárolja a számkód a lenyomott gomb.

Most lépni kód írása, akkor nyissa meg újra a rendezvény, és írni a következő kódot:

Most részletesen elemzik a kódot. A pos változó. meg kell emlékezni az aktuális beviteli pozíciót. Akkor abban az állapotban vagyunk távol tartja minden kulcskódokról kevesebb, mint 47.

A ClearSelection mi törölje a tSzerkesztés komponenst. Majd írunk mi SQL -query, ahol van hasonló felépítésű. és benne mi kiemelte a környezetben nyújtott gorods. Már az alsó sorban mi meg a paramétereket tSzerkesztés. kezdeni eltávolítjuk rések lehet előre, és a mi rekord teljesen hozzá a% karaktert, amely egyértelművé teszi, hogy a kérelmet, miután a felhasználó beírt szó mehet teljesen bármilyen karaktert.

A végén minden egyszerű, azt rendelni tSzerkesztés. mi található az adatbázisban (ha talál egy természetesen), és válassza ki a szót karakter, ami lehetséges, és a felhasználó keres, ha nem talál semmit, majd közzéteszi csak a hangjelzés. Ez az, amit jött:

Ami ebben a példában, a fő előnye az, hogy nem csak a város, amely megfelel a hasonló mintát. hanem abban is segít, hogy a felhasználó beírta, amivel a legmegfelelőbb város nevét.

Ezért használja terveiket éppen ez a keresés szerkezete, hogy megkönnyítse a felhasználó munkáját a programban. Azt is elhelyezhet a forrás cikkeket itt tölthető le. A forráskód ellenőriztük be IDE - Delphi 7.

Hasonló bejegyzések

Itt, az úton, egy kérdést.
Ha csinálsz egy keresést ComboBox (2. rész), hogy az egyik alternatíva (látható első pillantásra)
- Add ORDER BY gorod, hogy fekvő a listán, hogy bemutassák a város ábécé sorrendben;
- statisztikát vezetnek (dinamikus, statikus) a felhasználók számára a városi területeken, majd szervezni „tipp” városok aszerint, hogy azok népszerűsége;

Különben is - jó szerencsét!

Igen, valami ilyesmi, és megrendezésének tervét

tervezés
ADOQuery1.Active:=True;
A ADOQuery1 do
kezdődik
ha aktív, akkor
Bezárás;
Nyisd;
.
Mert mit tett? Végtére is, az Open előfordul csak Active: = True. Kiderül, hogy az elején te Open, majd ellenőrizze, hogy kveri aktív, ha igen, akkor zárja be, majd nyissa meg újra. De egy ilyen kódot mindig kveri előtt ellenőrzést fognak nyitni. Magyarázd meg, miért ez történik?
ZY By the way, akkor érdemes egy kis szünetet között az utolsó karakter beviteli és keresési adatokat. mert ha az adatok az adatbázisban lesz sok, ez lesz a fék, hogy nem tetszik, miután minden felhasználó be karaktereket. Szünet fél másodpercen elfogadható (ha a felhasználó belép a szöveg gyors)

Sokszor a bemeneti szó befejezése volt - próbáltam egy csomó lehetőséget. Így a legoptimálisabb - inicializálni a keresési időzítőt. Ie a felhasználó megnyomja a gombot - az időzítő elindul (pl 500 ms), ha ismét megnyomja - a visszaszámlálás újra kezdődik. Az időzítő - az a megkeresés.
Nos, általában, ha a könyvtár nem nagy - könnyebb zafetchit az egészet a combo box, és így ő lesz teljes, ha nem a találmány a kerékpárt. Itt a nagy táblák - már felforgatta

Jó napot, kérem, segítsen nekem, rábukkantam erre az oldalra a hálózat, köszönöm egy ilyen magyarázat egyáltalán, de van egy probléma:
Van egy B / D, 2 táblák nem kapcsolódnak.
A lapokat keresztül csatlakoztatott ADOQUERY komponenseket, ADOCONNECTION, DBGRID, DATASOURCE.
és ezek a 2 asztal, kérem, mondja meg, hogyan kell kötni őket. Ez lehetséges anélkül ADOTABLE.
és azt kell a táblázatból №2 a kiválasztott vonalon ő kivágjuk, és a rekord tablitsu№1. ha végrehajtása ilyen kód lehetséges egy ilyen konstrukció.

Andrew, te olyan hasznos oldal. Köszönöm azt. Van egy kérdésem. Ha a programozás Delphi, azt használja a Paradox adatbázis táblákat, és az eredmény nem volt túl boldog. Néha az adatokat a táblázatban nem rögzített egyáltalán. És hol az adatbázis létrehozása táblákat azt tanácsolom? Köszönöm.

Szia, szeretném használni minden szabad adatbázis, MySQL - jó, MS Access is jó, de meg kell vásárolni, én is, mint Tűzmadár, MS SQL kiváló általános szám egy DBMS jó fizetett és ingyenes, keres, amit akkor célok használatához

Andrei, helló. Valahogy szintaktikai hiba a vonalon: ADOQuery1.SQL.Add ( 'SELECT * FROM FIO tbFamilii WHERE FIO LIKE: familia');
Abból, amit lehet?

Kapcsolódó cikkek