Sqlite și foc de armă

Odată cu apariția Delphi XE2 FireMonkey, uneori, simt ca un drept unele elev de clasa =) Ca să nu mai spun că nu este într-adevăr directă toate neclare și greu ... probabil un pic obișnuiți să folosească FMX-noi controale. Aici și astăzi din subiectul articolului și amintește de ceva din categoria "Delphi pentru începători". Dar, așa cum se spune, nu puteți șterge cuvinte din cântec - odată ce ați decis să lucrați cu FireMonkey, atunci ar trebui să începeți cu lucruri simple. Ei bine, la fel ca în articolul despre SQLite pentru Delphi XE2 a fost o propunere de a picta de locuri de muncă cu Grid'ami în FMX, apoi încercați să scrie o mică aplicație care va umple placa pe baza unei cereri către SQLite bază de date.

În Delphi Xe3 are suport SQLite prin intermediul dbExpress, precum și îmbunătățit în mod semnificativ LiveBindings mecanism, care pot fi utilizate ca un timp din baza de date pentru a popula tabele cu date. Pentru mai multe informații despre SQLite și LiveBindings în Delphi XE3, consultați articolele:

Și la începutul câtorva cuvinte despre SQLite în Delphi. sau mai degrabă despre ambalajul cu care voi lucra. Faptul este că acesta este probabil cel mai simplu înveliș din tot ce am întâlnit (de fapt, mi-a plăcut în acest fel). Nu există componente, toate obiectele din modulul de SQLiteTable3 - aceasta clase la un TObject, și toate lucrările este direct legată de cererile la biblioteca SQLite (în Win-aplicații - va sqlite3.dll). Firește, o astfel de organizare a muncii cu SQLite impune anumite restricții privind lucrul cu baza de date SQLite. De exemplu, eu nu pot lua, și fără alte probleme sau utilizați TDataSet, de asemenea, utilizați la fel ca ar fi, de exemplu, MSSQL DBGrid - trebuie să caute decizia sa de a utiliza TClientDataSet'y etc. Dar, în principiu, nu aveam nevoie de astfel de soluții. Singura dată când trebuia să folosesc TDataSet, TDBGrid, etc. a fost de aproximativ cinci până la șapte ani în urmă și apoi toată această "creativitate" a fost apoi folosită de BDE. În general, dacă cineva are o dorință / nevoie de a conecta acest pachet cu TDataSet - știți că este ușor și rapid să îl obțineți. Ei bine, voi lua un exemplu de modul în care, folosind SQLiteTable2.pas, puteți crea tabele în aplicația Firemonkey.

Ca exemplu, hai să folosim baza de date, care va conține tabelul discutat în articolul precedent despre SQLite:

CREATE TABLE [TestTable] ([id] INTEGER PRIMARY KEY AUTOINCREMENT [StringRow] TEXT [NumberRow] INTEGER, [DateTimeRow] DATETIME);

Acum, să vedem ce trebuie să știm pentru a umple masa.

Pentru a completa tabelul de pe formular (nu contează ce fel - de FMX sau VCL), trebuie să știm în plus față de datele stabilite valori de câmp pentru cel puțin încă două valori: numărul de câmpuri (coloane) și numărul de înregistrări (rânduri) în tabel. În caz contrar, pur și simplu nu putem seta corect numărul de rânduri și coloane din controlul nostru pe formular.

Pentru a lucra cu baza de date în sine, trebuie să știm care tabele sunt prezente în ea.

De exemplu, creați o nouă aplicație "Aplicație Firemonkey HD" și plasați următoarele elemente pe formular:

  1. TMemo - aici vom vedea / edita interogări SQL
  2. TStringGrid (din fila Grids) - aici vom scoate rezultatul executării interogării
  3. 2 TButton pentru a efectua operația de conectare la baza de date și pentru a executa interogarea SQL
  4. TComboBox - pentru stocarea unei liste de tabele de baze de date
  5. TOpenDialog - pentru a selecta un fișier de bază de date.

Aspectul aplicației Am obținut acest lucru:

Sqlite și foc de armă
Când faceți clic pe butonul "Conectare", ne vom conecta la baza de date și vom citi numele tuturor tabelelor. Am sugerat utilizarea bazei de date din articolul precedent, dar, de fapt, aplicația va putea să funcționeze cu orice bază de date pe care o specificați, așa că vom primi lista după cum urmează:

  • Ne conectăm în modulele de utilizare

Articole similare