Visual FoxPro
Visual FoxPro limbaj de programare | |
---|---|
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
FĂ 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)
FĂ 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ă
- ^ Visual FoxPro Development Productivity Tools , la msdn.microsoft.com , Microsoft. Adus la 20 decembrie 2014 .
Bibliografie
- Microsoft Visual Fox Pro 3.0 ( JPG ), în MCmicrocomputer , n. 149, Roma, Technimedia, martie 1995, pp. 186-187, ISSN 1123-2714 .
linkuri externe
- Site-ul oficial , pe msdn.microsoft.com .
- Povestea FoxPro