在 Delphi 应用程序中使用哪种嵌入式数据库?

发布于 2024-07-07 06:35:28 字数 213 浏览 5 评论 0原文

我正在 Delphi 中创建一个桌面应用程序,并计划使用嵌入式数据库。 我已经使用 SQlite3 和 DISQLite3 库开始了该项目。 它有效,但文档似乎有点轻。 我最近发现了 Firebird(是的,我已经离开 Windows 一段时间了),它似乎有一些引人注目的功能和支持。

每个嵌入式数据库有哪些优缺点? 规模很重要,支持和资源也很重要。 你用过什么,为什么?

I am creating a desktop app in Delphi and plan to use an embedded database. I've started the project using SQlite3 with the DISQLite3 library. It works but documentation seems a bit light. I recently found Firebird (yes I've been out of Windows for a while) and it seems to have some compelling features and support.

What are some pros and cons of each embedded db? Size is important as well as support and resources. What have you used and why?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(29

千纸鹤 2024-07-14 06:35:29

如果嵌入式是绝对必须的,请考虑 DBISAM。

If embedded is an absolute must, look at DBISAM.

陈年往事 2024-07-14 06:35:29

kbMemTable 是一个很好的候选者。 在内存中运行,速度快,多线程。 以前是免费的。

Components4Developers

kbMemTable is a good candidate. Runs in memory, fast, multi-threadding. Used to be free.

Components4Developers

明明#如月 2024-07-14 06:35:29

我在不同的场合使用过DBISAM和kbMemTable。

我喜欢 DBISAM 的原因是它具有出色的功能,而且通常非常可靠。 我已经在大型数据库、全文搜索、只读模式、CGI 和许多其他情况下使用过它。

不过,与基于 kbMemTable 或 SQLite 的组件相比,它相当大。 而且每个数据库(甚至表)不能有一个文件 - 根据具体情况,这是一个主要缺点。

kbMemTable 很小,非常适合少量数据。 由于它在内存中运行,因此数据量当然必须很小。

我在几个桌面应用程序上采取的另一种选择是使用 TWriter/TReader 直接从对象层次结构转储数据或将数据转储到对象层次结构。 这是迄今为止最小的选择,并且与使用数据库相比快得离谱。 数据文件也很小。

不过,它有各种各样的缺点 - 如果您可能想要添加/更改字段,则必须编写版本控制代码,除非它在内存中,否则会更加复杂,根本不支持多用户,等等。

I have used DBISAM and kbMemTable on different occasions.

What I like about DBISAM is that it has great features, and is usually very reliable. I have used it in large databases, full-text search, read-only mode, CGIs and many other situations.

It is fairly large compared to kbMemTable or SQLite based components, though. And you can't have a single file per database (or even table) - depending on the situation, that is a major disadvantage.

kbMemTable is tiny and it's great for small amounts of data. Since it runs in memory, it has to be a small amount of data, of course.

One other option I've taken on a couple of my desktop apps is dumping the data directly from/to my object hierarchy using TWriter/TReader. This is by far that smallest option, and is absurdly fast compared to using a database. The data files are tiny, too.

It has all kinds of drawbacks, though - you have to code versioning in if you might want to ever add/change fields, unless it's in-memory it is even more complicated, no multi-user support at all, etc.

倒带 2024-07-14 06:35:29

嵌入式 Firebird 也是我们的第一选择。 以及与之配套的Unified Interbase v2.0套件。 一个伟大而稳定的解决方案!

Firebird embedded is our #1 choice as well. And the suite Unified Interbase v2.0 with it. A great and stable solution!

海螺姑娘 2024-07-14 06:35:29

我有一个数据库,我必须在 10 天里每 20 秒记录 5 个字段数据。3 个字段是整数,1 个字段是双精度(时间),1 个字段是字符串 [5]。

由于我的组件,我仍在使用 Delphi6 srv2。 较新的 delphi 版本在组件方面很糟糕,我必须花费数千美元来重建我的组件库。 因此,delphi 6 仍然最适合真正的商业应用程序,delphis 版本不会出现很多问题。 在许多方面,例如 USB 或兼容性读数等......他们在以前的版本从未上市之前就发布了更新的版本。

我用 Delphi6 设置了一个代码,在表中附加 43200 条记录进行测试,因为我将在应用程序中部署该表,而它有 43200 条记录。 我将在 DBChart 上显示所有数据。

测试结果如下:数据库通过插入命令填充了表43200条记录

Dbisam = 34 秒,
ElevateDb = 11 秒,
AbsoluteDB = 45 秒,
SQLlite = 32 分钟,
火鸟 = 12 分钟,
MSSQL12 localDB = 28 分钟,
简单表 = 8 分钟,
BDE = 已阻止,

我还没有测试过 oracle , blackfish , sysbase , nexsusDb 等。但看起来它们也会很慢。 我已经连接了 DBChart,只有 elevateDb 和absoluteDB 在 7~10 秒等异常时间内加载了 DBchart 上的 43200 条记录。 其他都花了几分钟。 因此,较慢的数据库总是需要编码技巧才能在某些实际工作中取得成功。

我也通过locate命令测试了它们的搜索速度,不幸的是基于服务器的数据库总是较慢。MSSQL

和SQLLite3在delphi中管理起来非常困难,它们让我很累。

这是我的测试结果
最后我决定使用 AbsoluteDB、Dbisam 和 Elevate。 我已经把剩下的从电脑上扔掉了。

Elevate软件不支持recno功能,需要在运行时额外的代码来管理。 这使得数据库变慢 Elevate 软件的另一个错误是 autoinc 字段。 没有办法重置它。 因此我没有选择Elevat软件,即使它是最快的数据库。 都说好功能很多,但我们实际用过的有多少。 他们只是留下了最重要的功能不支持,但修复了许多不必要的功能。 而且8年以来似乎也没有任何优势。

如果您想亲眼看看,请尝试看看..

我正在考虑两个现在的绝对 DB 或 DBisam4

I have a database that I have to record 5 field data for every 20 sec for 10 days.. 3 field are integer , 1 field is double ( time ) and 1 field is string[5].

I am still using Delphi6 srv2 because of my components. Newer delphi versions are terrible at components that I have to spend thousands of dollars of money to rebuild my component library. Therefor delphi 6 is still best for real commertial applications that never version of delphis give many problems. At many points such as USB or comport readings so on... they release newer ones before previous versions never sit on market.

I have setup a code with Delphi6 what appends 43200 records at a table for test because I will deploy the table in application while it has 43200 records. I will shown all the data on DBChart.

Test result is below databases filled the tables by insert command with 43200 records

Dbisam = 34 sec,
ElevateDb = 11 sec,
AbsoluteDB = 45 sec,
SQLlite = 32 Minute,
Firebird = 12 min,
MSSQL12 localDB = 28 Minute,
Easy table = 8 minute,
BDE = Blocked ,

I havent tested oracle , blackfish , sysbase, nexsusDb etc.. but it seems they will also very slow. I have connected with DBChart and only elevateDb and absoluteDB has loaded 43200 records on DBchart in exceptable time such as 7~10 secs. Other all taken minutes. So slower databases always needs coding tricks to succeed in some real jobs..

I have tested their search speed as well by locate command that unfortunatly the server based databases are always slower in.

MSSQL and SQLLite3 are extremely difficult to manage in to delphi that they made me very tired.

These are my test results
At the end I decided to use AbsoluteDB, Dbisam and Elevate. I have thrown the rest off the PC .

Elevate software doesnt support recno function that requires extra codes at runtime to manage. This makes the database slower Other bug is with Elevate software is autoinc fields. There is no way to reset it . Therefore I have not chosen the Elevat software even it is the fastest database. They say many good functions but how many of them we use it in fact . They just left the most important functions not supported but fixed many many unnecessary functions. and it seems since 8 years there is no any advantage either.

If you want to see with your own eye pls just try and see..

I am thinking between two now absolute DB or DBisam4

心碎的声音 2024-07-14 06:35:29

一路火鸟。 一切都做得很好,到目前为止 2.1 版本非常稳定。

Firebird all the way. Does pretty well everything and so far version 2.1 is very solid.

指尖微凉心微凉 2024-07-14 06:35:29

FireBird 提供了在某个时候扩展到多用户的机会,或者如果您需要并发性(如果您的应用程序是多线程的)。

如果您只需要单用户访问,SQLite 是无与伦比的,没有其他数据库在任何方面都可以与它相媲美,无论是性能、便利性、SQL 支持还是稳定性。

FireBird offers the opportunity to scale up to multi-users sometime down the line, or if you need concurrency (if your application goes multi-threaded).

SQLite is quite unrivaled if you only need single-user access, no other database comes close to it on any aspect, be it performance, convenience, SQL support or stability.

夜清冷一曲。 2024-07-14 06:35:29

Firebird 真的很棒,而且占用空间很小,因此您可以使用嵌入式
并且可以针对许多用户向上扩展
unicode 失败了吗?
我在 delphi 2009 中使用 devart 组件
和 delphi 6/7 的 FIB plus(他们的 2009 版本和 unicode 还没有准备好,太糟糕了)

Firebird is really awsome and has a small footprint so you can use embedded
and it can be scaled upward for many users
and does unicode faily well
I use devart components with delphi 2009
and FIB plus for delphi 6/7 (their version for 2009 and unicode is not ready yet too bad)

箜明 2024-07-14 06:35:29

嗯,没有人推荐 BDE - 我想知道这是为什么;-)

