Visual FoxPro

Visual FoxPro
programmeringsspråk
ForfatterMicrosoft
Opprinnelsesdato1984
Siste versjon9.0 av 16. oktober 2007
Paradigmerobjektorientert programmering og prosedyreprogrammering
Påvirket avFoxPro
Referanseimplementering
OperativsystemMicrosoft Windows
Nettstedmsdn.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 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

  1. ^ Visual FoxPro Development Productivity Tools , på msdn.microsoft.com , Microsoft. Hentet 20. desember 2014 .

Bibliografi

Eksterne lenker