[Borland]

Kylix 3 - sid 6 av 10
« Föregående sida | Första sidan | Nästa sida »

DataCLX

Under Windows har Delphi-& C++ Builder-utvecklare tidigare till stor del baserat sina databasapplikationer på Borland Database Engine (BDE) eller fr om Delphi 5/C++ Builder 5 alternativt på Microsofts ActiveX Data Objects (ADO). I båda fall sköts databaskommunikationen av en, från Delphi/C++-applikationen, extern databasmotor (BDE eller ADO), som via egna drivrutiner pratar med databasens drivrutiner. Det finns alltså många länkar i kedjan mellan applikation och databas.

En fördel med BDE har varit att den erbjudit ett generellt programmeringsgränssnitt mot olika SQL-databaser och även mot enklare filbaserade databaser som Paradox, dBASE och Access. Det samma kan sägas om ADO.

En stor nackdel har dock varit att man vid distribution av databasapplikationer, först måste installera och konfigurera en extern databasmotor, BDE eller ADO. Detta har gjort installationen av applikationer mer komplex och felbenägen (versionkonflikter, m m). Det har försvårat distribution av lättviktiga databasapplikationer.

Ur programmeringssynvinkel har en nackdel varit att man fått sämre möjlighet att styra kommunikationen med databasen på applikationssidan, eftersom allt måste passera BDE/ADO. Buffring av data har ofta skett på såväl BDE/ADO-nivå som applikationsnivå med dubbelarbete, sämre prestanda och ökat minnesbehov som resultat.

I senare versioner av Delphi och C++ Builder(Enterprise) introducerades en ny teknik för att skriva tunna databasklienter och flerskiktsapplikationer, nämligen DataSnap (tidigare kallad Midas). Med DataSnap TClientDataSet-komponent kan man skriva applikationer som arbetar mot lokala dataset på CDS- eller XML-format (Delphi/C++ Builder 5 och 6). Tabelldata laddas och bearbetas i internminnet, vilket ger mycket höga prestanda.  Man kan också låta en ClientDataSet hämta data via en TDataSetProvider-komponent, som i sin tur får data från exv en BDE-baserad databaskomponent (TQuery, TTable), en ADO-baserad (TADOQuery, TADOTable, TADODataSet) och i Delphi/C++ Builder 6 och Kylix 3 via en dbExpress-komponent (TSQLDataSet, TSQLTable, TSQLQuery) eller  InterBase Express-komponent (TIBDataSet, TIBQuery, TIBTable). Alternativt kan en DataSetProvider hämta data från en serverapplikation via SOAP (i Delphi/C++ Builder 6 även DCOM, TCP/IP Sockets, HTTP och CORBA).

Med ClientDataSet får man automatiskt lokal cachning av data och en enhetlig modell för att arbeta mot databaser. Borland har de senaste åren rekommenderat att man baserar sina applikationer på just TClientDataSet.

Vid utvecklingen av Kylix valde man att använda TClientDataSet och TDataSetProvider från DataSnap som en viktig beståndsdel av DataCLX. Vi börjat med att titta på hur man använder TClientDataSet i enanvändarapplikationer genom att direkt arbeta med databastabeller på standard XML-format, alternativt Borlands CDS-format. Man har döpt den lokala XML-baserade databasmotorn till MyBase.

MyBase XML

MyBase XML databasmotor innehåller en "smal", lokal XML-databasmotor för snabb databasbearbetning direkt i minnet. MyBase kräver ingen speciell installation eller konfigurering vid distribution av applikationer. MyBase har stöd för

Via MyBase kan man hämta och utbyta data med de RDBMS:er som Kylix supportar. MyBase XML- och CDS-filer är portabla mellan Windows och Linux, Delphi, C++ Builder och Kylix.

dbExpress

För att koppla sig mot externa SQL-databaser har man i Kylix och Delphi/C++ Builder 6 utvecklat en helt ny, plattformsoberoende teknik, myntad till dbExpress.

dbExpress har många trevliga egenskaper som att vara