BlackFishSQL 是另一种可能性,尽管我还没有深入测试。

Hmmm, no one has recommended the BDE - I wonder why that is ;-)

BlackFishSQL is another possibility, although I haven't tested in depth as yet.

彼岸花似海 2024-07-14 06:35:29

当谈到嵌入式数据库时,第一个问题是:它是多用户的吗?
实际上,谁需要一个不允许多个连接(读和写)的数据库?
我已经(强烈地)尝试了所有提到的数据库,但发现只有一个数据库能够真正按其应有的方式运行。 这就是 Accuracer。
Accacer 唯一的遗憾是它是一个三人乐队并且长期缺乏适当的支持。 它的开发也主要是静态的,因为我们多年来没有看到任何真正的功能。这并不奇怪,因为只有一个人真正开发它。 看来他们是靠旧名声生活的。 用户的好评反映了这一点(通常是10年前的评论)。
对于单一用户体验,我会推荐绝对数据库。
至于主要参与者,我会推荐 Microsoft 的 SQL Server。 Oracle 已经成为一个过时的软件并且正在慢慢消亡。

附注
Accuracer 的优点在于它们的嵌入式数据库功能就像成熟的服务器一样。 如果当前记录正在使用,则它仅锁定当前记录,而其余功能正常。 不错的数据库。 可惜只是停滞不前。

