Sukurk greitai ir vykdyk greitai
Esame prie naujos kliento-serverio programavimo sistemų kartos. Ji skiriasi nuo "ketvirtosios kartos" (4GL) terpių su griozdiškais vykdomaisiais ("run-time") moduliais, kurias programos turi tempti paskui save tarsi būtų nešuliniai mulai.
Užteks! Naujų programavimo terpių, sukurtų "Blue Sky", "Microsoft" ir "Powersoft" pagrindas yra C++, - ir jos įsiveržia į sritį, kurioje iki šiol karaliavo tik "PowerBuilder" bei "Delphi". "Microsoft" pasiūlo "Visual C++ Enterprice Edition" 4.2, - paplitęs "Visual C++" papildytas priemonėmis darbui su duomenų bazėmis. "Blue Sky" įdomi simbiozė su VC++ EE vadinasi "Visual SQL" 4.01. Ir pagaliau "Powersoft" firmos "Optima++ Enterprice Edition" 1.5, kuri, atrodo, yra geriausios šios šeimos produktas, kurio šerdis yra "Watcom C++" kompiliatorius.
Kalbant apie kliento-serverio DB modelį buvo turima galvoje jo architektūra, kad programa yra padalinta į dvi dalis, kurių viena veikia serveryje, o kita - pas vartotoją. Uždavinio logika dažniausiai "gyvena" vartotojo kompiuteryje, o duomenų bazės procedūros ir trigeriai - DB serveryje.
VC++ jau turėjo vartotojo pusės DB valdymo priemones. Tad EE išplėtimas pagrindinį dėmesį skyrė serverio pusei, įtraukdamas priemones serveryje esančioms SQL procedūroms redaguoti ir testuoti. "DataView" kortelė leidžia peržiūrėti ir tvarkyti visas duomenų bazes, įtrauktas į projektą. Tiesa, daudelį esybių galima tik skaityti, galima peržiūrėti laukų savybes ir tipus, lentelių struktūras ir t.t., tačiau negalima jų pakeisti (skirtingai nuo "Visual InterDev" produkto, skirto WWW puslapių kūrimui, kuris leidžia keisti DB). Tačiau leidžiama į DB įdėti procedūras bei trigerius, po to juos vykdyti naudodami testuotoją ("debugger"). Gaila, kad SQL ir VC++ negalima naudoti "Windows" 95 terpėje, - būtina turėti NT 4.0.
"Optima++" atvirščiai, didesnį dėmesį skyrė grafiškai ir greitai sukuriamai kliento daliai, sujungdama veiklaus žinyno (vadinamo "reference cards") ir kodo generavimo priemones. Žinynas propaguoja "paimk ir nutempk" stilių susiejant objektus su jiems priskiriamais veiksmais. "Optima++" neslepia C++ kodo net ir tada, kai automatiškai jį generuoja. Ji sujungė savyje C++ kompiliatorių, "DataWindows Builder" duomenų bazės tvarkymo priemones ir "Sybase SQL Anywhere" DB serverį. Ji neslepia C++ kodo net ir tada, kai automatiškai jį generuoja, - dėl to nerekomenduotina pradedantiesiems C++ programuotojams.
O VSQL pateikia daugybę pagalbininkų ("wizards"), padedančių sugeneruoti standartinius DB uždavinius ir bandančių, kiek tik tai įmanoma, apsaugoti nuo C++ kodo, nors pats tėra ODBC galimybes išplečiantis sluoksnis virš MFC ("Microsoft Foundation Classes"). Ir prieš diegiant VSQL reikia turėti VC 4.x, ir, o kokia ironija, rekomenduojama būtent VC++ EE!
Tai tarsi trys alpinistai, kopiantys į tą patį kalną skirtingais jo šlaitais. O jų kainos svyruoja nuo tūkstančio (VC++ EE) iki poros tūkstančių ("Optima++") dolerių. VSQL patenka tiksliai į vidurį tarp jų.
Per pora metų atsirado keletas naujų terminų, susijusių su DB programavimu. Nors šiame straipsnelyje jų buvo vengta, tačiau nekenkia žinoti, ką jie reiškia, jei ruošiatės daugiau sužinoti apie šią programavimo sritį.
DAO (data access objects) yra į MFC 4.0 įeinanti programavimo sąsaja (API), kurios pagrindas yra OLE. Ji naudoja "jet", per kurią gali pasiekti ODBC duomenis bei indeksuotas (ISAM) duomenų bazes (pvz., "Paradox" ar "Btrieve").
"Jet" yra DB tvarkymo priemonė ("engine"), kurią "Microsoft" įtraukė į "Access". Todėl ir "jet" geriausiai supranta "Access" MDB formatą, nors gali naudotis ir kitais ODBC resursais.
ODBC (Open DataBase Connectivity) yra bendra žemesniojo lygio sąsaja su duomenų baze. Praktiškai kiekvienai DB egzistuoja atskiros ODBC tvarkyklės, - netgi paprastam tekstui ar "Excel" skaičiuoklei.
RDP (remote data objects) išvydo šviesą pasirodžius "Visual Basic" 4.0 ir yra plonas tarpsluoksnis virš ODBC. Jo paskirtis - užtikrinti darbą su duomenimis serverio pusėje (priešingai DAO, pagrindinį darbą atliekančio kliento kompiuteryje). RDO optimizuotas darbui su pačiais DB serveriais, pvz., "Microsoft SQL Server".