A tibupdatesql törzset írásbeli tranzakcióval
A TIBUpdateSQL örököse írásbeli tranzakcióval
Itt van egy kísérlet arra, hogy bemutassuk az IBX-ben az IBCustomDataset összetevők IBCustomDataset összetevőinek "olvasására" és "írásba" történő elválasztásának elvét. Az IBUpdateSQL báziskomponensként való használatát a forráskód megváltoztatásának és annak elégségességének minimalizálására törekvő várakozással magyarázza - az IBDataset újratervezésével az IBX új verzióinak használata esetén valószínű problémák merülhetnek fel.
Az IBUpdateSQL mechanizmusának megértéséhez ki kell emelni a következő tulajdonságokat és módszereket: privát
FQueries: TIBQuery tömb [TUpdateKind];
nyilvános
tulajdonság lekérdezés [UpdateKind: TUpdateKind]: TIBQuery olvassa el a GetQuery; Az FQueries tömb tulajdonsága olyan TIBQuery típusú objektumokat tárol, amelyek értéke kezdetben nulla. Amikor először hívja a lekérdezést, a GetQuery metódust hívják - létrehoz egy objektumot, és inicializálja annak tulajdonságait IBDatabase és IBTransaction. Megjegyzem, hogy valószínű, hogy egy vagy több TIBQuery objektum egyszerűen nem lesz létrehozva, azaz. Nem volt adatmódosítás, és az FDataset nem érte el az UpdateObject.Apply módszert. Egyszerűen fogalmazva, az IBUpdateSQL komponens "manuális" munkát végez, mint a var
MySql: TIBSQL;
MySql: = TIBSQL.Create (null);
MySql.database: = dm.Base;
MySql.Transaction: = dm.trRead;
MySql.SQL: = 'la-la-la';
véglegesítése
ha hozzárendelt (MySql)
MySql.Free; Mindez megvalósul a GetQuery módszerben.
- a SetUpdateTransaction eseménykezelést
- módosítsa a GetQuery változatait
- kezelje az Értesítési eseményt
- megkerülni a magánéletet és a statikus adatokat