when it comes to embedded databases the first question is : is it multiuser ?
Actually,who needs a database that does not allow multiple connections (read&write) to it ?
I have tried (intensly) all mentioned databases and found only one that actually functions the way it should. And that is Accuracer.
The only pity with accuracer is that its a three man band and chronic lack of proper support. It also is mainly static in development as we have seen no real features in years.Not surprising since only one person actually develops it. It seems they are living on old fame. Users praise reflect that (usually 10 years old comments).
For a single user experience I would recommend Absolute Database.
As for major players I would recommend SQL Server from Microsoft. Oracle has become a bloatware and is slowly dying out.

ps
what is nice in accuracer is that their embedded database functions just like full blown server. It locks only current record if its in use while the rest functions normally. Nice database. Pity only it is stagnant.

所有深爱都是秘密 2024-07-14 06:35:28

我正在使用 Firebird 2.1 Embedded,我对它非常满意。我喜欢这样一个事实:数据库大小几乎是无限的(使用大于 4 GB 的数据库进行测试,它可以工作)并且数据库文件与 Firebird 服务器兼容这样我就可以使用标准工具进行数据库管理和检查。 分发包括在 exe 文件夹中放置一些文件。

不支持多个程序的同时访问,但支持多个线程的同时访问(只要您确保在任何给定时刻仅进行一个“连接”操作)。

