简体   繁体   English

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

[英]Which embedded database to use in a Delphi application?

I am creating a desktop app in Delphi and plan to use an embedded database. 我正在Delphi中创建一个桌面应用程序,并计划使用嵌入式数据库。 I've started the project using SQlite3 with the DISQLite3 library. 我已将SQlite3与DISQLite3库一起使用启动了该项目。 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. 我最近发现了Firebird(是的,我离开Windows已有一段时间了),它似乎具有一些引人注目的功能和支持。

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? 您使用了什么,为什么?

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. 我正在使用Firebird 2.1 Embedded,对此感到非常满意,我喜欢这样的事实,即数据库大小实际上是无限的(使用4 GB以上的数据库进行测试并且可以正常工作),并且数据库文件与Firebird Server兼容,因此我可以使用标准工具进行数据库管理和检查。 Distribution consists of dropping few files in your exe folder. 分发包括在exe文件夹中删除一些文件。

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). 不支持从多个程序同时访问,但是支持从多个线程同时访问(只要您确保在任何给定的时刻仅进行一次“连接”操作)。

I have used SQlite3 for a lot of projects (but from C/C++ and Objective-C). 我已经将SQlite3用于许多项目(但来自C / C ++和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). 它是Mac开发人员的首选数据库,因为它由CoreData和iPhone直接支持-因此拥有庞大的用户群(更不用说所有其他用户了)。

I've been using SQLite (via DISQLite3) in FeedDemon for several months, and I highly recommend it - it has been extremely fast and stable. 我已经在FeedDemon中使用SQLite(通过DISQLite3)了几个月,我强烈推荐它-它非常快速和稳定。 As Javier said, the docs for the library may be thin, but the docs for SQLite itself are very good. 正如Javier所说,该库的文档可能很薄,但是SQLite本身的文档却非常好。

I've used DBISAM on a number of projects. 我在许多项目上使用过DBISAM It is completely embedded without even a need for an external DLL. 它完全嵌入,甚至不需要外部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. 有一个我还没有尝试过的继任者

Let's see, quick comparison: 让我们看一下,快速比较:

SQLite: SQLite:

  • dynamic typing in the database 动态输入数据库
  • cross-platform files 跨平台文件
  • runs on Windows, Linux, Mac, etc. 在Windows,Linux,Mac等上运行。
  • public domain 公共区域
  • supports transactions 支持交易
  • relies on file system security, does not include own security 依靠文件系统安全性,不包括自身的安全性

Firebird embedded: 嵌入式Firebird:

  • strong typing in the database 在数据库中强类型
    • not all SQL datatypes are supported 并非所有SQL数据类型都受支持
  • cross-platform files 跨平台文件
    • Firebird embedded only runs on Windows 嵌入式Firebird仅在Windows上运行
    • Files from Firebird embedded are in the same format as the full server version 来自Firebird嵌入式文件的格式与完整服务器版本的格式相同
    • Files from Firebird embedded can be copied to a non-Windows server for use 可以将嵌入式Firebird中的文件复制到非Windows服务器上以供使用
  • 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") 可在经过修改的MPL下使用(“我们的是我们的,必须保持免费,您的是您的,而您不必释放它”)
  • supports transactions, triggers, etc. 支持交易,触发器等

MySQL embedded: MySQL嵌入式:

  • support for SQL features depends on file format 对SQL功能的支持取决于文件格式
  • (IIRC) cross-platform files (IIRC)跨平台文件
  • GPL unless you pay royalties GPL,除非您支付特许权使用费
  • runs on Windows, Linux, Mac 在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. 您需要权衡这些优势和劣势与您要决定的事情。

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.). Firebird Embedded是我们的第一选择,因为无需更改代码,即可将具有嵌入式数据库的单个用户Delphi应用程序迁移到基于多用户服务器的部署,而无需牺牲任何高端功能(例如存储过程,触发器,视图,等等。)。 And its a TRUE free database and doesn't GPL your code in the process. 并且它是一个TRUE的免费数据库,并且不会在此过程中对您的代码进行GPL。

Strongly recommend to use AnyDAC when working with Databases and Delphi - then you can choose to target FB or SQLite seamlessingly. 强烈建议在使用数据库和Delphi时使用AnyDAC-然后您可以选择无缝地定位FB或SQLite。

My preference would be for FB for embedded apps. 我更喜欢嵌入式应用程序的FB。 Tom 汤姆

