Mysql Lazarus munka és egy adatbázist a Lazarus

Cím a munka: MySQL + Lazarus: Jobs és az adatbázis Lázár. TMySQL50Connection, TSQLTransaction, TSQLQuery - alkatrészek dolgozó adatbázis

Szakterület: Informatika, kibernetika és programozás

Leírás: Hozzon létre egy üres projektet. A projekt mappában kell másolni a DLL dolgozni MySQL. Akkor letöltheti itt: libmysql.dll. Legyen alkotnak TMySQL50Connection alkatrészek, TSQLTransaction, TSQLQuery a SQLbd panel; TDatasource komponenst és Data Access panelen.

Fájl mérete: 937,82 KB

Job letöltve: 99 fő.

Laboratóriumi munka fegyelem „Data Management”

MySQL + Lazarus: Jobs és az adatbázis Lázár

TMySQL50Connection, TSQLTransaction, TSQLQuery # 150; komponensek dolgozó adatbázis

Hozzon létre egy üres projektet. A projekt mappában kell másolni a DLL dolgozni MySQL. Akkor letöltheti itt: libmysql.dll.

Legyen alkotnak TMySQL50Connection alkatrészek, TSQLTransaction, TSQLQuery a SQLbd panel; TDatasource komponenst és Data Access panelen.

Állítsa be a kommunikáció ezen elemek között.

  1. A Tranzakciós objektumtulajdonságot MySQL50Connection1 válassza SQLTransaction1 (én nem változtatta meg az alapértelmezett hozzárendelt objektum nevek).
  2. Az adatbázis objektum tulajdonság SQLQuery1 válassza MySQL50Connection1
  3. Az ingatlan egy tárgy, válassza tranzakciós SQLQuery1 SQLTransaction1
  4. Az ingatlan a DataSet Datasource1 válasszuk SQLQuery1

TSQLQuery osztályú objektumok képviselik az adathalmazok. Ez tele van egy példányát a táblázat az adatbázis szerver, amely aztán végzett összes munkát.

Adatok elérése a lekérdezések

A lekérdezés a használni kívánt kódot:

