Advantage Database Server od Sybase je v současnosti jediný komerční relační databázový produkt, který programátorům umožňuje pracovat s nativními daty Visual FoxPro (tabulkami DBF a indexy CDX), může tedy hrát klíčovou roli při modernizaci aplikací VFP. Dá se nainstalovat na různé verze Windows, Linux a Netware. Scénáře v tomto článku popisují možné využití ADS při migraci na jiné technologie, např. .NET, bez nutnosti měnit zdroj dat (upsize).

Hana HorováHana Horová
SoftwareSoftware
27.10.2011 12:42:0027.10.2011 12:42:00

Hana Horová

správce databáze

ALSO Czech Republic s.r.o.
+420 222 512 201
+420 603 442 434
daquas@daquas.cz
Anny Letenské 7, Praha 2

Advantage Database Server a Visual FoxPro

Advantage Database Server od Sybase je v současnosti jediný komerční relační databázový produkt, který programátorům umožňuje pracovat s nativními daty Visual FoxPro (tabulkami DBF a indexy CDX), může tedy hrát klíčovou roli při modernizaci aplikací VFP. Dá se nainstalovat na různé verze Windows, Linux a Netware. Scénáře v tomto článku popisují možné využití ADS při migraci na jiné technologie, např. .NET, bez nutnosti měnit zdroj dat (upsize).

ADS je bohatě vybavený a velmi výkonný databázový server s nízkými nároky na údržbu, který slouží ke snadné tvorbě aplikací, ať už pro prostředí klient/server, nebo pro web. Je jedinečný v tom, že poskytuje přístup k datům jak na bázi ISAM (Indexed Sequential Access Method), tak na bázi SQL (podobně jako Visual FoxPro), s možností použít v databázi jednu nebo více tabulek DBF. V porovnání s Microsoft SQL Serverem nabízí foxařům vedle podpory nativních souborů DBF levnější licence, rychlé zaškolení a snadnou implementaci. Na rozdíl od open-source databází jde o rychle se rozvíjející systém se zajištěnou podporou a mnoha přídavnými funkcemi, které jsou doplňovány v reakci na požadavky uživatelů.

Sybase nabízí dva databázové servery, lokální a vzdálený, oba se stejným API. Lokální server je zadarmo. Je to plně funkční databázový stroj typu klient/server, podobně jako runtime Visual FoxPro. Používá souborově orientovaný přístup k datům. Hodí se pro vývoj a bezplatnou distribuci aplikací, které nevyžadují plnohodnotný vzdálený server. Vzdálený server vyžaduje licenci pro každého souběžně připojeného uživatele. K tomu získáte zdarma trvalé vývojářské licence pro 2 uživatele. Zdarma si také lze stahovat a instalovat jednotlivé klienty Advantage, např. Advantage Data Architect, který automaticky nainstaluje bezplatný Advantage Local Server (podrobnosti jsou uvedeny v okénku Instalace). Nastavení ServerType pro připojení k Advantage lze kdykoliv změnit z Local Server na Remote Server, aniž by byly nutné nějaké změny ve zdrojovém kódu nebo v klientech přistupujících k databázi.

Jednou z nejzajímavějších vlastností ADS je, že může pracovat s daty uloženými v souborech DBF – není tedy nutné je konvertovat do jiného formátu nebo převádět do relační databáze. Dosavadní aplikace VFP mohou běžet dál beze změny a současně mohou jejich data v souborech DBF číst i zapisovat různé externí produkty a technologie připojené prostřednictvím Advantage.

Scénáře

Advantage lze při migraci nebo rozšiřování aplikací Visual FoxPro využívat některým z těchto způsobů:

„Zabalit“ data DBF do Advantage

Užitečné a velmi flexibilní řešení je použít Advantage jako datový kontejner (wrapper) obsahující existující soubory DBF se sdíleným (nikoliv výlučným) přístupem. Pak k nim mohou přistupovat i ne-foxové aplikace – je tedy například možné zahájit vývoj nové aplikace v .NET, aniž by bylo nutné zasahovat do zdrojového kódu dosavadní aplikace.

Migrovat aplikaci po etapách

Protože Advantage dovoluje sdílet data v tabulkách DBF, není nutné provést celou konverzi naráz v jednom kroku, lze ji realizovat po částech a postupně přidávat nové moduly nebo komponenty. Bez využití Advantage se obvykle napřed převedou data z DBF do databáze typu klient/server, ve foxové aplikaci se zavedou vzdálené pohledy, SQL pass-through nebo CursorAdaptery pro přístup ke vzdáleným datům a pak začne programování nové aplikace .NET přistupující k nové databázi.

Používat data DBF z .NET

Advantage poskytuje přímý přístup k tabulkám, jaký vývojáři pro ADO.NET nemají k dispozici. Umožňuje kombinovat velmi účinné metody relačního přístupu k datům pomocí příkazů SQL s výkonností a přesným ovládáním navigačních operací, jako jsou přímý přístup pomocí indexů (SEEK) a přímý pohyb po tabulce (SKIP). Například při vývoji webové aplikace v prostředí .NET se pro přístup k existujícím datům DBF použije Advantage .NET Data Provider.

Přidat aplikacím VFP externě funkčnost .NET

Není nutné převádět do .NET celou aplikaci Visual FoxPro, stačí rozšířit její funkčnost o určité komponenty .NET – sem patří např. webové stránky využívající ASP.NET nebo Silverlight, .NET WinForms, WPF či uživatelské rozhraní s vícedotykovým ovládáním.

Využívat v aplikacích .NET tabulky DBF s metadaty

Programátoři ve Visual FoxPro obvykle využívají možnost mít v tabulkách DBF uložena nejen „opravdová“ data, ale i metadata. Advantage umožňuje totéž i v aplikacích .NET (ať už spolupracují s FoxPro, nebo ne). Často se to hodí pro snadný přístup, nasazení a správu malých tabulek, které nemusí obhospodařovat relační databáze na serveru.

Převést data DBF do relační databáze Advantage

Vedle možnosti sdílet prostřednictvím Advantage data DBF s jinými klienty (např. .NET) lze také v rámci aplikace VFP převést (upsize) jednu nebo více tabulek DBF do relační databáze Advantage, aby mohly využívat všechny výhody architektury klient/server, které Advantage nabízí: překonání hranice 2 GB, fulltextové prohledávání textu, šifrování, replikace, zálohování aj.

Mechanismy přístupu k datům

Jednou z nejlepších vlastností Visual FoxPro je způsob, jakým integruje mechanismy přístupu k datům do shodných programovacích postupů. Po načtení dat ze serveru (např. pomocí vzdáleného pohledu nebo Cursor Adapteru) je další práce s nimi stejná jako v případě lokální tabulky otevřené příkazem USE. Proto nemusíte přepisovat spoustu zdrojového kódu, když chcete začít používat k práci s daty Advantage.

Vzdálený pohled

Vzdálené pohledy využívají pro přístup k externím datům ODBC. Používáte-li ve Visual FoxPro lokální pohledy, bude pravděpodobně tou nejjednodušší možností pro přístup ke stejným datům prostřednictvím ADS přechod na vzdálené pohledy. Protože VFP ukládá informace o vzdáleném pohledu do DBC, musí být v projektu otevřena databáze. Abyste mohli použít vzdálený pohled s ADS, musíte napřed nainstalovat Advantage ODBC driver a nastavit v ovládacích panelech Windows příslušný zdroj dat ODBC (případně zadat příkaz ODBCAD32.EXE).

Vzdálený pohled se dá vytvořit buď v programu příkazem CREATE SQL VIEW nebo vizuálně v Návrháři pohledů (View Designer) – v obou případech je nutno uvést, které spojení ODBC se má použít. Dál už se s ním pracuje jako s normální tabulkou. Aby nebyl jen ke čtení, tedy aby se změny provedené ve VFP uložily i na Advantage, je zapotřebí nastavit v Návrháři pohledů příslušné vlastnosti: seznam klíčových polí, která jednoznačně identifikují řádek, seznam polí, která lze změnit, apod.

Cursor adapter