Den externa databasmotorn i BDE/ADO ersätts i dbExpress av en drivrutin anpassad till den databasserver man vill koppla upp sig mot. 

Under utveckling sker konfigurering med enkla INI-filer (textfiler). Vid distribution byggs alla inställningar in i applikationsfilen, såvida man inte vill ge möjligheter låta användarna anpassa konfigurationen. I dessa fall skickar man med INI-filerna.

I Pro- och Enterprise-versionerna av Kylix 3 ingår drivrutiner för:

 I Kylix 3 Enterprise ingår dessutom drivrutiner för

Tredjepartsleverantörer utvecklar fler drivrutiner, bl a en generell ODBC-drivrutin som gör det möjligt att jobba mot databaser via ODBC-drivrutiner.

dbExpress-komponenter

I dbExpress ingår följande komponenter:

Som svar på SQL-frågor returnerar SQLDataSet ett resultatset utan ytterligare tolkning. Till skillnad mot BDE och ADO, så buffras inte data lokalt av dbExpress, varför navigering genom data är enkelriktad (endast First- och Next-metoderna kan användas). Man kan inte heller automatiskt uppdatera data som erhållits som svar på en SELECT-sats. Man måste istället vid behov skriva egna INSERT- och UPDATE-kommandon för detta.

Egentligen är inte detta konstigt - dbExpress fungerar nämligen precis som SQL självt. Den stora vinsten är att dataåtkomsten är mycket snabb utan onödigt tingel-tangel - när man inte behöver det.

För att underlätta konvertering från BDE-baserade Delphi/C++ Builder-applikationer finns också komponenterna

– men egentligen kan allt utföras med den mer generella TSQLDataSet ovan.

Fri navigering och uppdatering?

I många situationer har man dock behov av fri navigering och enkel uppdatering av data. Hur löser man detta med dbExpress?

Jo, man kopplar sin SQLDataSet (alt SQLQuery eller SQLTable) via en TDataSetProvider-komponent, som i sin tur kopplas till en TClientDataSet. Via en TDataSource kopplas sedan användarkontrollerna.

Nu sköter ClientDataSet-komponenten om buffring, möjliggör fri navigering, uppdatering, filtrering, lokal indexering, och frikoppling från den externa databasen. Med ApplyUpdates skickas lokala uppdateringar tillbaka via dbExpress till den externa databasen.

Man kan t ex ansluta en bärbar dator till nätet, koppla upp sig mot en InterBase-databas via dbExpress, cacha och lagra data lokalt i en MyBase XML-fil, koppla loss från nätet bearbeta och uppdatera data i hemmet eller på resan. Tillbaka på kontoret ansluter man sig på nytt till nätet och synkroniserar automatiskt (ApplyUpdates) sina lokala uppdateringar med InterBase-databasen.

dbExpress + ClientDataSet är en suverän kombination som fungerar lika bra i lokala applikationer (enskiktsapplikationer), client/server-applikationer (tvåskikt) som flerskiktslösningar!

Snabbkoppling

Man kan förenkla kopplingen genom att ersätta SQLDataSet + DataSetProvider + ClientDataSet med en enda komponent,

som i sig kombinerar dessa tre komponenter.

Logga SQL-trafiken

Med TSQLMonitor kan man enkelt logga datatrafiken och spara alla SQL-kommandon som har utförts i en stränglista eller loggfil.

Med DataCLX, dbExpress och ClientDataSet/MyBase har Borland skapat en mycket enkel, öppen, stark och portabel databaslösning. Tekniken finns idag implementerad i Kylix, Delphi 6 och C++ Builder 6.

Rave Reports 4.5

Kylix 3 har också ett nytt rapportverktyg, Rave Reports 4.5 CE för Linux, från Nevrona. Med Rave designar du rapporter med databasinformation för utskrift till printer.

« Föregående sida | Första sidan | Nästa sida »


[Startmenyn][Nyheter][Programmenyn][Företag][Kurser]

www.databiten.se
© 1997-2013 DATABITEN AB
E-post