Kérdezzen hogyan dbgrid1 kijelző csak egy része a feljegyzések, és amikor

Prompt hogyan DBGrid1 kijelző csak egy része a feljegyzések, és amikor

Kedves Mester Delphi! Prompt hogyan DBGrid1 kijelző csak egy része a feljegyzések az asztal szerver, és a következő alkalommal, amikor a felhasználó rákattint a gombra - a megjelenő bejegyzéseket DBGrid1 adunk hozzá, és a következő n A táblázat rekordjait.

Nos, minden normális összetevője a hozzáférést az adatbázis szerver húzza csak mi éppen látható a képernyőn.

Hol találok ilyen alkatrészt, hogy látható a képernyőn abban a pillanatban, minden 743 feljegyzések, hogy a szerver visszatért

Igen, de azt kell, miután a szerver a kliens kap egy sor nyilvántartások és megjelenik egy DBGrid, maradt, és a hozzáadott érték a következő kérelem DBGrid.
Azaz van egy tábla 100.000 nyilvántartások, egy gomb megnyomásával a DBGrid megjeleníti a 50 érdeklődő felhasználó bejegyzések sleduyuzhy kérést a szerver - akár 50, de a DBGrid megjeleníti már 100 bejegyzés, és így az egymást követő touch. Ebben az esetben a szerver a kliens érkezik 50.

diokant (18.06.03 16:19),
nem használja a DBGrid

juzat vagy ideiglenes táblák, amelyek egyesülnek az adatokat a szerverre (ha 50 db rekordok :)))


> Hol találok ilyen alkatrészt, hogy látható a képernyőn
> Jelenleg minden 743 rögzíti, hogy a szerver visszatért

Nem én írtam róla.
A kijelző képes befogadni 20 bejegyzés - a szerver pumpált csak ezek 20 rekordból.
tömörítési technológia nem rendelkezik. )))

> Juzat vagy ideiglenes táblák, amelyek egyesülnek az adatokat a szerver
Azt hiszem, nem fog működni, mert meg kell szerkeszteni az adatokat DBGrid1.

> Nem használható a DBGrid
Ha nem kemény - többet mondani

diokant (18.06.03 17:55)
Igen Legalább a standard StringGrid, adatokat tárolnak a szerkezet TList + rekordot. Amikor meg kell adni az adatokat a szerkezet és asztali fogni változások táblázat adatai - frissítés „ish venni a szerveren.

> top
Ha nem kemény - többet mondani

Egy lehet feloldva egy DBGrid kijelzőn adatok nem egy, hanem több adatforrás. Ha igen (és szerkeszthető) -, akkor azt hiszem, ez illik.

Kedves Mester Delphi!
Meg kell húzni az ügyfél rekord részeit szerveren asztalra, de úgy, hogy a DBGrid megjelenítéséhez a nyilvántartást minden tételek és bármelyik bejegyzés lehet szerkeszteni közvetlenül a DBGrid.

Kérem, mondja meg a legtöbb „szép” megtestesítője.


> Diokant (19.06.03 09:46)

Ez nem teljesen világos még, hogy mi nem elégedettek az alapértelmezett viselkedését TDataSet. Adatok, és így nem tölti le egyszerre, azaz részletekben. Ie valahogy így:
Ott DataSet és a kapcsolódó DBGrid. Nyissa meg a DataSet. Ő fecskendez a szerveren annyi bejegyzések ahogy a rács. Amikor a felhasználó elkezd mozogni a rekordok a rács, ha meg kell mutatni még nem feltöltött felvételek a szerver pumpált új rész, és hozzáadjuk a DataSet puffer „is.

Az a tény, hogy az ügyfél kommunikál a szerverrel egy dial-up kapcsolatot.
Ha én olyan kérelmet SELECT * FROM T1 - a megkeresés teljesítésére sokáig.
Szóval azt akarom, hogy:
- jelenteni a bejegyzések száma a táblázatban (mondjuk 50.000)
- a felhasználó beállította a feltétellel,
- aztán meghatározza a rekordok száma, amelyek megfelelnek a feltétel, és tájékoztatják a felhasználót
- ha a felhasználó szeretné látni ezeket a feljegyzéseket, és a rekordok száma kisebb, mint mondjuk 100 (100, mert ez egy idő, amikor mintegy 10 másodperc), azt megjeleníti őket egy DBGrid (ha nem fér el a képernyőn - van függőleges görgetést)
- A felhasználó létrehoz egy új állapotban,
- aztán meghatározza a rekordok száma, amelyek megfelelnek a feltétel (köztük a számát határozza meg a már meglévő, a kliensen (egy DBGrid), és az összeget, amit kell, még mindig a kliens-szerver)
- ha a rekordok száma kisebb, mint mondjuk 100 (100, mert ez egy idő, amikor mintegy 10 másodperc), azt megjeleníti őket egy DBGrid, azaz a DBGrid idősebb lesz felvétel + új definiált.

Így az ügyfél lesz sok bejegyzés (ezek mind elérhető egy DBGrid, és ha nem fér el a képernyőn - van függőleges görgetés), amelyek részhalmazai rekordok sorozataként, amely kielégíti mind a feltételeket, amelyek alakultak a felhasználó. A felhasználó tudja szerkeszteni bármelyik megjelenített rekordok DBGrid


> Diokant (19.06.03 11:00)

Ahogy értem, sőt meg kell, hogy ahhoz látsz (és szerkesztése a rács), az eredmény több, egymást követő lekérdezések.
Az egyik megoldás: használjon MemoryTable, amelyben mindkét egyesíteni lekérdezés eredményét.

Még annyit tennék hozzá: hol függőleges görgetést a rács. Azt már többször próbálta mondani (és újra megpróbálom :)), hogy a nagy rekordok száma a rács - egyszerűen nem kell. Nos, nem olyan állapotban egy normális ember dolgozni több ezer rekordot. Ideális esetben a kérelmet vissza kell annyi nyilvántartás illeszkedik a látható része a rács.

> Ha jól értem, sőt meg kell, hogy a felhasználó tudta> lásd (és szerkesztése a rács), az eredmény több> követő kéréseket.
Igen.

> Az egyik megoldási lehetőségekről: használjon MemoryTable,> ahol mindkét egyesíteni lekérdezés eredményét.
És lehetséges, egy kicsit?


> Diokant (19.06.03 11:57)

Vannak elemek, a TDataSet leszármazottai, akik dolgoznak az adatok nem minden adatbázist és a memóriát. Egyszer használt TRxMemoryTable (lehet, hogy tévedek a címben, ez egy hosszú idő), kérje - itt tanácsot hogyan lehet a legjobban használni, és hol kap.
Az algoritmus a következőképpen néz ki:
A kérelmet benyújtották. A kapott lekérdezés adathalmaz van rögzítve MemoryTable. Végezzük következő kérelem - a kapott adathalmazt adjuk a csomagot, MemoryTable. Stb
Annak érdekében, hogy módosítsa az adatokat lehet küldeni a szerver ebben MemoryTable írásbeli felvezető például OnBeforePost, amelyben mind végeztek UPDATE lekérdezést.