Access databza   otázka

Databáze, Office

Caute

pouzivam vo svojej aplikacii access databzu. A napadol ma pri vyvoji aplikacie jedna vec:

nainstalujem uzivatelovi apliakciu, on ju isty cas pouziva, ma v nej svoje data a ja casom potrebujem napr. dodat tabulku novu alebo pridat stlpec do databazy.....

da sa to osetrit napr. nejaky scriptom, ktory spustim napr. pri nejakom update alikacie?

Dufam ze som to popisal dost zrozumitelne :-)

Viem ze SQL prikazy nato su ale s ACCESSOM nemam skusenosti

Vdaka

cujan

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Proč "osetrit napr. nejaky scriptom" a ne "pri nejakom update alikacie"? Aplikaci musíte upravít, aby pracovala s novým sloupcem, ne? Přidáte rutinu, která ověří stav databáze, vytvoří upravený soubor databáze (pokud nebude součastí změněné aplikace) a do nového souboru převedete stávající data.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jasne ze apliakci abude osetrena, len zatial mam instalaciu updatov nastavenu tak aby ak tam uz databaza je tak nanu nesahalo, lebo vsetky zmeny co sa robia v aplikacii tak sa robia nad aplikaciou a nie nad databzou. Len ma zaujimala situacia co vtedy ak potrebujem sahnut aj do databazy.

algoritmus vo vseobecnosti ma napadol, len som chcel zistit ci niekto to uz nema vyskusane aj prakticky.

Vdaka

cujan

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jen takový neověřený nápad, ale co to udělat tak, že pokud aplikace zjistí že má zastaralou verzi databáze, vytvoří databázi novou, spustí sekvenci SQL dotazů které přetáhnou všechny data ze staré databáze do nové a starou následně vymaže.

A nebo pokud se jedná pouze o přidání několika sloupců možná by to šlo řešit nějákým SQL příkazem který nový sloupec přidá do tabulky. Ale to nevím zda je v Accessu možné.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Obvykle se to dělá tak, že do celé aplikace dáte nějaký aktualizační systém (můžete využít třeba ClickOnce) a v databázi si v nějaké tabluce píšete aktuální verzi databáze. Při startu aplikace zkontrolujete verzi daabáze a pokud nová verze aplikace potřebuje novější verzi databáze, má v sobě changescripty pro upgrade (přidání nových tabulek, přidávání sloupců atd.). Access by měl umět CREATE TABLE a ALTER TABLE, takže by v tom neměl být problém.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Já to dělám takto - není to tak sofistikované řešení jako popisuje Tomáš, ale je funkční. Když vydávám novou verzi front endu, kontroluji v tabulce backendu (access) jeho číslo verze. Pokud číslo neodpovídá, nedovolím uživateli pracovat a požádám ho stáhnout si aktualizační utilitu (toto by šlo určitě automatizovat). Tím nemontuji kód pro aktualizace do kódu front endu, ale mám ho oddělený právě v té utilitě. Vytvářet nové tabulky, přidávat sloupce, relace atd. všechno jde pomocí kódu (dělám to v accessovských aplikací, takže ve VBA, ale to samé není určitě problém ani v netu.)

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback