Sdílet prostřednictvím


Nabídka Soubor v databázových aplikacích MFC

Pokud vytvoříte databázovou aplikaci MFC a nepoužíváte serializaci, jak byste měli interpretovat příkazy Otevřít, Zavřít, Uložit a Uložit jako v nabídce Soubor, i když pro tuto otázku nejsou žádné pokyny pro styl, tady je několik návrhů:

  • Úplně odstraňte příkaz Otevřít v nabídce Soubor.

  • Interpretujte příkaz Otevřít jako "open database" a zobrazte uživateli seznam zdrojů dat, které vaše aplikace rozpozná.

  • Interpretujte příkaz Otevřít jako "open profile" (otevřít profil). Zachovejte možnost Otevřít pro otevření serializovaného souboru, ale soubor použijte k uložení serializovaného dokumentu obsahujícího informace o profilu uživatele, jako jsou předvolby uživatele, včetně jeho přihlašovacího ID (volitelně kromě hesla) a zdroje dat, se kterým naposledy pracoval.

Průvodce aplikací MFC podporuje vytvoření aplikace bez příkazů nabídky Soubor souvisejících s dokumentem. Na stránce Podpora databáze vyberte zobrazení Databáze bez možnosti podpory souborů.

Chcete-li interpretovat příkaz nabídky Soubor zvláštním způsobem, musíte přepsat jeden nebo více obslužných rutin příkazů, většinou ve vaší CWinApp-odvozené třídě. Pokud například zcela přepíšete OnFileOpen (který implementuje ID_FILE_OPEN příkaz), aby to znamenalo "open database:"

  • Nevolejte verzi OnFileOpenzákladní třídy , protože zcela nahrazujete výchozí implementaci tohoto příkazu rozhraní.

  • Místo toho použijte obslužnou rutinu k zobrazení dialogového okna se seznamem zdrojů dat. Takové dialogové okno můžete zobrazit voláním CDatabase::OpenEx nebo CDatabase::Open parametrem NULL. Otevře se dialogové okno ODBC, které zobrazí všechny dostupné zdroje dat na počítači uživatele.

  • Vzhledem k tomu, že databázové aplikace obvykle neukládají celý dokument, budete pravděpodobně chtít odebrat implementace Uložit a Uložit jako, pokud k ukládání informací o profilu nepoužíváte serializovaný dokument. Jinak můžete implementovat příkaz Uložit jako například "commit transaction" (transakce potvrzení). Další informace o přepsání těchto příkazů najdete v technické poznámce 22 .

Viz také

Serializace: Serializace vs. Vstup/výstup databáze