I'm using Firebird 2.1 Embedded and I'm quite happy with it.I like the fact that the database size is practically unlimited (tested with > 4 GB databases and it works) and that the database file is compatible with the Firebird Server so I can use standard tools for database management and inspection. Distribution consists of dropping few files in your exe folder.

Simultaneous access from multiple programs is not supported but simultaneous access from multiple threads is (as long as you ensure that only one 'connect' operation is in progress at any given moment).

圈圈圆圆圈圈 2024-07-14 06:35:28

我在很多项目中使用了 SQlite3(但来自 C/C++ 和 Objective-C)。 它非常小——没有任何依赖关系——数据库位于单个文件中。

它是 Mac 开发人员选择的数据库,因为它直接受 CoreData 和 iPhone 的支持——因此拥有庞大的用户群(更不用说所有其他用户了)。

I have used SQlite3 for a lot of projects (but from C/C++ and Objective-C). It's extremely small -- no dependencies whatsoever -- database is in a single file.

It's the db of choice for Mac developers because it's directly supported by CoreData and on the iPhone -- so there is a big user base (not to mention all of the other users).

情归归情 2024-07-14 06:35:28

我已经在 FeedDemon 中使用 SQLite(通过 DISQLite3)几个月了,我强烈推荐它 - 它非常快速且稳定。 正如 Javier 所说,该库的文档可能很薄,但 SQLite 本身的文档非常好。

I've been using SQLite (via DISQLite3) in FeedDemon for several months, and I highly recommend it - it has been extremely fast and stable. As Javier said, the docs for the library may be thin, but the docs for SQLite itself are very good.

吻泪 2024-07-14 06:35:28

我在许多项目中使用过 DBISAM。 它是完全嵌入的,甚至不需要外部 DLL。 与您列出的其他内容不同,它是商业性的。 但有很多很棒的功能,并且有很好的文档记录和支持。 他们有一个继承者,但我还没有尝试过。

I've used DBISAM on a number of projects. It is completely embedded without even a need for an external DLL. Unlike the others you listed it is commercial. A lot of great features though and very well documented and supported. The have a successor to it that I haven't tried yet though.

徒留西风 2024-07-14 06:35:28

让我们看一下,快速比较:

SQLite:

  • 数据库中的动态类型
  • 跨平台文件
  • 在 Windows、Linux、Mac 等上运行。
  • 公共域
  • 支持事务
  • 依赖于文件系统安全性,不包括自身的安全性

Firebird 嵌入式:

  • 数据库中的强类型
    • 并非所有 SQL 数据类型都受支持
  • 跨平台文件
    • 嵌入式 Firebird 仅在 Windows 上运行
    • 嵌入式 Firebird 中的文件与完整服务器版本的格式相同
    • 嵌入式 Firebird 中的文件可以复制到非 Windows 服务器上使用
  • 在修改后的 MPL 下使用(“我们的就是我们的”)并且必须保持免费,你的就是你的,你不必发布它”)
  • 支持事务、触发器等

MySQL 嵌入式:

  • 对 SQL 功能的支持取决于文件格式
  • (IIRC) 跨平台文件
  • GPL 除非你支付版税
  • 可以在 Windows、Linux、Mac 上运行,
  • 在开源人群中非常受欢迎。

即使是嵌入式数据库也有其优点和缺点。 您需要根据您正在做的事情权衡这些优点和缺点才能做出决定。

Let's see, quick comparison:

SQLite:

  • dynamic typing in the database
  • cross-platform files
  • runs on Windows, Linux, Mac, etc.
  • public domain
  • supports transactions
  • relies on file system security, does not include own security

Firebird embedded:

  • strong typing in the database
    • not all SQL datatypes are supported
  • cross-platform files
    • Firebird embedded only runs on Windows
    • Files from Firebird embedded are in the same format as the full server version
    • Files from Firebird embedded can be copied to a non-Windows server for use
  • available under a modified MPL ("what's ours is ours and must remain free, what's yours is yours and you don't have to release it")
  • supports transactions, triggers, etc.

MySQL embedded:

  • support for SQL features depends on file format
  • (IIRC) cross-platform files
  • GPL unless you pay royalties
  • runs on Windows, Linux, Mac
  • incredibly popular with the open source crowd

