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.
- A Tranzakciós objektumtulajdonságot MySQL50Connection1 válassza SQLTransaction1 (én nem változtatta meg az alapértelmezett hozzárendelt objektum nevek).
- Az adatbázis objektum tulajdonság SQLQuery1 válassza MySQL50Connection1
- Az ingatlan egy tárgy, válassza tranzakciós SQLQuery1 SQLTransaction1
- 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.)
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:
- TSQLQuery.Next # 150; a frontra bejegyzés
- TSQLQuery.Prior # 150; menj vissza a rekord
- TSQLQuery.First # 150; menj az első rekord
- TSQLQuery.Last # 150; menj az utolsó rekord
- TSQLQuery.Insert # 150; Új rekord
- TSQLQuery.Delete # 150; törölje a rekordot
- TSQLQuery.Edit # 150; convert adatállomány szerkesztés módba
- TSQLQuery.Post # 150; menteni a változásokat az adatbázisba
- 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:
- adatok vannak kiválasztva: csak egy asztalon;
- táblázat lehetővé teszi módosítás;
- A kérés nem használ különböző és statikus függvények;
- A kérelem nem vonatkozik összekötő táblázatok;
- Kérése hiányzik subqueries és subqueries;
- nem használt csoportosítása adatok;
- 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.