Visual FoxPro

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Visual FoxPro
limbaj de programare
Foxpro-icon.png
Autor Microsoft
Data de origine 1984
Ultima versiune 9.0 din 16 octombrie 2007
Paradigme programare orientată obiect și programare procedurală
Influențată de FoxPro
Implementare referință
Sistem de operare Microsoft Windows
Site-ul web msdn.microsoft.com/vfoxpro

Visual FoxPro (VFP) este un limbaj de programare care integrează programarea procedurală și orientată obiect. Este publicat de Microsoft pentru Windows .

Istorie

Limbajul derivă din FoxPro, care a fost dezvoltat de Fox Technologies la începutul anului 1984 . Cea mai recentă versiune a FoxPro (2.6) era compatibilă cu sistemele de operare Mac OS , DOS , Windows și Unix . În 1992, Fox Technologies a fost achiziționată de Microsoft. De atunci, numele limbii s-a schimbat în Visual FoxPro. Prima versiune a Visual FoxPro (3.0) a acceptat sistemele de operare Mac și Windows. Versiunea actuală acceptă doar sistemele de operare Windows

Cea mai recentă versiune publicată de Microsoft este Visual FoxPro 9.0 din 2004.

În martie 2007, Microsoft și-a anunțat decizia de a întrerupe dezvoltarea Visual FoxPro, permițând comunității să continue dezvoltarea în continuare.

Cu toate acestea, Microsoft a oferit suport tehnic standard până în 2010 și a extins asistența până în 2015.

Caracteristici

Exemple de cod

Limbajul FoxPro conține comenzi similare cu alte limbaje de programare, cum ar fi Basic.

Câteva exemple de comenzi de bază:

 PENTRU i = 1 până la 10
    x = x + 6,5
NEXT && În loc de „NEXT” puteți utiliza și „ENDFOR”

DACĂ i = 25
    i = i + 1
ALTE
    i = i + 3
ENDIF

x = 1
FACEȚI CÂND x <50
    x = x + 1
ENDDO

x = 1
 CÂND .T.
    x = x + 1
    DACĂ x <50
        BUCLĂ
    ALTE
        IEȘIRE
    ENDIF
ENDDO

nLună = LUNĂ ( DATE ())
DO CASE
    CAZ n lună <= 3
        MESSAGEBOX ( „Q1” )

    CAZ n lună <= 6
        MESSAGEBOX ( „Q2” )

    CAZ n lună <= 9
        MESSAGEBOX ( „Q3” )

    IN CAZ CONTRAR
        MESSAGEBOX ( „Q4” )
FINALIZARE

PENTRU FIECARE sau Control ÎN ACEASTĂ FORMĂ .Controle
    MESSAGEBOX (sau Control .Name )
ENDFOR

f = Factorial (10)

FUNCTION Factorial (n)
LOCAL i, r

    r = 1
    PENTRU i = n LA 1 PAS -1
        r = r * i
    NEXT && Și aici puteți folosi „ENDFOR” în loc de „NEXT”
    RETURNARE r
ENDFUNC

Exemple de Hello World:

 * Imprimați în locația curentă
? "Salut Lume"

 * Imprimați într-o anumită locație
 @ 1,1 SPUNE „Hello World”

 * Imprimați într-o altă fereastră
 WAIT WINDOW "Hello World"

 * Imprimați într-o casetă de dialog standard, anulată la OK
 MESSAGEBOX ( „Hello World” )

Obiecte

 * Imprimați într-o anumită fereastră
loForm = CreateObject ( "HiForm")
loForm .Show (1)

DEFINE CLASS Hi Form AS Form
    AutoCenter = .T.
    Caption = "Hello, World"

    ADĂUGAȚI OBIECTUL lblHi ca etichetă ;
        CU legenda = "Bună ziua, lume!"
ENDDEFINE
loMine = CreateObject ( "Clasa_Mea")
? loMine.cProp1 && Acest lucru funcționează ( semnul dublu indică un comentariu până la sfârșitul liniei)
? loMine.cProp2 && Error: Proprietatea CPROP2 este ascunsă extern.

? loMine.MyMethod1 () && Acest lucru funcționează
? loMine.MyMethod2 () && Error: Proprietatea MYMETHOD2 este ascunsă extern.