Even embedded databases have their strengths and weaknesses. You'll need to weigh those strengths and weaknesses against what you're doing to decide.

似最初 2024-07-14 06:35:28

Firebird 嵌入式是我们的第一选择,因为无需更改代码,具有嵌入式数据库的单用户 Delphi 应用程序可以迁移到基于多用户服务器的部署,而无需牺牲任何高端功能(例如存储过程、触发器、视图、 ETC。)。 它是一个真正的免费数据库,并且在此过程中不会对您的代码进行 GPL。

Firebird embedded is our #1 choice because with no code changes, a single user Delphi app with embedded database can be migrated to a multi-user server based deployment without sacrificing any of the high end features (such as stored procedures, triggers, views, etc.). And its a TRUE free database and doesn't GPL your code in the process.

我最亲爱的 2024-07-14 06:35:28

强烈建议在使用数据库和 Delphi 时使用 AnyDAC - 然后您可以选择无缝定位 FB 或 SQLite。

我更喜欢使用 FB 来开发嵌入式应用程序。
汤姆

Strongly recommend to use AnyDAC when working with Databases and Delphi - then you can choose to target FB or SQLite seamlessingly.

My preference would be for FB for embedded apps.
Tom

美胚控场 2024-07-14 06:35:28

我使用Sybase的Advantage数据库服务器,但我也是研发经理,所以这篇文章有偏见。 :)

我们拥有适用于 WIN32 VCL 和 VCL.NET 的原生 Delphi TTable 和 TQuery 组件。 除了 SQL 支持之外,直接表访问使 Advantage 在许多其他 Delphi 产品中独一无二。 Advantage 支持大型表(仅受记录数量 20 亿条限制),并具有免费的本地引擎,这对于开发 PC 和不需要客户端/服务器功能的小型客户站点来说非常有用。 切换到具有单个连接属性的客户端/服务器,没有其他更改。

我们有大量的客户端,因此访问 Delphi 之外的数据也非常容易(.NET 数据提供程序、ODBC、OLE DB、PHP、Perl、JDBC 等)。

主要产品网站:http://www.advantagedatabase.com
开发人员网站:http://devzone.advantagedatabase.com

I use Sybase's Advantage Database Server, but I'm also the R&D Manager, so this post is biased. :)

We have native Delphi TTable and TQuery components for both WIN32 VCL and VCL.NET. Direct table access in addition to SQL support makes Advantage unique among many of the other Delphi offerings. Advantage supports large tables (only limited by the number of records, 2 billion) and has a free local engine, which is nice for development PCs and for small customer sites that don't require client/server functionality. Switch to client/server with a single connection property, no other changes.

We have a ton of clients so accessing the data outside of Delphi is also very easy (.NET data provider, ODBC, OLE DB, PHP, Perl, JDBC, etc).

Main Product Web Site: http://www.advantagedatabase.com
Developer's Web Site: http://devzone.advantagedatabase.com

南风起 2024-07-14 06:35:28

这实际上取决于你需要什么。 对于单用户应用程序,Firebird Embedded 或 SQLite 可能是最佳选择(而且价格合适)。 另一方面,如果您需要支持大量多个用户,您可能应该使用常规 Firebird 而不是嵌入式版本(服务器安装很简单,因此您不会遇到太多问题)。

如果您需要介于两者之间的东西,对于中等的多用户应用程序,平面数据库之一会更好。 我发现 ComponentAce 的绝对数据库比 DBISAM、NexusDB 或 VistaDB 更能满足我的需求。

它留下相对较小的占用空间(没有 DLL),它是一个单文件数据库(对我来说是必须的),支持 Unicode、BLOB 压缩、加密,并且对于平面数据库来说技术限制似乎令人印象深刻。 此外,在我需要的少数情况下,支持也很好。

对于缺点,我注意到它不支持嵌套事务,但除此之外,我没有遇到任何问题。

