适用于.NET Framework
注
仅适用于 Windows 系统上的 .NET Framework 4.x 和 .NET 8(原 .NET Core)。
SmartESQL 是以一组紧凑的 C# 类的形式实现的,这些类位于预构建的库中,可为 SmartEDB 数据库提供 SQL 访问。这些类的用法在 SQL C# SDK 示例中有演示。对于初次接触 SmartESQL 的开发人员,我们推荐快速入门教程,以便快速掌握编程基础。然后继续构建并运行 SDK 示例。
请使用以下链接获取使用 C# API 实现嵌入式 SmartESQL 应用程序的一般原则。
运行时库
核心的 SmartEDB 和 SmartESQL 运行时功能封装在 extremedb4net.dll 库中,该库在应用程序启动时动态加载。然后,可以设置以下 Database.Mode 值,在实例化 Database 对象时动态加载相应的库,但请注意,支持 SQL 无需额外的库:
- 调试支持(DebugSupport):加载调试库以提供额外的诊断异常 - 在开发期间强烈建议这样做。当所有代码都没有错误且应用程序能够持续通过验证测试时,就无需继续检查函数参数和支持调试陷阱了。在这个阶段,移除 DebugSupport 选项是有利的。
- 磁盘支持(DiskSupport):加载存储在持久存储设备上的数据库的
_disk
版本的库文件 - 共享内存支持(SharedMemorySupport):为使用共享内存的数据库加载
_shm
版本的库文件 - MVCCT 事务管理器(MVCCTransactionManager):要使用 MVCC 事务管理器,请加载
_mvcc
版本的库,默认情况下加载的是_mursiw
(MURSIW 事务管理器)版本。
应用开发
正如 C# 应用程序开发页面中所解释的那样,C# 应用程序会将数据库架构定义为带有 [Persistent] 属性的原生 C# 类,然后在 Database 构造函数调用中指定可选的支持库。内存设备和数据库参数在传递给 Database 类的 Open() 方法的 Database.Parameters 对象和 Database.Device 数组中指定。SmartESQL 应用程序的不同之处在于,不是通过 Connection 对象,而是通过 Database 方法 ConnectSql() 实例化 SqlLocalConnection 或 SqlRemoteConnection 来初始化 SQL 引擎,然后通过方法 ExecuteQuery() 和 ExecuteStatement() 对所有 SQL 数据库访问进行使用。
处理 SQL 查询
提供了 SqlResultSet 和 SqlTuple 类用于处理查询结果。通常,通过调用带有选择语句的 ExecuteQuery() 来实例化一个 SqlResultSet;然后使用 foreach 循环来遍历结果集。SqlTuple 类用于处理当前结果集行。
执行 SQL 语句
ExecuteStatement() 方法会使用插入、更新或删除语句来调用,以修改数据库内容。
实现细节
请使用下表中的链接查看实施示例:
主题 | 说明 |
---|---|
示例 | 一个简单的 C# 应用程序示例 |
Misc Details | Miscellaneous C# implementation details |
Transactions | Managing SQL transactions in C# |
SqlAggregator | Instructions for using the SqlAggregator class |