Lucrul cu baze de date din LabVIEW

download Lucrul cu baze de date din LabVIEW

of 2

description

Lucrul cu baze de date din LabVIEW

Transcript of Lucrul cu baze de date din LabVIEW

  • Lucrul cu baze de date din LabVIEW conf.dr.ing. Tom SAVU

    National Instruments Academic Manager Romnia

    Introducere Ne propunem ca, ncepnd cu acest numr al revistei, s iniiem o serie de articole care s permit celor deja familiarizai cu mediul de programare grafic LabVIEW (http://www.ctanm.pub.ro/academic/LabVIEW/Tutorial.htm) s abordeze problematica realizrii unor aplicaii de mai mare complexitate. Se presupune c cititorii sunt deja familiarizai cu bazele de date, cu modul de organizare al acestora n tabele, nregistrri i cmpuri i cu principalele operaii ce pot fi executate asupra unei baze de date sau cu instruciunile SQL pentru executare. Se presupune de asemenea c sistemul de calcul are deja instalate, nregistrate i configurate diverse drivere ODBC (Open Database Connectivity) pentru baze de date. LV Database Connectivity Toolset Pentru accesarea bazelor de date din LabVIEW este necesar pachetul suplimentar LabVIEW Database Connectivity Toolset (LV DBC). Pachetul conine att funcii de nivel nalt pentru cele mai uzuale operaii specifice, ct i funcii avansate pentru operaii cu grad ridicat de particularizare. Printre principalele avantaje ale acestui pachet se numr faptul c acesta este compatibil cu orice driver de baze de date compatibil ODBC i OLE DB i cu orice provider care respect standardul ADO (ActiveX Data Objects) elaborat de Microsoft. n plus, o aplicaie realizat n LabVIEW poate fi "portat" pe un alt tip de computer, cu un alt sistem de operare, sau pe o alt baz de date prin simpla modificare a unei constante de tip "text", avnd i avantajul extrem de puternic de a permite utilizarea instruciunilor SQL chiar i n cazul sistemelor de baze de date care nu accept acest limbaj. Pachetul LV DBC se instaleaz ulterior mediului de programare LabVIEW, funciile sale fiind astfel integrate n paleta de funcii din diagrama aplicaiei (figura 1).

    Fig. 1: Funcii LV Database Connectivity Toolset

    Conexiunea cu baza de date Accesarea bazelor de date din LabVIEW nu se realizeaz direct, specificnd fiierul ce conine baza de date, ci prin intermediul unei legturi ctre date (data link) ale crei proprieti sunt stocate ntr-un fiier dedicat acestui scop.

    Exist mai multe standarde referitoare la fiierul ce conine proprietile legturii ctre date, cele mai des ntlnite fiind DSN (Data Source Name), utilizat de ctre standardul ODBC, i UDL (Universal Data Link), utilizat n standardul ADO. Un fiier UDL poate fi creat fie din programul Windiws Explorer (click dreapta i se selecteaz opiunea New / Microsoft Data Link, figura 2), fie direct din LabVIEW, selectnd opiunea Create Date Link... din meniul Tools.

    Fig. 2: Crearea unui fiier UDL n ambele cazuri, utilizatorului i se cere s specifice un tip de driver ctre baza de date (de exemplu, Microsoft Jet 4.0 pentru fiiere mdb create n Microsoft Access, figura 3) precum i calea i numele fiierului ce conine baza de date (figura 4).

    Fig. 3: Specificarea tipului de driver

    Fig. 4: Specificarea cii i numelui fiierului

  • Extragerea informaiilor Spre exemplificare, se consider un tabel dintr-o baz de date (figura 5) ce conine informaii referitoare la structura de dezagregare a unui produs (subansamblurile din care produsul este constituit i reperele din componena fiecrui subansamblu). Toate valorile din tabel (numit Produse) sunt stocate n form numeric, excepie fcnd valorile din cmpul Denumire, ce sunt stocate sub form de texte.

    Fig. 5: Tabel cu informaii Panoul aplicaiei (interfaa acesteia cu utilizatorul) conine un element de control pentru specificarea cii i numelui fiierului UDL ce stabilete conexiunea ntre aplicaia LabVIEW i baza de date, un element de control pentru specificarea de ctre utilizator a codului produsului i un element indicator (Array de texte) utilizat de ctre aplicaie pentru afiarea numelor subansamblurilor (figura 6). Diagrama aplicaiei este prezentat n figura 7.

    Fig. 6: Panoul aplicaiei LabVIEW

    Fig. 7: Diagrama aplicaiei LabVIEW Anterior accesrii datelor dintr-un tabel sau executrii unei instruciuni SQL, aplicaia LabVIEW trebuie s stabileasc o conexiune cu baza de date, pentru aceasta fiind utilizat funcia DB Tools Open Connection (figura 8) ce suport mai multe moduri de apelare, n funcie de sistemul de management al bazei de date (DBMS) ce urmeaz a fi accesate. Dup stabilirea conexiunii cu baza de date prin intermediul funciei DB Tools Open Connection, aplicaia utilizeaz funcia DB Tools Select Data (figura 9) pentru a extrage informaiile dorite din tabelul Produse.

    Fig. 8: Funcia DB Tools Open Connection

    Fig. 9: Funcia DB Tools Select Data Funcia DB Tools Select Data utilizeaz urmtoarele date de intrare: o referin la conexiunea stabilit cu baza de date,

    referin preluat n acest exemplu de la ieirea corespunztoare a funciei DB Tools Open Connection

    numele tabelului din care va fi extras informaia (n acest caz Produse)

    numele cmpurilor din care va fi extras informaia, grupate ntr-un Array de texte (n acest exemplu Array-ul conine un singur text: Denumire)

    un text coninnd o clauz SQL pentru specificarea condiiilor necesare unei nregistrri pentru ca valoarea aflat n cmpul cutat s fie extras

    n tabelul luat ca exemplu, nregistrrile corespunztoare subansamblurilor se caracterizeaz prin aceea c au n cmpul Cod_subansamblu o valoare numeric diferit de valoarea vid NULL iar cmpul Cod_reper conine o valoare vid (NULL). Astfel, clauza SQL corespunztoare este WHERE (Cod_produs = 31452) AND (Cod_subansamblu

    NULL) AND (Cod_reper IS NULL); Poriunile din clauza SQL care nu se modific sunt reprezentate n diagrama aplicaiei prin constante de tip String, iar codul produsului, specificat de ctre utilizator, este preluat de la terminalul elementului de control corespunztor. Clauza SQL este obinut prin concatenarea diverselor poriuni constante i variabile, cu ajutorul funciei Concatenate Strings. La ieirile sale, funcia DB Tools Select Data furnizeaz att o referin la conexiunea stabilit cu baza de date ct i o matrice ce conine informaiile extrase din baza de date. n exemplul prezentat, referina este utilizat de ctre funcia DB Tools Close Connection pentru nchiderea (ntreruperea) conexiunii cu baza de date, dar n aplicaiile mai complexe ea poate fi preluat de ctre alte funcii de interogare sau modificare. Informaiile extrase din baza de date sunt stocate n matricea corespunztoare n formatul Variant, un format ce permite manipularea datelor indiferent de tipul de valori (numerice, booleene, alfanumerice etc.) pe care datele le reprezint. Fiecare linie a matricei corespunde unei nregistrri din baza de date, iar fiecare coloan corespunde unui cmp. n diagrama aplicaiei sunt utilizate dou bucle For imbricate ce transform fiecare valoare din matrice, cu ajutorul funciei Variant To Data, din formatul Variant n formatul String (alfanumeric). Deoarece informaiile extrase se refer la un singur cmp, din matrice, prin intermediul funciei Index Array, este extras prima coloan i este transmis terminalului corespunztor elementului indicator Subansambluri din panoul aplicaiei.