Lazarus 3.2 (2024.02.28.)
Letöltés

  • Oldal:
  • 1

TÉMA:

SQLQuery használata 2015 dec. 01 11:29 #1620

  • makgab
  • makgab profilkép Témaindító
  • Törzsgárda tag
  • Törzsgárda tag
  • Hozzászólások: 280
  • Köszönetek: 1
Köszönöm az instrukciókat!
Egy kicsit javítgattam, módosítgattam az app-on és most betöltöttem egy 150 rekordos adatmennyiséget. Partneradatok tábla egyébként (pl. id,név, cím, város, ország, email, telefon, megjegyzés... mezőkkel).
A sebesség nagyon jó, egy pillanat alatt bejön - nem jöttem rá mi terhelte korábban. Azért megnézem majd, hogy milyen lesz a hálózati sebesség (nem lokálisan).

A "// vagy bármi más StringGrid helyett" while ciklust miért használod? A DBGrid-et nem használod?
Érdemes ezekből a komponensekből építkezni? DBGrid, DBNavigátor, DBEdit, DBLookupCombBox... stb. (értem úgy, hogy pl. optimális a sebességük?)

SQLQuery használata 2015 dec. 01 09:06 #1619

  • JohnnyK
  • JohnnyK profilkép
  • Haladó forumozó
  • Haladó forumozó
  • Hozzászólások: 78
  • Köszönetek: 16
Tranzakció használat segíthet a dolgon, pl:
SQLTransaction.StartTransaction;
SQLQuery.SQL.Clear;
SQLQuery.SQL.Add('SELECT * FROM MyTable');
SQLQuery.SQL.Open;
SQLQuery.First;
while not SQLQuery.EOF do
begin
  for i := 0 to SQLQuery.FieldCount - 1 do StringGrid.Cells[i, SQLQuery.RecNo] := SQLQuery.Fields[i].AsString; // vagy bármi más StringGrid helyett
  SQLQuery.Next;
end;
SQLQuery.Close;
SQLTransaction.Commit;
A tapasztalatom az, hogy a táblában található rekordok számától másodfokúan függ a lekérdezés időtartama. Biztosan függ ezer más tényezőtől is, az adatbázis típusától, táblaszerkezetétől, struktúrájától, stb. Viszonyításképpen egy végletekig leegyszerűsített SQLite adatbázisban nagyságrendileg 20 ezer rekord után értem el a 3 másodperces lekérdezés-futási időt, de ez is biztosan függ a számítógép teljesítményétől és alkatrészeitől.
Ha rekordok nélkül fut a lekérdezés több másodpercig, ott szerintem nem az SQLQuery-ben kell keresned a lassúság okát.

SQLQuery használata 2015 nov. 30 19:12 #1618

  • makgab
  • makgab profilkép Témaindító
  • Törzsgárda tag
  • Törzsgárda tag
  • Hozzászólások: 280
  • Köszönetek: 1
Néha az SQLQuery lassúnak tűnik, pedig a tábla üres. Kb. 3-4mp míg lefut az SQLQuery.Close és Open (0 rekord!).
Ez érdekes. Ugyanez a DB, másik tábla ahol adatok vannak, ott meg pikk-pakk.

SQLQuery használata 2015 nov. 28 18:44 #1610

  • makgab
  • makgab profilkép Témaindító
  • Törzsgárda tag
  • Törzsgárda tag
  • Hozzászólások: 280
  • Köszönetek: 1
Üdv!
Az SQLQuery komponens korrekt használata felől érdeklődöm. A working with SQLQuery doksi szerint használat a megfelelő?
Csak azért kérdezem, mert anno Delphi-ben vigyázni kellett, igaz ott nem volt SQLQuery.
Szóval pl. kliens-szerver architektúra esetén a komponens egy nagyméretű lekérdezést lassan fog kezelni? Gondolok itt arra, hogy ha nagy az eredmény rekordszám - pl. 5000 -, akkor lassú lehet a fetching? (Delphi-ben volt néha ilyen probléma. bár régen volt...)
Nagyobb adatmennyiséggel még nem próbáltam az SQLQuery-t. Van tapasztalata valakinek? Hogyan érdemes kezelni ill. felkészülni a nagyobb adatmennyiségre? Kódban hogyan lehet ezt kezelni (ha kell)?

  • Oldal:
  • 1