用什么样的桌面数据库最好? 请各位大虾提供高见——使用什么样的桌面数据库及访问函数库最好?桌面数据库即不需要运行数据库服务器,通过函数库或组件库访问,要求函数库或组件库是开源的。另外,使用ACCESS数据库格式是否侵权?具体地说,使用微软/Windows提供的API(ADO/OLE DB/ODBC)开发程序,在程序中创建和操作Access数据库,并将程序分发到最终用户,但最终用户并没有安装Access应用程序,这会侵犯版权吗?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 access,分发简单,坏处是数据库文件易损坏, 如果要使用Access好象必须购买OFFICE,而用MSDE 2000是免费的。 谢谢各位!另外,我希望除了我的程序不再分发其它的东西。MSDE是不是需要另外安装? 我也正在考虑这个问题.觉得firebird不错. foxyy8888: firebird不是桌面数据库,它是C/S的,需要运行服务器。 并将程序分发到最终用户,但最终用户并没有安装Access应用程序,这会侵犯版权吗?/////////////////////////////////不会侵权! FirBird分服务器版和嵌入版,详情请看我的帖子:http://community.csdn.net/Expert/topic/4489/4489366.xml?temp=.5773737 以下引自(破宝/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 所在目录的。 桌面数据库即不需要运行数据库服务器~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~这个定义谁下的?按照你的意思应该是文件型数据库,常用的也就是access和paradox了。 谢谢各位。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,如果是静态链接估计更小。 Delphi 自动建立文件夹 D/C (数据库/客户端)开发的系统 如何实现,定单及事务的及时提示及提醒?? 想做一个从paradox导数据到interbase的程序。。。 修改系统日日期格式 关于adoquery获取数据集字段值的问题 放分,能提供一个delphi7做的项目的网站吗?最好可以运行成功的! 關於DLL調用的問題! 我用installshield professional6.22打包程序出现问题 请问delphi界面的摆放控件的那个工具栏是怎么做的? 谁知道什么是 增量查询 ? 服务程序的一个问题! 郁闷很久了,高手请进......
觉得firebird不错.
http://community.csdn.net/Expert/topic/4489/4489366.xml?temp=.5773737
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 所在目录的。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这个定义谁下的?按照你的意思应该是文件型数据库,常用的也就是access和paradox了。
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,如果是静态链接估计更小。