Visual FoxPro
| Visual FoxPro programmeringsspråk | |
|---|---|
| Forfatter | Microsoft |
| Opprinnelsesdato | 1984 |
| Siste versjon | 9.0 av 16. oktober 2007 |
| Paradigmer | objektorientert programmering og prosedyreprogrammering |
| Påvirket av | FoxPro |
| Referanseimplementering | |
| Operativsystem | Microsoft Windows |
| Nettsted | msdn.microsoft.com/vfoxpro |
Visual FoxPro (VFP) er et programmeringsspråk som integrerer prosessuell og objektorientert programmering. Den er utgitt av Microsoft for Windows .
Historie
Språket stammer fra FoxPro som ble utviklet av Fox Technologies tidlig i 1984 . Den siste versjonen av FoxPro (2.6) var kompatibel med Mac OS , DOS , Windows og Unix operativsystemer . I 1992 ble Fox Technologies kjøpt opp av Microsoft. Navnet på språket har siden endret seg til Visual FoxPro. Den første versjonen av Visual FoxPro (3.0) støttet Mac- og Windows-operativsystemer. Den nåværende versjonen støtter kun Windows-operativsystemer
Den siste versjonen publisert av Microsoft er Visual FoxPro 9.0 fra 2004.
I mars 2007 kunngjorde Microsoft sin beslutning om å avbryte utviklingen av Visual FoxPro, slik at fellesskapet kan fortsette videre utvikling.
Microsoft ga likevel standard teknisk støtte frem til 2010 og utvidet støtte til 2015.
Funksjoner
Kodeeksempler
FoxPro-språket inneholder kommandoer som ligner på andre programmeringsspråk som Basic.
Noen eksempler på grunnleggende kommandoer:
FOR i = 1 til 10
x = x + 6,5
NESTE && Du kan også bruke "ENDFOR" i stedet for "NESTE"
IF i = 25
i = i + 1
ELSE
i = i + 3
ENDIF
x = 1
DO Mens x <50
x = x + 1
ENDDO
x = 1
GJØR MENS .T.
x = x + 1
HVIS x <50
SLØKKE
ELLERS
AVSLUTT
ENDIF
ENDDO
nMåned = MÅNED ( DATO ())
GJØR SAK
- SAK nMåned <= 3
MELDINGSBOKS ( "Q1" )
CASE nMonth <= 6
MESSAGEBOX ( "Q2" )
CASE nMonth <= 9
MELDINGSBOKS ( "Q3" )
ELLERS
MELDINGSBOKS ( "Q4" )
ENDCASE
FOR HVER eller kontroll I DENNE FORM .Kontroller MESSAGEBOX ( eller kontroll .navn )
ENDFOR
f = Faktoriell (10)
FUNKSJON Faktoriell (n)
LOKAL i, r
r = 1
FOR i = n TIL 1 TRINN -1
r = r * i
NESTE && Også her kan du bruke "ENDFOR" i stedet for "NESTE"
RETURN r
ENDFUNC
Hello World eksempler:
* Skrive ut på gjeldende sted
? "Hei Verden"
* Skriv ut på et bestemt sted
@ 1.1 SEI "Hello World"
* Skriv ut i et annet vindu
WAIT WINDOW "Hello World"
* Skriv ut i standard dialogboks, kansellert på OK
MESSAGEBOX ( "Hello World" )
Objekter
* Skriv ut i et spesifikt vindu
loForm = CREATEOBJECT ( "HiForm" )
loForm .Show (1)
DEFINER KLASSE Hei Form AS Skjema
AutoCenter = .T .
Bildetekst = "Hei verden"
LEGG TIL OBJEKT lblHi som etikett ;
MED bildetekst = "Hei, verden!"
ENDDEFINE
loMine = CREATEOBJECT ( "MyClass" )
? loMine.cProp1 && Fungerer dette (det doble og-tegnet indikerer en kommentar til slutten av linjen)
? loMine.cProp2 && Feil: CPROP2-egenskapen er skjult eksternt.
? loMine.MyMethod1 () && Fungerer dette
? loMine.MyMethod2 () && Feil: MYMETHOD2-egenskapen er skjult eksternt.
DEFINER KLASSE MyClass AS Custom
cProp1 = "Min eiendom" && Dette er en offentlig eiendom
HIDDEN cProp2 && Dette er en privat eiendom (skjult)
dProp3 = {} && En annen offentlig eiendom
PROSEDYRE Init () && Klassekonstruktør
This .cProp2 = "Dette er en skjult egenskap."
PROSEDYRE dProp3_Access && The Getter identifiseres med taggen "_Access" i navnet
RETURN DATE ()
PROSEDYRE dProp3_As- tegn (vNewVal) && Setteren identifiseres med taggen "_Assign" i navnet
IF VARTYPE (vNewVal) = "D"
DENNE .dProp3 = vNewVal
ENDIF
PROSEDYRE MyMethod1 ()
* Offentlig metode som kaller en skjult metode som returnerer
* verdien av en skjult egenskap.
RETUR denne .MyMethod2 ()
SKJULT PROSEDYRE MyMethod2 () && Dette er en privat (skjult) metode
RETURN Denne .cProp2
ENDDEFINE
- VFP har et omfattende bibliotek med forhåndsdefinerte klasser og visuelle objekter som er tilgjengelige i IDE fra et egenskapsark (inkludert Methods ), [1] slik at det er nødvendig å skrive fullstendig kode som definerer en klasse og dens objekter kun i svært spesielle tilfeller og skriverammeverk for store systemer.
Databehandling
Språket tilbyr en stor gruppe kommandoer dedikert til å manipulere en database. Kommandoindeksen i VFP9 tilgjengelig fra "Hjelp"-menyen inneholder hundrevis og hundrevis av kommandoer og funksjoner. Eksemplene nedenfor viser hvordan du skriver kode for å lage og indeksere tabeller, men VFP har visuelle tabell- og databaseopprettingsskjermer som lager alt uten å måtte skrive kode.
* Lag en tabell
LAG TABELL randData (iData I)
* Fyll inn med tilfeldige data ved å bruke xBase- og SQL-kommandoer DML
FOR i = 1 TIL 50
TILLEGG BLANK
ERSTATT iData MED ( RAND () * 100)
INSERT INTO randData (iData) VERDIER ( RAND () * 100)
ENDFOR
* Lag en indeks på dataene
INDEKS PÅ iData TAG iData
LUKK DATA && Lukker tabellen
* Vis sorterte data ved å bruke xBase-stilkommandoer
BRUK randData
SET ORDER TO iData
LOCATE && I stedet for GÅ TOPPE. Tving bruk av indekser for å finne TOPPLISTE
NESTE 10 && Topp 10 GÅ NEDER
HOPPE -10
LISTE HVILE && Siste 10 LUKK DATA
* Velg sorterte data ved hjelp av SQL DML
SELECT -kommandoer * ;
FRA randData ;
BESTILLE ETTER iData SAMLING
ODBC-tilgang ved hjelp av SQL-passthrough
PRIVATE cAuthorID, cAuthorName && Private variabler som omdefinerer alle tidligere globale variabler private med samme navn
LOCAL nHnd, nResult && Lokale variabler er kun synlige i denne delen
* Tilkobling til en ODBC-kilde
nHnd = SQLCONNECT ( "ODBCDSN" , "bruker" , "pwd" )
* Uendelig sløyfe (utgangen tvinges inn i koden i tilfelle feil eller ved slutten av operasjonene)
GJØR MENS .T.
* Utfører en SQL-kommando
nResult = SQLEXEC (nHnd, "USE master" )
IF nResult <0
MESSAGEBOX ( "MASTER-databasen eksisterer ikke!" )
AVSLUTT && Avslutter
ENDIF -løkken
* Henter dataene fra den eksterne serveren og plasserer dem i den lokale markøren
nResult = SQLEXEC (nHnd, "SELECT * FROM authors" , "QAUTHORS" )
IF nResult <0
MESSAGEBOX ( "Kan ikke utføre ekstern SQL SELECT-kommando!" )
EXIT && Går ut av
ENDIF
* Oppdater en post i den eksterne tabellen ved å bruke en parametrisk spørring
cAuthorID = "1001"
cAuthorName = "Nytt navn"
nResult = SQLEXEC (nHnd, "UPDATE forfattere SET auth_name =? CAuthorName WHERE auth_id =? CAuthorID" )
IF nResult <0
MESSAGEBOX ( "Kan ikke utføre ekstern SQL UPDATE-kommando!" )
EXIT && Avslutter
ENDIF -løkken
* Hvis det når dette punktet, har vi gjort alle trinnene riktig
AVSLUTT && Avslutt sløyfen ubetinget
ENDDO
* Lukk SQLDISCONNECT-tilkoblingen
( nHnd)
Merknader
- ^ Visual FoxPro Development Productivity Tools , på msdn.microsoft.com , Microsoft. Hentet 20. desember 2014 .
Bibliografi
- Microsoft Visual Fox Pro 3.0 ( JPG ), i MCmicrocomputer , n. 149, Roma, Technimedia, mars 1995, s. 186-187, ISSN 1123-2714
Eksterne lenker
- Offisiell side , på msdn.microsoft.com .
- FoxPro- historien