SQLQuery1.SQL.Add (Select * from ListCatalog ');

Először zárja be az adatbázisba SQLQuery1, ami a módszer bezárása (Ugyanez az eredmény érhető el beállításával az Active tulajdonságot false). Ha a beállított be van zárva, az adatbázis kapcsolat megszakadt. Akkor tisztázzuk az SQL tulajdonság segítségével a Clear módszerrel. A Hozzáadás módszert írja a szöveget az új kérelmet. Végzett kérés parancs Open, ami lefordítja SQLQuery1 adathalmazt nyílt mód és írja az eredményt az SQL lekérdezés.

Ha az SQL utasítás nem jelenti a visszatérést a adattáblák (INSERT és UPDATE lekérdezést), akkor kell használni egy alternatív módszert annak végrehajtását:

SQLQuery1.SQL.Add (INSERT INTO myArtTable (szöveg, leírás. Kulcsszavak)

ÉRTÉKEK ( '+ # 39 + memo3.text + # 39 +', '+ # 39 + memo2.text + # 39 +', '+ # 39 + memo1.text + # 39 +') „);

Ugyanakkor, amikor megpróbálja lefordítani egy adathalmazt nyitott állapotban (fut SQLQuery1.Open;) hiba lép fel. Hogy megszüntesse azt, meg kell vagy ki kell írni az SQL tulajdonság az új lekérdezés, ami visszaadja a táblázatot, az alábbiak szerint:

SQLQuery1.SQL.Add (INSERT INTO myArtTable (szöveg, leírás. Kulcsszavak)

ÉRTÉKEK ( '+ # 39 + memo3.text + # 39 +', '+ # 39 + memo2.text + # 39 +', '+ # 39 + memo1.text + # 39 +') „);

SQLQuery1.SQL.Text: = 'SELECT * a myArtTable;';

Vagy létrehozása és használata külön adatállományban (SQLQuery2) az ilyen SQL lekérdezések, amelyek soha nem valósulnak meg a nyílt mód.

Csatlakoztatása és leválasztása adatbázisokból a Lazarus

Mi fog kapcsolódni egy távoli adatbázis azonnal, de miután megkapta egyértelmű utasítást a felhasználótól (kattintson a megfelelő gombra), úgyhogy a tulajdonság az Object Inspector Sonnected TMySQL50Connection komponenst és tulajdonságai aktív összetevő és TSQLTransaction TSQLQuery hamis.

Hozzunk létre egy űrlapot a gomb „Connect”. A felvezető kattintson írni.

eljárás TForm1.Button1Click (Sender: TObject);

ShowMessage ( „Nem lehet kapcsolódni az adatbázishoz„);

ShowMessage ( „Hiba történt végrehajtása közben egy SQL lekérdezést.”);

Így az első kísérlet történik a MySQL adatbázis, ha sikeres, új tranzakció, majd amikor aktiválja a tárgy SQLQuery1 SQL adatbázis lekérdezés, amely kiválasztja az összes sort a táblázatban. Mielőtt egy asztalt a szerver, akkor ennek megfelelően kell beállítani a kódolást. Az én tárol adatot tárolunk a kódolási cp1251, úgyhogy lekérdezésre

// SET karakter _ set _ eredménye = 'cp 866'; / * Megadja a kódolás a küldött adatok a kliens * /

// SET karakter _ _ set client = 'cp 866'; / * Megadja a kódolás az adatok az ügyfél által küldött * /

// SET karakter _ _ set connection = „utf 8” / * beállítja a kódolást, ami átalakítható információt jött az ügyfél előtt a lekérdezés a szerveren. * /

Amikor kihúzza az adatbázisból fordított sorrendben. Nézzük elindult az eseménykezelő kód OnDestroy forma

eljárás TForm1.FormDestroy (Sender: TObject);

Navigáció szerint

Navigáció alapul vizuális eleme a «Adat Controls» fülre. Hozzászólás űrlapunkat alkatrészek TDBGrid, TDBNavigator és három TDBMemo komponens. És állítsa DataSource tulajdonság összekapcsolni DataSource1. Az ingatlan DataField tárgyak DBMemo1 levelet a Catalog_name ill. (Ahol Catalog_name # 150; a neve a mezők (oszlopok) a ListCatalog táblázatban.)

Mysql Lazarus munka és egy adatbázist a Lazarus

Futtassa a programot, és kattintson Knap „Connect ...”. Miután csatlakozott az adatbázis tábla érkezik a szerver jelenik meg az objektum DBGrid1. Arrow bal kifejezni az aktuális rekordot. Ön tud navigálni a táblázat sorai With DBNavigator1 panel. Ön is szerkesztheti a bejegyzéseket, de bármilyen változás történik akkor áll vissza alaphelyzetbe bezárása után a program. Hogy megmentse őket az adatbázisba, meg kell hívni ApplyUpdates módszer:

Módszerek TSQLQuery osztály, amelynek célja a navigáció alapján:

  1. TSQLQuery.Next # 150; a frontra bejegyzés
  2. TSQLQuery.Prior # 150; menj vissza a rekord
  3. TSQLQuery.First # 150; menj az első rekord
  4. TSQLQuery.Last # 150; menj az utolsó rekord
  5. TSQLQuery.Insert # 150; Új rekord
  6. TSQLQuery.Delete # 150; törölje a rekordot
  7. TSQLQuery.Edit # 150; convert adatállomány szerkesztés módba
  8. TSQLQuery.Post # 150; menteni a változásokat az adatbázisba
  9. TSQLQuery.Refresh # 150; frissítés asztal

Annak érdekében, hogy a mező értéke a felvételt, akkor használja a módszert FieldByName (fn: string), ahol fn # 150; név mező (oszlop) a táblázat. Ugyanezt a módszert lehet használni, hogy írjon új adatokat az asztalra. olvasási / írási formátumot jelzi AsString tulajdonságok AsInteger, AsFloat, AsDataTime, ... Például, hogy rögzítse az aktuális értéket az id mező a címke, akkor a kód:

Mi is ad példát a szerkesztési aktuális sor a táblázat

SQLQuery1.FieldByName (# 145; kulcsszavak # 146;) AsString :. = # 146; Lazarus zhzhot # 146 ;;

SQLQuery1.FieldByName (# 145; szöveges # 146;) AsString :. = # 146; új szöveg # 146 ;;

Érdemes megjegyezni, hogy nem minden adathalmaz, lehet szerkeszteni egy navigációs módszer. (Azaz, úgy, hogy a változások menthetők az adatbázisban) ahhoz, hogy egy SQL lekérdezés szerkeszthető meg, akkor meg kell felelnie a következő feltételeknek:

  1. adatok vannak kiválasztva: csak egy asztalon;
  2. táblázat lehetővé teszi módosítás;
  3. A kérés nem használ különböző és statikus függvények;
  4. A kérelem nem vonatkozik összekötő táblázatok;
  5. Kérése hiányzik subqueries és subqueries;
  6. nem használt csoportosítása adatok;
  7. válogatás csak az index mezők;

Segítségével tranzakciók és TSQLTransaction a Lazarus

Általában egy tranzakció mechanizmusra van szükség integritásának megőrzése az adatbázisban. Mondjuk, azért, hogy a valós idejű adatokat az adatbázisba felvenni kívánt különböző táblázatok nagy mennyiségű információt. Ha kikapcsolja az áramot, a táblázatok részeként tartalmaz naprakész információkat, és néhány régi feljegyzések a folyamatban. Ennek eredményeként, az adatbázis sérült. Ez lehetővé teszi, hogy elkerüljék a tranzakciós mechanizmus. Ha minden írási művelet sikeresen befejeződött, a tranzakció sikeresnek tekinthető, és annak módosításait az adatbázis táblákat tekintjük megerősítik. Ha legalább egy írási művelet nem kerül végrehajtásra, a tranzakció sikertelennek minősül, és az adatbázis tábla visszakerül az állam voltak a tranzakció előtt kezdődött.

Együttműködik tranzakciók Lazarus adunk TSQLTransaction komponenst. Azonban jelenleg nem működik a MySQL adatbázisok. TSQLTransaction automatikusan aktívvá válik, ha megnyit egy adathalmaz (TSQLQuery), és bezáródik, ha zárva van. Ahhoz, hogy kifejezetten megerősítik a siker a tranzakció lehet használni TSQLTransaction.Commit módszer. Ok, hogy legyen azonnal TSQLQuerty.ApplyUpdates; Visszagörgetéshez a tranzakció, akkor TSQLTransaction.Rollback módszer.

Kapcsolódó cikkek