I use Sybase's Advantage Database Server, but I'm also the R&D Manager, so this post is biased. 我使用Sybase的Advantage Database Server,但我也是R&D Manager,因此该帖子带有偏见。 :) :)

We have native Delphi TTable and TQuery components for both WIN32 VCL and VCL.NET. 对于WIN32 VCL和VCL.NET,我们都有本机的Delphi TTable和TQuery组件。 Direct table access in addition to SQL support makes Advantage unique among many of the other Delphi offerings. 除SQL支持外,直接表访问还使Advantage在许多其他Delphi产品中独树一帜。 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. Advantage支持大型表(仅受记录数限制,为20亿个表),并具有免费的本地引擎,非常适合开发PC和不需要客户端/服务器功能的小型客户站点。 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). 我们有大量的客户端,因此在Delphi之外访问数据也非常容易(.NET数据提供程序,ODBC,OLE DB,PHP,Perl,JDBC等)。

Main Product Web Site: http://www.advantagedatabase.com Developer's Web Site: http://devzone.advantagedatabase.com 主要产品网站: http : //www.advantagedatabase.com开发人员网站: http : //devzone.advantagedatabase.com

It really depends what you need. 这确实取决于您的需求。 For single-user applications, Firebird Embedded or SQLite are probably best choices (and price is right). 对于单用户应用程序,Firebird Embedded或SQLite可能是最佳选择(价格合适)。 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). 另一方面,如果您需要支持大量的多个用户,则应该使用常规的Firebird而不是Embedded版本(服务器易于安装,因此在这里不会有太大问题)。

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. 我发现ComponentAce的绝对数据库比DBISAM,NexusDB或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. 它占用的空间相对较小(没有DLL),它是一个单文件数据库(对我来说是必须的),支持Unicode,BLOB压缩,加密,并且技术限制似乎对平面数据库印象深刻。 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. 对于缺点,我注意到它不支持嵌套事务,但是除此之外,我没有任何问题。

As for size, nothing beats SQLite. 至于大小,没有什么比SQLite更好。

when you refer about lack of documentation, i guess it's doc for DISQLite3. 当您提到缺乏文档时,我想它是DISQLite3的文档。 The SQLite docs are quite complete SQLite文档非常完整

The problem with (embedded) firebird is, that the database cannot reside on a network drive. (嵌入式)firebird的问题在于,数据库无法驻留在网络驱动器上。 Also, it is difficult to have a database on a read only drive (CD/DVD). 另外,很难在只读驱动器(CD / DVD)上建立数据库。

For some hacks around these limitations see the Delphi Wiki: http://delphi.wikia.com/wiki/Firebird_tipps 有关这些限制的一些技巧,请参见Delphi Wiki: http : //delphi.wikia.com/wiki/Firebird_tipps

Take a look at NexusDB. 看看NexusDB。 Have used very successfully in the past. 过去使用非常成功。

NexusDB offers the full range from embedded, to full client/server / remote. NexusDB提供了从嵌入式到完整的客户端/服务器/远程的所有范围。 Also SQL2003 compliant, I believe. 我相信也符合SQL2003。 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). 我正在几个项目上使用它,到目前为止,我感到非常满意,而且它可以在如此广泛的“比例”下工作是一个很大的优势(不必为扩展应用而学习另一个数据库,等等)。

Look at this embedded database comparison: http://sql-db.cz.cc/ , it can be helpful. 查看以下嵌入式数据库比较: http : //sql-db.cz.cc/ ,它可能会有所帮助。 Most of abovementioned products are presented there: Advantage, DBISAM, Firebird, MS SQL Server, and much more: Accuracer, Apollo, ElevateDB, NexusDB, TurboDB. 上面介绍了大多数上述产品:Advantage,DBISAM,Firebird,MS SQL Server,以及更多:Accuracer,Apollo,ElevateDB,NexusDB,TurboDB。

I am partial to Component Ace's Absolute DB. 我偏爱Component Ace的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. 如果您正在寻找庞大的多用户应用程序,那么这并不是路要走,但是如果您的多用户需求不多(或根本不存在),这是一个不错的选择。

I'm using SQL Server Express and the ADO components. 我正在使用SQL Server Express和ADO组件。 Works great. 效果很好。 You can run the SQL Server Express install with commandline to hide the complexities from the users. 您可以使用命令行运行SQL Server Express安装,以向用户隐藏复杂性。 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 :-) 有数百万的SQL Server用户,因此可以在Intertube中轻松找到任何问题的解决方案:-)