Třída CursorAdapter využívá pro přístup k externím datům ADO. Poskytuje konzistentní rozhraní pro přístup ke vzdáleným datům bez ohledu na to, který mechanismus si vyberete, a umožňuje snadné přepínání mezi jednotlivými mechanismy. Je sice možné použít jak driver ODBC, tak OLE DB provider; pro Advantage se však doporučuje raději Advantage OLE DB provider. Po jeho instalaci vyvoláte ve Visual FoxPro aplikaci Data Explorer (najdete ji v hlavním adresáři VFP) a vytvoříte nové spojení typu „ADO Connection“. Když pak přetáhnete myší některou z tabulek do editovacího okna, Visual FoxPro vygeneruje zdrojový kód pro vytvoření instance CursorAdapteru pro tuto tabulku. Výsledkem je foxovský kurzor, který se dá ve VFP použít kdekoliv: v gridu, v sestavě, zpracovávat v cyklu SCAN atd. (Pozn.: tabulky lze procházet i přímo v okně Data Explorer.)

SQL pass through (přímé předávání příkazů SQL)

Podobně jako vzdálené pohledy využívá SQL Pass Through pro přístup k externím datům ODBC. Poskytuje mnohem flexibilnější přístup k rozhraní ODBC a vynikající nízkoúrovňové řízení – můžete ovládat transakce, volat uložené procedury, spouštět specifické aktualizace atd. Je to ale pracnější, protože si musíte všechno naprogramovat sami a nemáte k tomu žádný vizuální nástroj. Chcete-li např., aby se aktualizace odesílaly na ADS automaticky, musíte patřičně nastavit vlastnosti kurzoru několikanásobným postupným voláním funkce CURSORSETPROP().

Instalace

Programátoři Visual FoxPro si mohou stáhnout, nainstalovat a začít používat lokální verzi Advantage. Pro přístup k datům DBF mohou využívat několik driverů Advantage (ODBC, OLE DB, .NET Data Provider a JDBC). Jsou dostupné i další drivery pro produkty Delphi, Crystal Reports, CA Visual Objects, PHP a Perl, a dokonce i Clipper.

Downloady se snadno a rychle instalují, celý proces od začátku až do konce většinou nezabere víc než minutu. Foxaře obvykle zajímají tyto komponenty:

  • Advantage Remote Database Server (download zdarma, licence pro 2 vývojáře zdarma, ~ 20MB)
  • Advantage Local Database Server (download zdarma, bezplatná distribuce ~ 15MB)
  • Advantage Data Architect with Local Database (download zdarma, bezplatná distribuce ~ 20MB)
  • Advantage .NET Data Provider (download zdarma, bezplatná distribuce ~ 30MB)
  • Advantage OLE DB Provider (download zdarma, bezplatná distribuce ~ 15MB)
  • Advantage ODBC Driver (download zdarma, bezplatná distribuce ~ 15MB)
  • Advantage JDBC Driver (download zdarma, bezplatná distribuce ~ 10MB)
  • CloneDBC for Visual FoxPro (download zdarma, je součástí downloadu Advantage OLE DB Provider)

Zdroje informací

Foxařské fórum

http://devzone.advantagedatabase.com/dz/content.aspx?key=7

Zde si můžete vyměňovat otázky a odpovědi s dalšími členy skupiny Advantage.FoxPro. Máte-li dotazy na tým Advantage Technical Services, posílejte je na adresu Advantage@iAnywhere.com.

Další informace pro programátory ve Visual FoxPro

http://sybase.com/foxpro

Domovská stránka Advantage Visual FoxPro obsahuje všechny související zdroje a downloady produktů a technologií Advantage.

Advantage Developer Zone

http://DevZone.AdvantageDatabase.com

Stránka technické podpory pro programátory využívající produkty a technologie Advantage. Zde lze navštěvovat diskusní fóra, prohledávat znalostní bázi, procházet online nápovědu a ukázky programů atd.

Bezplatná testovací verze Advantage Database Serveru

http://response.sybase.com/forms/ADS10-30-Day

Zde si můžete stáhnout zdarma k otestování plně funkční Advantage Database Server a libovolné klienty.

ze zdrojů společnosti Sybase vybrala Hana Horová

Kde získat licence

Koncem června 2011 se stal DAQUAS distributorem produktů Advantage Database Server od společnosti Sybase. DAQUAS pro vás nebo vaše zákazníky dokáže zajistit požadované licence, licenční konzultace a základní podporu pro toto produktové portfolio Sybase. Pokud se chcete dozvědět více, kontaktujte nás na adrese obchod@daquas.cz.