It really depends what you need. For single-user applications, Firebird Embedded or SQLite are probably best choices (and price is right). On the other end, if you need support for large number of multiple users, you should probably use regular Firebird instead of Embedded version (server is simple to install so you won't have much problems here).

And if you need something in between, for a moderate multi-user application, one of flat databases would be better. I found that ComponentAce's Absolute Database better choice for my needs than DBISAM, NexusDB or VistaDB.

It leaves relatively small footprint (no DLLs), it's a single-file db (a must for me), supports Unicode, BLOB compression, crypting, and technical limits seem impressing for a flat database. Moreover, support was good in few occasions when I needed it.

For cons, I have noticed it doesn't support nested transactions, but other than that, I had no problems.

跨年 2024-07-14 06:35:28

至于大小,没有什么比 SQLite 更好的了。

当你提到缺乏文档时,我猜这是 DISQLite3 的文档。 SQLite 文档 非常完整

As for size, nothing beats SQLite.

when you refer about lack of documentation, i guess it's doc for DISQLite3. The SQLite docs are quite complete

花期渐远 2024-07-14 06:35:28

看看 NexusDB。 过去使用非常成功。

Take a look at NexusDB. Have used very successfully in the past.

提赋 2024-07-14 06:35:28

(嵌入式)firebird 的问题是数据库不能驻留在网络驱动器上。 此外,在只读驱动器 (CD/DVD) 上保存数据库也很困难。

有关这些限制的一些技巧,请参阅 Delphi Wiki:
http://delphi.wikia.com/wiki/Firebird_tipps

The problem with (embedded) firebird is, that the database cannot reside on a network drive. Also, it is difficult to have a database on a read only drive (CD/DVD).

For some hacks around these limitations see the Delphi Wiki:
http://delphi.wikia.com/wiki/Firebird_tipps

眼泪都笑了 2024-07-14 06:35:28

NexusDB 提供从嵌入式到完整的客户端/服务器/远程的全系列产品。 我相信也符合 SQL2003。 我在几个项目中使用它,到目前为止我非常高兴,而且它可以在如此广泛的“规模”中工作这一事实是一个很大的优势(不必为扩展的应用程序学习另一个数据库, ETC)。

NexusDB offers the full range from embedded, to full client/server / remote. Also SQL2003 compliant, I believe. I'm using it on a few projects, and am very pleased so far, and the fact that it can work in such a wide range of "scales" is a big plus (not having to learn another DB for scaled-up apps, etc).

空气里的味道 2024-07-14 06:35:28

看一下这个嵌入式数据库对比:http://sql-db.cz.cc/,可以乐于助人。 大多数上述产品都在那里展示:Advantage、DBISAM、Firebird、MS SQL Server 以及更多:Accurcer、Apollo、ElevateDB、NexusDB、TurboDB。

Look at this embedded database comparison: http://sql-db.cz.cc/, it can be helpful. Most of abovementioned products are presented there: Advantage, DBISAM, Firebird, MS SQL Server, and much more: Accuracer, Apollo, ElevateDB, NexusDB, TurboDB.

诗酒趁年少 2024-07-14 06:35:28

我偏爱 Component Ace 的 Absolute DB。 虽然是商业产品($),但它很坚固、易于使用、占用空间小且有详细记录。 如果您正在寻找一个巨大的多用户应用程序,这不是正确的选择,但如果您的多用户需求很轻(或不存在),那么这是一个不错的选择。

I am partial to Component Ace's Absolute DB. Although a commercial product ($), it is solid, easy to use, small footprint and well documented. If you are looking for a huge multi-user application, this is not the way to go, but if your multi-user needs are light (or non-existent) this is a solid option.

放飞的风筝 2024-07-14 06:35:28

我正在使用 SQL Server Express 和 ADO 组件。 效果很好。 您可以使用命令行运行 SQL Server Express 安装,以向用户隐藏复杂性。 您还可以分发按文件名加载的数据库。 有数百万 SQL Server 用户,因此任何问题的解决方案都可以在 intertubes 中轻松找到:-)

I'm using SQL Server Express and the ADO components. Works great. You can run the SQL Server Express install with commandline to hide the complexities from the users. You can also distribute a database that you load by filename. There are millions of SQL server users so solutions to any problems are easily found in the intertubes :-)

梦晓ヶ微光ヅ倾城 2024-07-14 06:35:28