I did a websearch to find a fast database package for my Delphi Application. 我进行了一次网络搜索,以找到适用于我的Delphi应用程序的快速数据库包。 I wanted it to be completely contained in the executable with no external DLLs or libraries required. 我希望它完全包含在可执行文件中,而无需外部DLL或库。 I originally found Accuracer by AidAim. 我最初是通过AidAim找到Accuracer的。 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. 我很惊讶在Delphi论坛上找到一个帖子,有人问使用什么数据库,那里有14种不同的建议。 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. 其中一名响应者进行了自己的时间比较,并发现Accuracer与其他几款产品相比非常慢,而Accuracer(方便地)已将其排除在自己的比较页面之外。

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. 该帖子以及我进行的其他后续网络研究使我倾向于使用基于开放源SQLite程序的产品DISQLite3 ,但该增强功能使其可以在Delphi中快速运行,开销很小,并且基于命令的调用-我喜欢 It is actively under development and will soon have an official Delphi 2009 version, although apparently the current version will work under D2009. 它正在积极开发中,很快将有一个官方的Delphi 2009版本,尽管显然当前版本将在D2009下运行。

Addenum: DISQLite3 Version 2.0.0, released Nov 17, supports D2009. 附录:11月17日发布的DISQLite3版本2.0.0支持D2009。

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. 我知道MS访问是一个比较废话的数据库(并且期望在这里被大火烧毁),但是如果仅需要少量数据,则无论如何使用ms office都可能会有优势。 For me it was a way to store program data with more flexibility than csv files which is a common approach for scientific code. 对我来说,这是一种比csv文件更灵活地存储程序数据的方法,这是科学代码的常见方法。

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. 您可以使用del&odbc驱动程序从delphi代码创建一个访问db,而无需安装ms office(可能需要一个初始.accdb文件,而无需复制表,然后填充它,我不记得这个细节。不确定许可情况)这样做。

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. 可以将.accdb扩展名更改为其他内容,并且将文件密码保护(在一定程度上),因此,如果需要的话,它不会立即对用户显而易见。 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. 发现它比sqlite容易安装,但是也许是因为我过去已经使用过ado&access。

I have used ScimoreDB. 我已经使用了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. 这是在C#项目上。

如果绝对需要嵌入式,请查看DBISAM。

kbMemTable is a good candidate. kbMemTable是一个不错的选择。 Runs in memory, fast, multi-threadding. 在内存中运行,快速,多线程。 Used to be free. 曾经是免费的。

Components4Developers Components4开发人员

I have used DBISAM and kbMemTable on different occasions. 我在不同的场合使用过DBISAM和kbMemTable。

What I like about DBISAM is that it has great features, and is usually very reliable. 我喜欢DBISAM的地方在于它具有强大的功能,并且通常非常可靠。 I have used it in large databases, full-text search, read-only mode, CGIs and many other situations. 我曾在大型数据库,全文搜索,只读模式,CGI和许多其他情况下使用过它。

It is fairly large compared to kbMemTable or SQLite based components, though. 但是,与kbMemTable或基于SQLite的组件相比,它相当大。 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. kbMemTable很小,非常适合少量数据。 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. 我在几个桌面应用程序上采取的另一个选择是使用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. 但是,它有各种各样的缺点-如果您想添加/更改字段,则必须编写代码版本控制,除非它在内存中甚至更加复杂,根本没有多用户支持,等等。

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]. 我有一个数据库,必须在10天内每20秒记录5个字段数据。3个字段是整数,1个字段是double(time),1个字段是string [5]。

I am still using Delphi6 srv2 because of my components. 由于组件原因,我仍在使用Delphi6 srv2。 Newer delphi versions are terrible at components that I have to spend thousands of dollars of money to rebuild my component library. 较新的delphi版本对组件非常可怕,我必须花费数千美元来重建我的组件库。 Therefor delphi 6 is still best for real commertial applications that never version of delphis give many problems. 因此,delphi 6仍然是真正的商业应用程序的最佳选择,而从未出现过任何版本的delphis都会带来很多问题。 At many points such as USB or comport readings so on... they release newer ones before previous versions never sit on market. 在许多地方,例如USB或通讯读数等等,它们会在以前的版本从未投放市场之前发布更新的版本。

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. 我已经用Delphi6设置了一个代码,该代码在一张表上追加了43200条记录以进行测试,因为我将在具有43200条记录的同时在应用程序中部署该表。 I will shown all the data on DBChart. 我将在DBChart上显示所有数据。

Test result is below databases filled the tables by insert command with 43200 records 测试结果在下面的数据库中,该数据库通过具有43200条记录的insert命令填充了表格

Dbisam = 34 sec, Dbisam = 34秒,
ElevateDb = 11 sec, ElevateDb = 11秒,
AbsoluteDB = 45 sec, AbsoluteDB = 45秒,
SQLlite = 32 Minute, SQLlite = 32分钟,
Firebird = 12 min, 火鸟= 12分钟,
MSSQL12 localDB = 28 Minute, MSSQL12 localDB = 28分钟,
Easy table = 8 minute, 简易桌= 8分钟,
BDE = Blocked , BDE =已阻止,

I havent tested oracle , blackfish , sysbase, nexsusDb etc.. but it seems they will also very slow. 我还没有测试过oracle,blackfish,sysbase,nexsusDb等。但是看来它们也会非常慢。 I have connected with DBChart and only elevateDb and absoluteDB has loaded 43200 records on DBchart in exceptable time such as 7~10 secs. 我已连接DBChart,并且只有elev​​ateDb和absoluteDB在异常时间内(例如7〜10秒)在DBchart上加载了43200条记录。 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. 我也通过locate命令测试了它们的搜索速度,不幸的是,基于服务器的数据库总是速度较慢。

MSSQL and SQLLite3 are extremely difficult to manage in to delphi that they made me very tired. MSSQL和SQLLite3很难管理到delphi中,这使我很累。

These are my test results 这些是我的测试结果
At the end I decided to use AbsoluteDB, Dbisam and Elevate. 最后,我决定使用AbsoluteDB,Dbisam和Elevate。 I have thrown the rest off the PC . 我把其余的都扔掉了。

Elevate software doesnt support recno function that requires extra codes at runtime to manage. Elevate软件不支持Recno功能,该功能要求在运行时进行额外的代码管理。 This makes the database slower Other bug is with Elevate software is autoinc fields. 这会使数据库变慢。其他错误是与Elevate软件有关的是autoinc字段。 There is no way to reset it . 无法重置它。 Therefore I have not chosen the Elevat software even it is the fastest database. 因此,即使它是最快的数据库,我也没有选择Elevat软件。 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. 而且似乎从8年以来也没有任何优势。

If you want to see with your own eye pls just try and see.. 如果您想用自己的眼睛看,请尝试看看..

I am thinking between two now absolute DB or DBisam4 我正在思考两个现在绝对的DB或DBisam4之间

Firebird embedded is our #1 choice as well. 嵌入式Firebird也是我们的第一选择。 And the suite Unified Interbase v2.0 with it. 还有套件Unified Interbase v2.0 A great and stable solution! 一个伟大而稳定的解决方案!

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). 用户的赞美反映了这一点(通常是10年以前的评论)。 For a single user experience I would recommend Absolute Database. 对于单一用户体验,我建议使用绝对数据库。 As for major players I would recommend SQL Server from Microsoft. 对于主要厂商,我建议使用Microsoft的SQL Server。 Oracle has become a bloatware and is slowly dying out. Oracle已经成为一种过时的软件,并且正在逐渐消失。

ps what is nice in accuracer is that their embedded database functions just like full blown server. ps准确的说是,他们的嵌入式数据库功能就像完整的服务器一样。 It locks only current record if its in use while the rest functions normally. 它仅在使用当前记录时锁定当前记录,而其余记录正常运行。 Nice database. 不错的数据库。 Pity only it is stagnant. 可惜只是停滞不前。

Firebird all the way. 火鸟一路走来。 Does pretty well everything and so far version 2.1 is very solid. 可以很好地完成所有工作,到目前为止,2.1版非常可靠。

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). FireBird提供了一个机会,可以离线扩展到多个用户,或者如果您需要并发(如果您的应用程序是多线程的)。

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. 如果您仅需要单用户访问,SQLite是无与伦比的,无论在性能,便利性,SQL支持还是稳定性方面,没有任何其他数据库可以与之接近。

Firebird确实很棒,而且占地面积很小,因此您可以使用嵌入式工具,并且可以向上扩展以供许多用户使用,并且unicode不能很好地工作。我将devart组件与delphi 2009和FIB plus一起用于delphi 6/7(其2009和unicode版本)还没准备好还很糟糕)

Hmmm, no one has recommended the BDE - I wonder why that is ;-) 嗯,没人推荐BDE-我不知道为什么;-)

BlackFishSQL is another possibility, although I haven't tested in depth as yet. BlackFishSQL是另一种可能性,尽管我尚未进行深入测试。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM