1

我有一个关于使用我们的客户端应用程序部署 SQL Server CE 数据库的最合适方法的问题。我知道我们需要安装 SQL Server CE 先决条件等,所以这不是让它工作的问题。它已经做到了。

现在我们拥有它的方式是,我们只需将 .mdf 文件的副本(不包含数据)与应用程序一起发送,在安装期间将其复制到适当的位置。这工作得很好,但我想知道这是否是使用应用程序部署数据库的“正确”方法,或者数据库是否应该是 a.) 在安装期间生成(作为自定义安装操作),或者 b.)在应用程序的第一次运行时生成。

任何想法或建议表示赞赏。我意识到这个问题可能没有一个可靠的答案。

4

2 回答 2

1

这是在讨论 *.mdf 文件,而不是如何确保 SqlServerCE dll 可用。

您应该如何部署数据库应用程序在很大程度上取决于以下问题:

数据库是每个用户吗?

  • 如果不应该是吗?
    • 从 Vista 开始,将数据库放在应用程序目录中是一个坏主意,因为它可能会在修改文件时触发阿联酋请求。
  • 如果是每个用户,那么实际上您必须为每个用户生成一个新的,因此必须为此运行一些代码,以便您可以轻松地使用以下任何方法。

如果不是,那么简单地包含一个初始文件就可以正常工作,并且是最简单的选择。

开始时数据库是否为空(即,您可以“在代码中创建表结构,并且在任何地方都没有 *.mdf 文件作为其基础。

  • 这可以使您的测试更清晰,但意味着您无法使用 SQL Sever 工具之类的东西与“初始”数据库进行交互。
  • 如果初始状态只是模式或非常小,则在 dll 中嵌入“模板”将使您的部署更加灵活,这意味着没有人可以通过意外删除/更改模板数据库来意外“破坏”模板数据库。

如果有大量数据,那么这几乎肯定会排除嵌入式选项。

在不更改 dll 的情况下,您可能希望更改数据库初始状态中的重要数据吗?

  • 也许您想为每个客户定制它
  • 也许您希望能够在不生成新构建的情况下创建自定义部署。

如果是这样,那么您可能希望文件分开而不是作为嵌入式资源。

于 2009-08-24T17:48:16.520 回答
0

看到这个

使用应用程序部署 SQL Server Compact Edition 数据库

http://www.tomshardware.com/forum/18893-36-deploy-server

再见。

于 2009-08-22T22:21:29.927 回答