home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 June / Chip_2001-06_cd1.bin / obsahy / Chip_txt / txt / 110-113.txt < prev    next >
Text File  |  2001-04-29  |  18KB  |  147 lines

  1. Visual FoxPro 7.0
  2. HON NA LIèKU
  3. ZaΦn∞me obligßtnφ rekapitulacφ: jak dlouho to je, kdy byl naposledy v Chipu uveden Φlßnek o FoxPro? Kdybychom soudili podle Φtenß°sk²ch ohlas∙, tak pradßvno - do redakce p°ichßzejφ obΦas p°ipomφnky, kterΘ sv∞dΦφ o neuspokojenΘm zßjmu. Ve skuteΦnosti jsou to vÜak pouhΘ dva roky, kdy jsme na strßnkßch Φφsla 5/99 hodnotili p°ipravenost FoxPro na rok 2000 a seznamovali se s vlastnostmi tehdejÜφ novinky - Visual FoxPro 6.0. 
  4.  
  5. Onehdy jsme takΘ komentovali postavenφ Visual FoxPro mezi podobn²mi softwarov²mi produkty a v∙bec jsme se vraceli k historickΘ cest∞, na nφ₧ u nßs i ve sv∞t∞ tento zajφmav² v²vojov² databßzov² nßstroj provßzely pomluvy i obdiv.
  6. LetoÜek p°inßÜφ novou verzi - Visual FoxPro 7.0 -, kterΘ se v Microsoftu °φkß "Sedona". Zatφm tedy v Microsoftu pokraΦuje m≤da dßvat intern∞ nov²m produkt∙m jmΘna podle americk²ch i neamerick²ch m∞st - i m∞steΦek. Sedona je toti₧ nevelikΘ malebnΘ turistickΘ centrum na ·patφ hor v Arizon∞. Kdy₧ u₧ jsme o p°ezdφvky zavadili, neodpustφm si poznßmku o levΘ ruce, kterß nevφ, co d∞lß pravß: minulß verze Visual FoxPro dostala nßzev "Tahoe" (co₧ je v∙bec zapadlΘ mφsto) a stejnΘ jmΘno Microsoft pou₧il pro sv∙j chystan² server s oficißlnφm nßzvem Microsoft SharePoint Portal Server.
  7.  
  8. Kam b∞₧φÜ, liÜko?
  9. FoxPro vφce ne₧ jinΘ softwarovΘ produkty (pokud se v∙bec doΦkaly tak dlouhΘho ₧ivota) p°itahuje pozornost kv∙li rozporuplnosti, kterß tento v²vojov² nßstroj n∞kolik let provßzφ: na jednΘ stran∞ je Φasto zmi≥ovßna jeho nejistß budoucnost, na stran∞ druhΘ jsou vyzdvihovßny jeho vynikajφcφ technickΘ vlastnosti. Je obtφ₧nΘ FoxPro jednoznaΦn∞ za°adit do dneÜnφch Ükatulek pro softwarovΘ prost°edky. Zßb∞r jeho vyu₧itφ je p°φliÜ Üirok², co₧ d∞lß problΘmy i Microsoftu, kdy₧ mß stanovit pro tento sv∙j produkt pozici jednoduch²m sloganem. A tak je b∞₧nΘ, ₧e odbornφci FoxPro jednou srovnßvajφ s databßzov²mi prost°edky, jako jsou SQL Server Φi Informix, a jindy s v²vojov²mi nßstroji, jako jsou Visual Basic Φi Delphi. FoxPro v sob∞ p°itom mß od ka₧dΘho n∞co a pro mnohΘ aplikace je tato Üφ°e pou₧itelnosti optimßlnφ. Toho vyu₧φvajφ tisφce programßtor∙ u nßs a celosv∞tov∞ asi 500 000 v²vojß°∙. Pokud tato Φφsla n∞komu p°ipadajφ nev²raznß (nap°. ve srovnßnφ s uvßd∞n²mi poΦty u₧ivatel∙ Visual Basicu, kter²ch je sv∞t∞ n∞kolik milion∙), p°ipome≥me jeden d∙le₧it² rozdφl: v∞tÜinu v²vojß°∙, kte°φ programujφ ve FoxPro, je mo₧nΘ pova₧ovat za profesionßly, proto₧e se programovßnφm ₧ivφ. Nic podobnΘho se ovÜem urΦit∞ nedß °φci o on∞ch milionech "programßtor∙", kte°φ programujφ ve Visual Basicu.
  10. Nedßvn²m p°φsp∞vkem k tomu, aby rozporuplnost provßzejφcφ FoxPro neztratila dech, se stalo oznßmenφ Microsoftu o vizφch pro p°φÜtφ generace softwarov²ch aplikacφ. Microsoft v Φervnu 2000 ohlßsil nßstup novΘ platformy oznaΦovanΘ Microsoft .NET Platform. Pro budovßnφ softwarovΘ infrastruktury informaΦnφch systΘm∙ vznikß °ada server∙, kter²m se °φkß .NET servery (sem pat°φ nap°. BizTalk Server 2000, ale i novΘ verze ji₧ zab∞han²ch server∙, jako jsou Exchange Φi SQL Server). Zßrove≥ Microsoft naznaΦil, v jakΘm prost°edφ se majφ novΘ aplikace vytvß°et: jde o takzvan² .NET Framework. A v²vojov²m nßstrojem pro vytvß°enφ aplikacφ novΘ generace se stane nov∞ koncipovanΘ Visual Studio.NET. Prßv∞ zprßva o v²vojovΘm nßstroji vÜak byla pon∞kud v rozporu s oΦekßvßnφmi v²vojß°∙. Ti do tΘ doby poΦφtali s tφm, ₧e nejbli₧Üφ verze Visual Studia s Φφslem 7.0 se doΦkajφ v souladu s d°φv∞jÜφmi zprßvami v zßv∞ru roku 2000 (jako souΦßst Visual Studia 7.0 byla ohlaÜovßna takΘ novß verze Visual FoxPro - 7.0). èlo tedy o to odhalit, zda p∙jde jen o p°ejmenovßnφ Visual Studia 7.0 na Visual Studio.NET, nebo o n∞co vφce. Prvnφ d∙raznΘ objasn∞nφ situace nastalo na podzim 2000. Microsoft nejspφÜ dosp∞l k p°esv∞dΦenφ, ₧e sousto .NET je p°φliÜ velkΘ a ₧e Visual Studio.NET znamenß zm∞ny od samΘho zßkladu, proto₧e posunul termφn uvedenφ na trh: Visual Studio.NET nebude na sv∞t∞ d°φve ne₧ na podzim 2001.
  11. Jak² vliv majφ tyto skuteΦnosti na Visual FoxPro? JeÜt∞ v zß°φ 2000 Microsoft oznamoval, ₧e Visual FoxPro 7.0 bude souΦßstφ Visual Studia.NET, ale nedojde k plnΘ integraci s platformou .NET: Visual FoxPro nebude nap°φklad pou₧φvat runtime (CLR), kter² bude spoleΦn² pro C# (programovacφ jazyk novΘ generace) a Visual Basic.NET. Cel² rozruch kolem vztahu Visual FoxPro 7.0 - Visual Studio.NET vyvrcholil v ·noru 2001 oznßmenφm Microsoftu, ₧e Visual FoxPro 7.0 nebude dßle Φekat na dokonΦenφ Visual Studia.NET a zaΦne se dodßvat ji₧ na konci jara 2001. 
  12. Jeliko₧ oficißlnφ ohlßÜenφ Microsoftu se zatφm odehrßlo pouze na jeho webu, bylo by jist∞ pro vÜechny domßcφ foxa°e u₧iteΦnΘ vyu₧φt bezprost°edn∞jÜφ zdroj. Bude k tomu p°φle₧itost: na domßcφ ΦervnovΘ konferenci Visual FoxPro DevCon, Praha 2001 mß vystoupit Randy Brown (Program Manager Visual FoxPro Team, Microsoft, USA), od n∞ho₧ se oΦekßvajφ bli₧Üφ informace. Po zkuÜenostech se zp∙sobem, jak v minulosti informovala o Visual FoxPro evropskß zastoupenφ Microsoftu, by si foxa°i nem∞li nechat ujφt mo₧nost zφskat informace z prvnφ ruky. Vφce informacφ o tΘto konferenci najdete v tomto Φφsle v sekci "Aktuality: spektrum" nebo na adrese [2].
  13. Jedna v∞c je vÜak jistß: Visual FoxPro 7.0 je verze, kterou brzy zaΦneme pou₧φvat, a tak se podφvejme, co zajφmavΘho p°inßÜφ.
  14.  
  15. Co je novΘho v sedmiΦce?
  16. O tom, co novΘho Visual FoxPro 7.0 p°edvede, se mluvφ ji₧ dΘle ne₧ dva roky: nejprve jen v opatrn²ch nßznacφch o IntelliSense a editoru, potom o spoluprßci s COM+ a jin²ch zm∞nßch. Dnes je u₧ jasnΘ, ₧e Visual FoxPro 7.0 obsahuje navφc takΘ spousty na prvnφ pohled p°ehlΘdnuteln²ch drobnostφ, kterΘ by bylo Ükoda nevyu₧φt. 
  17. Hlavnφ oblasti, kterΘ byly v novΘ verzi Visual FoxPro vylepÜeny, jsou nßsledujφcφ:
  18. programßtorskΘ prost°edφ; 
  19. funkΦnost datovΘho slovnφku;
  20. mo₧nost automatickΘho testovßnφ aplikacφ;
  21. spoluprßce s COM+;
  22. existence ovladaΦe OLE DB pro data Visual FoxPro;
  23. obohacenφ funkcφ pro prßci s poli a °et∞zci.
  24.  
  25. Tento Φlßnek nenφ p°ehledem o vÜech inovacφch, ale je poΦßtkem serißlu v∞novanΘho Visual FoxPro 7.0, kter² bude pokraΦovat v budoucφch letoÜnφch vydßnφch Φasopisu Chip. V tomto Φφsle se zam∞°φme na n∞kolik dφlΦφch vylepÜenφ, kterß p°ipadla zajφmavß mn∞, autorovi. Celkov² struΦn² p°ehled o novinkßch by mohl stßle jeÜt∞ b²t k nalezenφ na adrese [1], a pokud mßte ji₧ novou verzi nainstalovanou, staΦφ vyvolat nßpov∞du What's New in Visual FoxPro 7.0.
  26.  
  27. Rushmore po 10 letech
  28. VelkΘ zm∞ny jsou ve Visual FoxPro 7.0 ukryty spφÜe pod povrchem a majφ strategick² rozm∞r (v domßcφch pom∞rech jsou motivacφ p°edevÜφm pro naÜe "hodn∞ budoucφ" aplikace). P°i bli₧Üφm zkoumßnφ mne samotnΘho p°ekvapilo postupnΘ objevovßnφ detail∙. To mne nakonec p°ivedlo k zßv∞ru, ₧e p°echod z d°φv∞jÜφch verzφ Visual FoxPro do 7.0 nepochybn∞ stojφ za to.
  29. DrobnΘ vylepÜenφ funkce SYS(3054) m∞ kup°φkladu vrßtilo ve vzpomφnkßch do roku 1991, kdy za firmu Fox Software jejφ °editel evropskΘho zastoupenφ Mark Daeche p°edvßd∞l p°i svΘm turnΘ po st°ednφ Evrop∞, co umφ tehdejÜφ ₧havß novinka - FoxPro 2.0. Pam∞tnφci si mo₧nß jeÜt∞ vybavφ tu kouzelnou ukßzku: adresß° firem s jednφm milionem °ßdk∙ a FoxPro mß vyhledat stovku °ßdk∙ vyhovujφcφch zadanΘ podmφnce. Doba odezvy: nem∞°itelnß, tedy zlomky sekundy. S ·₧asem padaly otßzky: "Co to mßte za poΦφtaΦ?" Odpov∞∩ zn∞la: "To je 'obyΦejnΘ' AT se 4 MB operaΦnφ pam∞ti." Aha, tedy ne tak ·pln∞ obyΦejnΘ, °φkali si naÜi foxovÜtφ posluchaΦi jeÜt∞ plni dojmu z olomouckΘho seminß°e, kde jim kolega Milan Kosina vysv∞tloval, jak vyu₧φt dalÜφch 112 KB pam∞ti v oblasti mezi 640 KB a 1 MB na svΘm XT. V p°edvedenΘ ukßzce nebyl ₧ßdn² trik, Ülo jen o dokonalΘ vyu₧itφ indexovΘ technologie skrytΘ do magickΘho pojmu rushmore. Prßv∞ tato zkuÜenost se pro mnohΘ z programßtor∙ stala etalonem pro vyhodnocovßnφ optimßlnosti operacφ p°i p°φstupu k dat∙m ve foxovsk²ch aplikacφch. Rushmore se toti₧ uplatnφ jen tehdy, kdy₧ se existujφcφ index vyu₧ije "naplno". Potφ₧ spoΦφvß v tom, ₧e neexistoval nßstroj, kter² by zp∙sob vyu₧φvßnφ indexu oznßmil. Mnozφ se tedy °φdili vzpomφnkou na zmφn∞nou ukßzku: "milion v∞t = v²b∞r musφ trvat skoro nic"; trvß-li to n∞kolik sekund, n∞co nenφ v po°ßdku a je t°eba ladit dßle.
  30. Teprve ve verzi Visual FoxPro 5.0 se objevuje novß funkce SYS(3054) (nejspφÜ bychom si jejφ v²znam lΘpe zapamatovali, kdyby mφsto nφ existoval p°φkaz SET OPTIMIZETALK ON/OFF). Äe o nφ jako foxa° slyÜφte poprvΘ? To je i mß zkuÜenost z v∞tÜiny kontakt∙ s domßcφmi programßtory. Co tedy SYS(3054) umφ? P∙sobφ jako p°epφnaΦ pro zobrazovßnφ hlßÜenφ o tom, jak se p°i v²b∞rov²ch operacφch p°φkazu SELECT-SQL uplat≥uje rushmore - tedy zda jsou optimßln∞ vyu₧ity indexy. Je-li zobrazovßnφ aktivovßno - SYS(3054, 1) - a po vyvolßnφ p°φkazu SELECT se jako souΦßst hlßÜenφ zobrazφ sl∙vko "full", znamenß to, ₧e vyu₧itφ index∙ je optimßlnφ. Pokud jste v dosud popsanΘm neobjevili nic novΘho, zlßkß vßs mo₧nß prßv∞ to, co je novΘ ve Visual FoxPro 7.0. Nynφ toti₧ SYS(3054) umφ zobrazit i p°φsluÜn² p°φkaz SELECT (co₧ je p°i lad∞nφ program∙, kterΘ se hem₧φ p°φkazy SELECT volan²mi za sebou, velmi u₧iteΦnß maliΦkost). Za°φdφ to hodnota "2" ve druhΘm parametru funkce SYS. Navφc lze v²stup p°esm∞rovat z obrazovky do prom∞nnΘ, tak₧e dostßvßme v∞tÜφ volnost v tom, jak s odhalen²mi v²sledky nalo₧it.
  31.  
  32. P°φklad:
  33.  
  34. SYS(3054, 2, 'mVypis')
  35. ? mVypis
  36.  
  37. Zobrazφ se nap°.:
  38.  
  39. SELECT * FROM BigOne WHERE F2 = "9X"
  40.  
  41. Using index tag Tag2 to rushmore optimize table bigone
  42. Rushmore optimization level for table bigone: full
  43.  
  44.  
  45. P°i testovßnφ tΘto novΘ vlastnosti funkce SYS(3054) jsem po letech °eÜil otßzku, jak velkß musφ b²t tabulka pro testovßnφ. Nejprve jsem si cht∞l jenom stßhnout existujφcφ tabulku s 500 000 °ßdky na domßcφ poΦφtaΦ. Tßhnout 50 nebo 70 MB po telefonu mi vÜak nep°ipadlo rozumnΘ, a tak jsem si napsal generßtor stejn∞, jako to d∞lß ka₧d² foxa°, proto₧e vφ, ₧e vΦetn∞ napln∞nφ tabulky to nezabere vφce ne₧ pßr minut (a jako to st∞₧φ ud∞lß ten, kdo pou₧φvß SQL Server, VB Φi PowerBuilder, proto₧e vφ, ₧e by tφm ztratil spoustu Φasu):
  46.  
  47. CREATE TABLE BigOne (F1 C(20), F2 C(5), F3 C(40), F4 N(10))
  48. m.NumOfCycles = 100000
  49. FOR ii = 1 TO m.NumOfCycles 
  50.     m.F1 = SYS(2015)
  51.     m.F2 = SUBS(m.F1,6)
  52.     m.F3 = SYS(3)+m.F1+m.F1
  53.     m.F4 = RAND()*10000000
  54.     INSERT INTO BigOne (F1, F2, F3, F4) VALUES (m.F1, m.F2, m.F3, m.F4)
  55. ENDFOR
  56.  
  57. On∞ch 100 000 pokusn²ch °ßdk∙ (hodnota prom∞nnΘ m.NumOfCycles) na mΘm podpr∙m∞rnΘm 166MHz/64MB RAM bohu₧el dßvalo nem∞°itelnΘ odezvy, a tak musel generßtor vytvo°it 1 000 000 °ßdk∙. Pak u₧ n∞jakΘ milisekundy bylo mo₧nΘ zm∞°it. Kdy jste naposledy slyÜeli, ₧e FoxPro nenφ prost°edek vhodn² pro prßci s velk²m objemem dat? A co to vlastn∞ je "velk² objem dat"? Kdy₧ pot°eboval testovacφ data k otestovßnφ v²konu FoxPro pod r∙zn²mi operaΦnφmi systΘmy pro sΘrii sv²ch Φlßnk∙ Malcolm Rubel (v USA uznßvan² autor text∙ a p°ednßÜek o FoxPro), nastavil toto m∞°φtko: do 500 000 °ßdk∙ jde o malou tabulku (Φφselnφk), do 1 000 000 jde o tabulku st°ednφ a 10 000 000 °ßdk∙ je mo₧nΘ pova₧ovat za tabulku velkou. Zßrove≥ dosp∞l k zßv∞ru, ₧e i s "velk²mi" tabulkami lze ve Visual FoxPro pracovat a odezvy jsou p°ijatelnΘ.
  58. Pro ·plnost: SYS(3054) funguje jen pro p°φkazy SELECT (nikoliv tedy nap°. LOCATE FOR apod.) a vstupnφm parametrem lze rozliÜit, zda chceme uplatnit zobrazovßnφ jen pro filtrovacφ podmφnku (WHERE) nebo i pro vazebnφ podmφnku (kterß se uplatnφ p°i vßzßnφ n∞kolika tabulek pomocφ WHERE nebo JOIN).
  59.  
  60. Prßce s poli pam∞¥ov²ch prom∞nn²ch
  61. Funkce pro operace s poli pam∞¥ov²ch prom∞nn²ch byly v₧dy silnou zbranφ FoxPro. ╚φm vφce si na n∞ programßto°i zvykli, tφm intenzivn∞jÜφ byla jejich p°ßnφ "KΘ₧ by n∞jakß funkce um∞la takΘ ...". Prßv∞ do tΘto kategorie pat°φ novinky, kterΘ mohou zredukovat dosavadnφ programy o desφtky kilobajt∙. Pokud Φasto pou₧φvßte dvojrozm∞rnß pole, nejspφÜ jste n∞kdy pot°ebovali zjistit, na kterΘm °ßdku pole je zadanß hodnota. V horÜφm p°φpad∞ se takovß pot°eba °eÜφ kopφrovßnφm p°φsluÜnΘ Φßsti k≤du odjinud, v lepÜφm si programßto°i napsali "rozÜφ°enou" funkci ASCAN. Funkce ASCAN ve verzi 7.0 koneΦn∞ prohledßvß i po sloupcφch a umφ vrßtit nejen po°adovΘ Φφslo prvku, ale rovnou takΘ Φφslo °ßdku.
  62.  
  63. P°φklad:
  64. Pole pam∞¥ov²ch prom∞nn²ch aPole mß tento obsah:
  65.  
  66. Dosud jsme byli zvyklφ hledat hodnotu "X" ve 2. sloupci (prvek [4,2]) pomocφ ASCAN asi takto:
  67.  
  68. ? ASCAN(aPole, 'X')        && vracφ hodnotu 6
  69.  
  70. Z vrßcenΘ hodnoty 6 (X na 2. °ßdku ve 3. sloupci) jsme pak Φφslo °ßdku a sloupce mohli zφskat funkcφ ASUBSCRIPT a zjistili jsme, ₧e o tento sloupec nemßme zßjem a ₧e prohledßvßnφ musφ pokraΦovat. Algoritmus pro prohledßvßnφ sloupc∙ je tedy slo₧it∞jÜφ. 
  71. Visual FoxPro 7.0 rozÜi°uje ASCAN o nov², pßt² parametr, v n∞m₧ lze zadat Φφslo prohledßvanΘho sloupce:
  72.  
  73. ? ASCAN(aPole, 'X', 1, -1, 2)        && vracφ sprßvn∞ hodnotu 11
  74.  
  75. Vrßcenß hodnota 11 nßm ale ne°ekne rovnou, na kterΘm °ßdku nalezenß hodnota X le₧φ. Novß funkce ASCAN to umφ prost°ednictvφm dalÜφho novΘho, ÜestΘho parametru:
  76.  
  77. ? ASCAN(aPole, 'X', 1, -1, 2, 8)        && vracφ hodnotu 4 (4. °ßdek)
  78.  
  79. Zßhadnß "osmiΦka" v parametru souvisφ s tφm, ₧e tento parametr se zadßvß prost°ednictvφm p°φznakov²ch bit∙ a parametrem lze ovliv≥ovat i dalÜφ chovßnφ funkce ASCAN, nap°. zda se majφ rozliÜovat p°i prohledßvßnφ text∙ malß a velkß pφsmena. V²znam jednotliv²ch bit∙ ukazuje nßsledujφcφ tabulka:
  80.  
  81. Kdybychom p°i volßnφ ASCAN v p°edchozφm p°φkladu zadali malΘ 'x' namφsto velkΘho 'X', ASCAN je nenajde:
  82.  
  83. ? ASCAN(aPole, 'x', 1, -1, 2, 8)        && vracφ hodnotu 0 (nenalezeno)
  84.  
  85. Chceme-li tedy vracet Φφslo °ßdku a p°i vyhledßvßnφ nerozliÜovat malß a velkß pφsmena, pou₧ijeme:
  86.  
  87. ? ASCAN(aPole, 'x', 1, -1, 2, 9)        && vracφ hodnotu 4 (4. °ßdek)
  88.  
  89. Tentokrßt "devφtka" znamenß, ₧e bit 0 mß b²t zapnut (hodnota 1) a takΘ bit 3 mß b²t zapnut (hodnota 8), co₧ v souΦtu dßvß 9.
  90.  
  91. Funkce m∙₧e vrßtit nejen hodnotu, ale i pole
  92. Jeden z evergreen∙ mezi po₧adavky na rozÜφ°enφ funkΦnosti Visual FoxPro znφ takto: "Pot°ebuji, aby funkce (metoda) vracela n∞kolik hodnot, a ne jen jednu hodnotu. NejlepÜφ by bylo, kdyby um∞la vrßtit celΘ pole." Volßnφ bylo vyslyÜeno. Nenφ to ovÜem zcela hladkΘ.
  93. Dejme tomu, ₧e existuje funkce, kterß pracuje s trojprvkov²m polem, jeho₧ obsah mß vracet p°φkaz RETURN.
  94.  
  95. FUNCTION RetArray
  96. LOCAL ARRAY aPole [3]
  97. aPole [1] = "Jedna"
  98. aPole [2] = "Dv∞"
  99. aPole [3] = "T°i"
  100. RETURN @aPole
  101.  
  102. Nßsledujφcφ pokus nßm neprojde:
  103. x = RetArray()
  104.  
  105. V souladu s trendem, ₧e Visual FoxPro je modernφ objektov² v²vojov² nßstroj, se p°edpoklßdß, ₧e vφce pracujeme s objekty a mΘn∞ v tradiΦnφm procedurßlnφm k≤du, jak²m je uvedenß ukßzka. Aby funkce mohla vracet pole, musφ platit, ₧e pole (aPole) existuje i v dob∞, kdy funkce (RetArray) je ji₧ ukonΦena. Tohle se dß splnit, kdy₧ aPole bude vlastnostφ (Property) objektu a funkce RetArray bude metodou tohoto objektu. Vracet pole je tedy mo₧nΘ, pou₧ijeme-li postup z tΘto ukßzky:
  106.  
  107. Zalo₧φme program s nßzvem RetA.PRG:
  108.  
  109. * RetA.prg
  110. DEFINE CLASS Test AS Custom
  111. DIMENSION aPole[3]
  112. PROCEDURE Init
  113.     THIS.aPole[1] = "Jedna"
  114.     THIS.aPole[2] = "Dv∞"
  115.     THIS.aPole[3] = "T°i"
  116. ENDPROC
  117. FUNCTION RetArray
  118.     RETURN @THIS.aPole
  119. ENDFUNC
  120. ENDDEFINE
  121.  
  122. Z nov∞ vytvo°enΘho objektu oTest m∙₧eme pole nechat vrßtit do novΘho pole ax (pokud neexistuje, zalo₧φ se; pokud existuje, jeho poΦet prvk∙ se p°izp∙sobφ vracenΘmu poli):
  123.  
  124. oTest = NEWOBJECT("Test","RetA.prg")
  125. ax = oTest.RetArray()
  126.  
  127. MaliΦkost pro pion²ry v lesφch klient/server
  128. Visual FoxPro u₧ n∞kolik let dob°e slou₧φ v roli klienta v aplikacφch, kde data jsou na nejr∙zn∞jÜφch databßzov²ch serverech, jak²mi jsou nap°. Microsoft SQL Server, Oracle Φi Informix. Nenφ to jen sv∞tovß zßle₧itost - existuje °ada domßcφch °eÜenφ, kterß jsou zalo₧ena na komunikaci Visual FoxPro s databßzov²mi servery. Jednφm z d∙vod∙, proΦ data ulo₧it ze soubor∙ DBF n∞kam jinam, b²vß po₧adavek na zabezpeΦenφ dat p°ed neoprßvn∞n²mi p°φstupy. Visual FoxPro umo₧≥uje dv∞ metody, jak se k dat∙m p°ipojit: jedna je zalo₧ena na p°φmΘm odesφlßnφ p°φkaz∙ SQL z FoxPro databßzovΘmu serveru (SQL Pass-Through, neboli SPT), druhß pou₧φvß tzv. vzdßlenΘ pohledy, s nimi₧ se ve Visual FoxPro pracuje podobn∞ jako s tabulkami DBF (pohled se nap°. otev°e stejn∞ jako DBF p°φkazem USE <nßzev pohledu>).
  129. Ob∞ metody vy₧adujφ, aby byl p°φstup k dat∙m podmφn∞n ov∞°enφm p°ihlaÜovacφch ·daj∙ u₧ivatele. Zde se uvedenΘ metody liÜφ v tom, jak jsou bezpeΦnΘ: pro SPT staΦφ p°ihlaÜovacφ ·daje dr₧et pouze v operaΦnφ pam∞ti (po p°evzetφ ·daj∙ od u₧ivatele z p°ihlaÜovacφho dialogu nenφ pot°eba je uklßdat na disk). U vzdßlen²ch pohled∙ je to slo₧it∞jÜφ: bu∩ musφ b²t p°ihlaÜovacφ ·daje alespo≥ na okam₧ik ulo₧eny v souboru (co₧ samoz°ejm∞ znamenß v²raznΘ snφ₧enφ bezpeΦnosti), nebo si p°ihlaÜovacφ ·daje vy₧ßdß ka₧dΘ otevφrßnφ pohledu p°φkazem USE. Visual FoxPro 7.0 obsahuje novΘ rozÜφ°enφ p°φkazu USE - frßzi CONNSTRING, ve kterΘ je mo₧nΘ p°ihlaÜovacφ ·daje zadat p°φmo (nemusejφ se tedy p°ebφrat z jinΘho mφsta, kde jsou ulo₧eny). Pro otevφrßnφ vzdßlen²ch pohled∙ lze pou₧φt nynφ tento zp∙sob se zadßnφm p°ihlaÜovacφch ·daj∙:
  130.  
  131. USE <nßzev pohledu> CONNSTRING 
  132. 'Driver=SQL Server;Server=(local);DataBase=Test;UID=Pokusn²Krßlφk;PWD=KrßlφkovoHeslo'
  133.  
  134. Parametr pro frßzi CONNSTRING se zadßvß stejn∞ jako u p°φkazu SQLSTRINGCONN, kter² se objevil ji₧ ve Visual FoxPro 3.0.
  135.  
  136. Zßv∞r
  137. Visual FoxPro 7.0 rozhodn∞ mß co nabφdnout. Koneckonc∙ m∞l v²vojov² t²m v Redmondu na p°φpravu dostatek Φasu - tΘm∞° dva roky. Verzi 6.0 pou₧φvßme toti₧ u₧ od poloviny roku 1999. V tΘto souvislosti je pochopitelnΘ, ₧e Φekßnφ na Visual Studio.NET s tΘm∞° hotovou verzφ Visual FoxPro 7.0 by bylo sv²m zp∙sobem zbyteΦnΘ. Navφc v dob∞, kdy se objevily prvnφ nßznaky toho, co mß obsahovat verze p°φÜtφ. Äe by 8.0? Mo₧nß i o tom se dozvφme vφce v Φervnu na konferenci Visual FoxPro DevCon, Praha 2001.
  138.  
  139. Igor Vφt
  140.  
  141.  
  142. Pou₧itΘ odkazy:
  143. [1]    http://msdn.microsoft.com/vfoxpro/prodinfo/vfp7.asp
  144. [2]    http://www.daquas.cz/fox/devcon2001
  145.  
  146.  
  147.