请各位大虾提供高见——使用什么样的桌面数据库及访问函数库最好?桌面数据库即不需要运行数据库服务器,通过函数库或组件库访问,要求函数库或组件库是开源的。另外,使用ACCESS数据库格式是否侵权?具体地说,使用微软/Windows提供的API(ADO/OLE DB/ODBC)开发程序,在程序中创建和操作Access数据库,并将程序分发到最终用户,但最终用户并没有安装Access应用程序,这会侵犯版权吗?谢谢!

解决方案 »

  1.   

    access,分发简单,坏处是数据库文件易损坏,
      

  2.   

    如果要使用Access好象必须购买OFFICE,而用MSDE 2000是免费的。
      

  3.   

    谢谢各位!另外,我希望除了我的程序不再分发其它的东西。MSDE是不是需要另外安装?
      

  4.   

    我也正在考虑这个问题.
    觉得firebird不错.
      

  5.   

    foxyy8888: firebird不是桌面数据库,它是C/S的,需要运行服务器。
      

  6.   

    并将程序分发到最终用户,但最终用户并没有安装Access应用程序,这会侵犯版权吗?/////////////////////////////////不会侵权!
      

  7.   

    FirBird分服务器版和嵌入版,详情请看我的帖子:
    http://community.csdn.net/Expert/topic/4489/4489366.xml?temp=.5773737
      

  8.   

    以下引自(破宝/percyboy)的Blog,原文地址如下:
    http://blog.joycode.com/percyboy/archive/2005/04/18/49228.aspxEmbedded Firebird DB 简介 
    最近在学习 Firebird Embeded Database。作为一款单文件型小型数据库,Firebird 具有很多吸引人的特征,比如支持事务、支持存储过程、触发器等,而且 Embeded 版本的 Firebird 在 .NET 开发中只需要拷贝两个文件:一个 fbembed.dll (非托管但不需要注册的动态链接库)和一个 ADO.NET Data Provider 的 FirebirdSql.Data.Firebird.dll。这些特征都非常适合那些需要在客户端存储一些数据,但又不想安装数据库(比如MSDE)软件的情形。据称,在国外,需要使用客户端数据库的情况中,有30%左右的开发者选择Access,有30%的开发者选择MSDE 2000,有30%的开发者选择Embedded Firebird,剩余10%选择其他小型数据库,如SQLite,MySQL 等。上面所说的Access,MSDE 2000,Embedded Firebird,SQLite等都是可以免费再分发(free redistributable)的数据库。相比而言,MSDE 2000 显著缺点是需要安装,最大优点是和服务器端的 SQL Server 编程模型一致,开发便利。Access的显著缺点是功能较少,不支持事务等常用功能,最大优点是简单、多数开发者都很熟悉,部署也很方便。SQLite支持事务,也是一款单文件数据库,比较不足的是 .NET Data Provider 还不是很成熟。Firebird则同时具有:单文件、部署简单不需安装(只需 XCOPY 两个文件)、支持事务、存储过程、触发器,.NET Data Provider比较稳定成熟等优点。Firebird 本身有SuperServer和Embedded版本之分,后者只能本机访问,不接受TCP连接。对于开发者而言,从Embedded数据库切换到SuperServer,只需更改数据库连接串中的ServerType值就行。但是,在你正式决定使用?Firebird 之前,请你注意下面这个 known issue(已知问题): Firebird 数据库文件不能放置在含有中文等字符的路径中。Firebird 的文件名不可以用中文字符,所在路径的任何部分如果含有中文字符,都将无法访问到数据库。举个例子,中文Windows桌面所在的目录一般是“C:\Documents and Settings\用户名\桌面”,如果数据库文件放置在桌面上,就无法访问到。当然,Firebird 内部是可以存储中文字符的,因为它支持 GB2312 和 UNICODE 等字符集。我已向 Firebird 开发者报告了这个 BUG,希望能早日解决这个 BUG。需要注意一点,连接串中的 Database 地址如果使用相对路径,请一定注意这个相对路径是相对于 fbembed.dll 所在目录的。
      

  9.   

    桌面数据库即不需要运行数据库服务器
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    这个定义谁下的?按照你的意思应该是文件型数据库,常用的也就是access和paradox了。
      

  10.   

    谢谢各位。foxyy8888: 谢谢你的详细回复,不过感觉embedded firebird带的东西还是太多了。
    pazee: 我此前的概念。刚刚Google了一下“桌面型数据库”,中文搜索结果没有找到定义,但枚举的全是文件型。搜索“what is a desktop database”时也是同样意思:http://www.netlib.com/file-encryption-faq.shtml#Q04 。有人告诉我,在有的Windows上是不带Access的ODBC/OLEDB的驱动的,需要安装Office,因此另找了一个完全开源的桌面/文件数据库项目:SQLite,有兴趣的朋友请看 www.sqlite.org ,它的好处是非常小,如果用DLL的话只需200来K,如果是静态链接估计更小。