嵌入式SQL
请查看以下不同.NET版本示例的描述和具体说明。
.NET Core
相关信息
本节仅适用于 .NET 6 及更高版本,不适用于 SmartEDB for .NET Framework。
SQL
此示例展示了如何使用 SQL 和原生数据库构建嵌入式 .NET Core 应用程序。它可以使用纯 IM 数据库配置和基于磁盘的配置。
要构建磁盘数据库,将创建 4 个内存设备:
- 数据库的即时通讯段
- 缓存段
- 基于文件的数据库
- 基于文件的事务日志段
所有这些段都是从 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 情况不同,在这里我们不创建数据库,我们只是连接到它。但无论如何,Database
类是必需的,因为它控制着 SmartEDB 环境,例如加载运行时库、控制数据封送处理等。因此,我们从创建 Database
实例开始:
Database db = new Database(mode, binPath);
这里不需要设备,因为我们不分配任何内存。然后我们连接到远程服务器:
SqlRemoteConnection con = db.ConnectRemoteSql(host, port, maxAttempts);
然后我们以与使用本地进程内数据库时相同的方式进行操作。
.NET Framework 4.x
相关信息
本节仅适用于 Windows 系统上的 .NET Framework 4.x 和 .NET 8(原 .NET Core)。
RemoteSQL
此示例演示了一个使用 C# 编写的 SmartESQL 远程 SQL 客户端应用程序。
要使用 xSQL 作为 SQL Server 应用程序来启动此示例,请首先启动 xsql:
xsql -size 100m -p 5001 -dbname xsqldb
然后在第二个控制台窗口中运行:
RemoteSql
Sql
此示例演示了 SQL 的 insert
(插入)和 select
(选择)操作。
在控制台窗口中运行:
Sql
Sqlserver
此示例演示了启动一个 SqlServer 实例以及客户端 SqlRemoteConnection 执行插入和选择操作。
在控制台窗口中运行:
Sqlserver