2. Odată cu creşterea spectaculoasă a
dimensiunii BD în VFP, extinderea
numărului de utilizatori ai bazei, apare
drept imperios necesară trecerea la o
arhitectură client-server pe două sau
mai multe straturi. Microsoft recomandă
migrarea spre SQL Server. Serverul de
BD pe care poate fi "deplasată" baza de
date Fox poate fi oricare din cele
importante
(Oracle, Sysbase, Informix, DB2), câtă
vreme prin mecanismul ODBC
conexiunea nu mai este o problemă.
3. Drivere ODBC
Open Database Connectivity (ODBC) reprezintă o interfaţă standard care
permite unei aplicaţii să acceseze date din surse diferite: Oracle, MS SQL
Server, DB2, Informix, MS Access, dBase ş.a. Iniţiativa ODBC a aparţinut
companiei Microsoft, având acceptul şi concursul firmelor de soft care
produc servere BD.
Interfaţa ODBC defineşte:
• o bibliotecă de apeluri de funcţii care permit unei aplicaţii să se conecteze
la o sursă de date, să execute fraze SQL şi să primească rezultatele
acestora;
• o modalitate standard de conectare la o sursă (BD) de date externă;
• o modalitate standard de reprezentare a tipurilor de date.
• Mai trebuie menţionat că această interfaţă mai permite şi
recepţionarea, tot printr-un mecanism standardizat, a erorilor generate de
motoarele diferitelor servere de baze de date care gestionează BD sursă.
4. Crearea unei surse de date Oracle prin ODBC
• trebuie apelat administratorul surselor de date ODBC (din Control Panel
- ODBC Data Source). Din cadrul de pagină
(User/System/File)DataSourceName
• se alege butonul Add care lansează fereastra de dialog Add Data Source.
• Din lista de drivere ODBC se alege Oracle ODBC Driver
• completarea informaţiilor cerute în fereastra de dialog Oracle8 ODBC
Setup( Data Source Name, UserId şi Service Name)
• După selectarea butonului OK din ultima fereastră de dialog, numele sursei
de date se va regăsi printre celelalte surse de date disponibile pe respectiva
maşină.
5. Crearea unei conexiuni VisualFoxPro
(client Oracle)
• O conexiune (un obiect de tip connection) poate fi asimilată definiţiei unei surse de
date stocată într-o bază de date VFP.. Deschiderea unor astfel de sesiuni se
realizează fie implicit prin remote views (tabele derivate la distanţă), fie explicit
prin interfaţa de transfer SPT (SQL Pass-Through).
• Crearea şi configurarea unei asfel de conexiuni se poate realiza fie asistat, cu
ajutorul Connection Designer-ului,, fie "manual", cu ajutorul comenzilor CREATE
CONNECTION şi DBSETPROP (parametrii de configurare ai unui obiect de tip
connection se stochează în dicţionarul bazei de date)
• Legarea VFP cu Oracle, chiar în condiţiile în care tabelele bazei sunt, în
totalitate, gestionate în Oracle, presupune crearea unei BD. Denumită
VFPOracle, baza de date VFP va conţine conexiuni (connections) şi, eventual, tabele
derivate "la distanţă".
• Precizarea sursei de date se poate face fie prin indicarea explicită a informaţiilor
referitoare la: Data source, Userid, Password, Database (selectând opţiunea Data
source, Userid, Password), fie prin completarea unui şir de caractere (selectând
opţiunea Connection string) care se compune, în cazul driver-ului pentru Oracle, din
specificaţiile parametrilor: DSN pentru numele sursei de date ODBC, UID pentru
identificatorul utilizatorului în a cărui schemă se găsesc datele ce se doresc a fi
accesate, PWD parola utilizatorului, DBQ pentru precizarea bazei de date/serviciului
Oracle.
6. Procedura de conectare a unui client la un server Oracle se reduce în principal
la următorii paşi:
1. Un program sau aplicaţie utilizator iniţiază o cerere de conectare trimiţând numele de
utilizator, parola şi un nume de serviciu (service name), care poate fi asimilat unui alias
al bazei de date destinaţie. Acest service nameeste mapat direct pe un descriptor de
conectare (connect descriptor).
2. După ce semnificaţia numelui de serviciu este determinată, cererea de conectare este
transmisă, prin protocolul de reţea existent, serviciului Listener de pe maşina server a
cărui adresă a fost dedusă din descriptorul de conectare obţinut prin operaţia de mapare
descrisă mai sus.
3. Sesiunea de lucru dintre client şi serverul bazei de date nu este însă susţinută de către
Listener, rolul acestuia limitându-se doar la redirecţionarea cererilor către instanţele
bazelor de date cărora le sunt adresate. Astfel, când primeşte o cerere către o bază de
date, Listenerul crează un proces server căruia îi predă controlul sesiunii deschise între
server şi client.
4. Adresa procesului nou creat este trimisă procesului de pe maşina clientului.
Astfel, cele două procese (procesul utilizator - care a iniţiat cererea de conectare şi
procesul server) vor comunica direct pe durata sesiunii fără a implica serviciul Listener.