我进行了网络搜索,为我的 Delphi 应用程序找到一个快速数据库包。 我希望它完全包含在可执行文件中,不需要外部 DLL 或库。 我最初是通过 AidAim 找到 Accuracer 的。 他们发布了他们的数据库有多快,甚至进行了比较与其他类似的软件包一起“证明”他们的观点。

我想相信他们的说法,但我想我应该在网上多搜索一下,以找到其他包裹的时间安排。 我非常惊讶地发现 Delphi 论坛上的一篇帖子,有人询问要使用什么数据库,有 14 条不同的建议。 一位响应者自己进行了时间比较,发现 Accuracer 与其他几个相比相当慢,而 Accuracer 已(方便地)将其排除在自己的比较页面之外。

这篇文章,加上我进行的其他后续网络研究,使我倾向于 DISQLite3,一个基于开源 SQLite 程序的产品,但具有在 Delphi 中工作的增强功能非常快,开销非常小,并且使用基于命令的调用 - 我喜欢这一点。 它正在积极开发中,很快就会有正式的 Delphi 2009 版本,尽管显然当前版本将在 D2009 下运行。

附录:DISQLite3 2.0.0 版,11 月 17 日发布,支持 D2009。

I did a websearch to find a fast database package for my Delphi Application. I wanted it to be completely contained in the executable with no external DLLs or libraries required. I originally found Accuracer by AidAim. They had posted how fast their database was and even gave comparisons with other similar packages to “prove” their point.

I wanted to believe their claims but I thought I’d search the web a bit more to find timings of other packages. I was very surprised to find a post at the Delphi discussion forums where a person asked what database to use, and there were 14 different suggestions. One of the responders had done his own timing comparisons and had found Accuracer to be quite slow compared to several others, which Accuracer had (conveniently) left out of their own comparison page.

The post, plus additional followup web research by me, led me to lean toward DISQLite3, a product based on the Open Source SQLite program, but with enhancements to work in Delphi very quickly, with very small overhead, and with command-based calls - which I like. It is actively under development and will soon have an official Delphi 2009 version, although apparently the current version will work under D2009.

Addenum: DISQLite3 Version 2.0.0, released Nov 17, supports D2009.

策马西风 2024-07-14 06:35:28

我知道 MS Access 是一个相对垃圾的数据库(并且预计会在这里被击落),但如果只需要小数据,那么无论如何使用 MS Office 可能会有优势。 对我来说,这是一种比 csv 文件更灵活地存储程序数据的方法,csv 文件是科学代码的常见方法。

您可以从 delphi 代码创建访问数据库,而无需使用 ado & 安装 MS Office; odbc 驱动程序(可能需要有一个初始 .accdb 文件,没有要从中复制然后填充的表,我不记得这个细节。不确定执行此操作的许可情况。.accdb

扩展名可以更改为其他内容和文件密码保护(在有限程度上),因此如果需要的话,用户的访问权限不会立即显而易见。
我知道一些商业开发人员使用这种方法& 我自己复制的。 发现它比 sqlite 更容易设置,但也许是因为我已经使用了 ado & 访问过去。

I know MS access is a comparatively crap db (and expect to be shot down in flames here), but if only small data is needed it may have advantages if ms office is used anyway. For me it was a way to store program data with more flexibility than csv files which is a common approach for scientific code.

You can create an access db from delphi code without having ms office installed using ado & odbc driver (might be necesary to have an initial .accdb file without tables to copy from then populate, I can't remember this detail. not sure licensing situation doing this.

The .accdb extension can be changed to something else & the file password protected (to a limited degree) so its not immediately obvious to users its access if that's desired.
I know a few commercial developers do this method & copied it myself. Found it easier to setup than sqlite, but maybe because I'd already used ado & access in the past.

〃安静 2024-07-14 06:35:28

我用过ScimoreDB。 它有其怪癖,因为他们免费提供它,并且在数据类型和一些安装问题上也有其怪癖。 这是一个 C# 项目。

I have used ScimoreDB. It has its quirks as they give it royalty free and it has its quirks in data types and with some installation issues. This was on a C# project.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文