DEFINE CLASS MyClass AS Custom
    cProp1 = "Proprietatea mea" && Aceasta este o proprietate publică
    HIDDEN cProp2 && Aceasta este o proprietate privată (ascunsă)
    dProp3 = {} && O altă proprietate publică

    PROCEDURA Init () && Constructorul clasei
        This .cProp2 = "Aceasta este o proprietate ascunsă."

    PROCEDURI dProp3_Access && Getterul este identificat prin eticheta „_Access” din nume
        DATA RETURĂRII ()

    PROCEDURĂ semnul dProp3_As (vNewVal) && Setterul este identificat prin eticheta „_Assign” în nume
        IF VARTYPE (vNewVal) = "D"
            ACEST .dProp3 = vNewVal
        ENDIF

    PROCEDURI MyMethod1 ()
    * Metodă publică care apelează o metodă ascunsă care revine
    * valoarea unei proprietăți ascunse.
        RETURN Acest .MyMethod2 ()

    PROCEDURA ASCUNSĂ MyMethod2 () && Aceasta este o metodă privată (ascunsă)
        RETURN Acest .cProp2
ENDDEFINE
  • VFP are o bibliotecă extinsă de clase predefinite și obiecte vizuale care sunt accesibile în IDE dintr-o foaie de proprietăți (inclusiv Metode ), [1] astfel încât este necesar să scrieți cod complet care definește o clasă și obiectele sale numai în cazuri foarte particulare și cadre de scriere pentru sisteme mari.

Management de date

Limba oferă un grup mare de comenzi dedicate manipulării unei baze de date. Indexul de comandă din VFP9 accesibil din meniul „Ajutor” conține sute și sute de comenzi și funcții. Exemplele de mai jos arată cum se scrie cod pentru crearea și indexarea tabelelor, totuși VFP are tabele vizuale și ecrane de creare a bazelor de date care creează totul fără a fi nevoie să scrieți cod.

 * Creați un tabel
 CREAȚI TABEL randData (iData I)

 * Populați cu date aleatorii folosind comenzile xBase și SQL DML
 PENTRU i = 1 Până la 50
     ANEXA BLANK
     ÎNLOCUIRE idata CU (RAND () * 100)

     INSERT INTO randData (iData) VALORI ( RAND () * 100)
 ENDFOR

 * Creați un index pe date
 INDICE DESPRE iData TAG iData
 CLOSE DATA && Închide tabelul

 * Afișați datele sortate folosind comenzile stilului xBase
 UTILIZAREA randData
 SETAȚI COMANDA LA iData
 LOCAȚI && În loc de GO TOP. Forțați utilizarea indexurilor pentru a găsi TOP
 LISTA NEXT 10 && Top 10
 TRECE DE FOND
 SKIP -10
 LISTA REST && Ultimele 10
 DATE ÎNCHIS

 * Selectați date sortate folosind comenzile SQL DML
 SELECT * ;
   DIN randData ;
   COMANDĂ DE iData DESCENDENT

Acces ODBC folosind passthrough SQL

 PRIVATE cAuthorID, cAuthorName && Variabile private care redefinesc orice variabilă globală anterioară pe cele private cu același nume
 LOCAL nHnd, nResult && Variabile locale vizibile numai în această secțiune

 * Conexiune la o sursă ODBC
 nHnd = SQLCONNECT ( "ODBCDSN" , "utilizator" , "pwd" )

 * Ciclu infinit (ieșirea este forțată în cod în caz de eroare sau la sfârșitul operațiunilor)
  CÂND .T.
     * Execută o comandă SQL
     nResult = SQLEXEC (nHnd, "USE master" )
     IF nResult <0
         MESSAGEBOX ( „Baza de date MASTER nu există!” )
         EXIT && Ieși din ciclu
     ENDIF

     * Recuperați date de pe serverul de la distanță și introduceți-le în cursorul local
     nResult = SQLEXEC (nHnd, "SELECT * FROM autori" , "QAUTHORS" )
     IF nResult <0
         MESSAGEBOX ( „Nu se poate executa comanda SQL SELECT la distanță!” )
         EXIT && Ieși din ciclu
     ENDIF

     * Actualizați o înregistrare în tabelul la distanță folosind o interogare parametrică
     cAuthorID = "1001"
     cAuthorName = "Nume nou"
     nResult = SQLEXEC (nHnd, "ACTUALIZARE autori SET nume_autent =? cAuthorName WHERE auth_id =? cAuthorID" )
     IF nResult <0
         MESSAGEBOX ( „Nu se poate executa comanda SQL UPDATE la distanță!” )
         EXIT && Ieși din ciclu
     ENDIF

     * Dacă ajungeți la acest punct, am făcut toți pașii corect
     EXIT && Ieșiți din ciclu necondiționat
 ENDDO

 * Închide conexiunea
 SQLDISCONNECT (nHnd)

Notă

  1. ^ Visual FoxPro Development Productivity Tools , la msdn.microsoft.com , Microsoft. Adus la 20 decembrie 2014 .

Bibliografie

linkuri externe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT