示例
注
仅适用于 .NET 6 及更高版本,不适用于 SmartEDB for .NET Framework。
SQL
此示例展示了如何使用 SQL 和原生数据库构建嵌入式 .NET Core 应用程序。它可以使用纯 IM 数据库配置和基于磁盘的配置。
要构建磁盘数据库,将创建 4 个内存设备:
- 数据库的即时消息(IM)段
- 缓存段
- 基于文件的数据库
- 基于文件的事务日志段
所有这些段都是从 Database.Device 继承而来的类的实例:用于 IM 部分的 PrivateMemoryDevice(如果使用共享内存,则为 SharedMemoryDevice)以及用于磁盘数据库部分和事务日志的 FileDevice。IM 段在磁盘数据库中用于保存系统数据以及临时对象。
要使用数据库,就需要建立数据库连接,即便数据库与使用它的代码位于同一进程中也是如此。我们使用 SqlLocalConnection 类的实例来连接数据库:
SqlLocalConnection con = db.ConnectSql();
请注意,该表是通过以下方式动态创建的:
con.ExecuteStatement("create table MyTable (pk int primary key, value varchar)");
请注意,这是一个事务性操作,并且是在事务块内部完成的。
RSql
此示例展示了如何使用远程 SQL 客户端连接到在当前执行进程之外启动的 xsql 服务器。该服务器可以在同一台机器上启动,也可以在网络中的另一台机器上启动。
要运行此示例,需要运行中的 XSQL 服务器实例。
与本地 SQL 情况不同,在这里我们不会创建数据库,我们只是连接到它。但无论如何,数据库类都是必需的,因为它控制着 SmartEDB 环境,例如加载运行时库、控制数据封送处理等。因此,我们从创建数据库实例开始:
Database db = new Database(mode, binPath);
这里不需要设备,因为我们不分配任何内存。然后我们连接到远程服务器:
SqlRemoteConnection con = db.ConnectRemoteSql(host, port, maxAttempts);
然后我们以与使用本地进程内数据库时相同的方式进行操作。