From f9a27393533c8214f452517f78f70ef68d07f3ec Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Tue, 27 Oct 2026 15:23:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E7=9A=84=E5=AF=B9=E8=B1=A1=E8=B5=84=E6=BA=90=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=99=A8=E7=AE=80=E5=8C=96=E6=88=90=E2=80=9C=E5=BA=93=20?= =?UTF-8?q?=E2=86=92=20=E8=A1=A8=E2=80=9D=E4=B8=A4=E5=B1=82=EF=BC=9A?= =?UTF-8?q?=E5=8E=BB=E6=8E=89=E2=80=9C=E6=95=B0=E6=8D=AE=E5=BA=93=E2=80=9D?= =?UTF-8?q?=E2=80=9C=E8=A1=A8=E2=80=9D=E2=80=9C=E5=88=97=E2=80=9D=E4=B8=89?= =?UTF-8?q?=E5=B1=82=E6=96=87=E4=BB=B6=E5=A4=B9=E5=92=8C=20emoji=EF=BC=9B?= =?UTF-8?q?=E5=A4=B4=E9=83=A8=E2=80=9C+=20=E6=96=B0=E5=BB=BA=E5=BA=93?= =?UTF-8?q?=E2=80=9D=E5=92=8C=E5=88=B7=E6=96=B0=EF=BC=8C=E6=AF=8F=E4=B8=AA?= =?UTF-8?q?=E5=BA=93=E4=B8=8B=E9=9D=A2=E2=80=9C+=20=E6=96=B0=E5=BB=BA?= =?UTF-8?q?=E8=A1=A8=E2=80=9D=EF=BC=9B=E7=82=B9=E8=A1=A8=E5=90=8D=E6=89=93?= =?UTF-8?q?=E5=BC=80=E7=BC=96=E8=BE=91=E5=89=8D=20200=20=E8=A1=8C=EF=BC=88?= =?UTF-8?q?=E5=B7=B2=E7=BB=8F=E5=BC=80=E7=9D=80=E5=B0=B1=E5=88=87=E8=BF=87?= =?UTF-8?q?=E5=8E=BB=EF=BC=89=EF=BC=8C=E5=BA=93=E5=92=8C=E8=A1=A8=E5=8F=B3?= =?UTF-8?q?=E8=BE=B9=E7=9A=84=20=E2=8B=AF=20=E5=92=8C=E5=8F=B3=E9=94=AE?= =?UTF-8?q?=E6=98=AF=E5=90=8C=E4=B8=80=E4=B8=AA=E8=8F=9C=E5=8D=95=EF=BC=88?= =?UTF-8?q?=E6=96=B0=E5=BB=BA=E8=A1=A8=20/=20=E6=96=B0=E5=BB=BA=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=20/=20=E5=88=A0=E9=99=A4=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=EF=BC=9B=E7=BC=96=E8=BE=91=E6=95=B0=E6=8D=AE=20/=20=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E5=89=8D=201000=20=E8=A1=8C=20/=20=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E8=A1=A8=E7=BB=93=E6=9E=84=20/=20=E5=88=A0=E9=99=A4=E8=A1=A8?= =?UTF-8?q?=EF=BC=89=EF=BC=8C=E2=8B=AF=20=E6=89=93=E5=BC=80=E7=9A=84?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E5=87=BA=E5=9C=A8=E6=8C=89=E9=92=AE=E4=B8=8B?= =?UTF-8?q?=E9=9D=A2=EF=BC=9B=E9=BC=A0=E6=A0=87=E5=81=9C=E5=9C=A8=E8=A1=A8?= =?UTF-8?q?=E5=90=8D=E4=B8=8A=E6=98=BE=E7=A4=BA=E5=88=97=E3=80=82=E9=A1=B6?= =?UTF-8?q?=E9=83=A8=E5=8E=BB=E6=8E=89=E9=87=8D=E5=A4=8D=E7=9A=84=E2=80=9C?= =?UTF-8?q?=E6=96=B0=E5=BB=BA=E6=95=B0=E6=8D=AE=E5=BA=93=E2=80=9D=E6=8C=89?= =?UTF-8?q?=E9=92=AE=EF=BC=9B=E4=BD=BF=E7=94=A8=E8=AF=B4=E6=98=8E=E3=80=81?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E6=88=AA=E5=9B=BE=E5=92=8C=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E6=96=B9=E6=A1=88=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- docs/设计方案.md | 2 +- web/public/help-img/db.webp | Bin 20504 -> 21570 bytes web/src/database/ObjectExplorer.vue | 268 +++++++++++++++------------- web/src/pages/DatabasePage.vue | 12 +- web/src/pages/HelpPage.vue | 4 +- 5 files changed, 159 insertions(+), 127 deletions(-) diff --git a/docs/设计方案.md b/docs/设计方案.md index 0046c3e..ff36640 100644 --- a/docs/设计方案.md +++ b/docs/设计方案.md @@ -289,7 +289,7 @@ flowchart TB - **SqlClient 仿冒**(`runtime/Sim.Data`):SqlConnection / SqlCommand / SqlDataReader / SqlDataAdapter / SqlCommandBuilder / SqlParameter,DataSet、DataTable、DataView 直接用 .NET 自带的。连接字符串只按 Initial Catalog 打开学生自己的同名库(服务器名、账号密码不检查,书上的长服务器名、"." 都能连上),库不存在时报 4060。 - **T-SQL 转写**:ScriptDom(SQL Server 2008 语法)解析后按白名单逐个节点转写成 SQLite 语句,不认识的语法报"平台暂不支持",生成的 SQL 里只有平台写出的关键字和 tsql_ 函数。表用 STRICT 模式保存,原始的 T-SQL 列类型记在元数据表里,读出时还原成 SQL Server 返回的 .NET 类型(int、DateTime、bool……);varchar(n) 超长、类型不对、NULL、重复主键都报和 SQL Server 一样的错误号和中文信息。`insert into 表 values (...)` 不写列名时跳过自增列(照书上写时值的顺序和列顺序不一致,数据会存进错的列,和真实情况一样);日期统一存成 yyyy-MM-dd HH:mm:ss,书上拼接的 `DateTime.Now.ToString()`(2024/1/16 9:05:03)在插入和 BETWEEN 比较时都转换;支持 TOP(含 UPDATE / DELETE TOP)、CONVERT 样式 120 等、year / getdate / dateadd / datediff、`+` 按类型连接或相加、参数化查询、@@IDENTITY、多条语句。SqlCommandBuilder 根据带中文别名的查询生成 UPDATE。 - **DataGridView**:绑定 DataView / DataTable / DataSet,自动生成列;在单元格里修改的值写回 DataTable,配合 SqlDataAdapter.Update 保存;当前行 ▶、新增行 *、选中行、CurrentRow.Cells[0].Value;类型转换失败时和 WinForms 一样触发 DataError。**DateTimePicker**:Long / Short / Time / Custom 格式与中文 Windows 一致,弹出浏览器的日期选择框。设计器工具箱加"数据表格""日期时间选择器"。 - - **数据库页面**(代替 SSMS,`/database`):对象资源管理器(库 → 表 → 列,右键新建数据库、新建表、设计、选择前 1000 行、编辑前 200 行、删除);查询窗口(F5 执行、选中部分只执行选中的、USE 切换库,结果网格和消息栏的格式与 SSMS 一致,每批最多 5 秒);编辑前 200 行(改单元格即 UPDATE、* 行新增、右键删除,没有主键的表按所有列的原值定位);表设计器(列名、类型、允许 Null、右键设主键、标识列,"查看 SQL 脚本"显示对应的 CREATE TABLE);"恢复实验初始数据"按实验的 `database.sql` 替换实验用到的库,其他库不动。这些操作都生成 T-SQL 交给常驻的 SQL 服务执行,和学生程序走同一套转写。 + - **数据库页面**(代替 SSMS,`/database`):对象资源管理器(只有库 → 表两层,比 SSMS 简单:“+ 新建库”“+ 新建表”,点表名编辑前 200 行,⋯ 和右键是同一个菜单:查询前 1000 行、设计表结构、删除;鼠标停在表名上显示列);查询窗口(F5 执行、选中部分只执行选中的、USE 切换库,结果网格和消息栏的格式与 SSMS 一致,每批最多 5 秒);编辑前 200 行(改单元格即 UPDATE、* 行新增、右键删除,没有主键的表按所有列的原值定位);表设计器(列名、类型、允许 Null、右键设主键、标识列,"查看 SQL 脚本"显示对应的 CREATE TABLE);"恢复实验初始数据"按实验的 `database.sql` 替换实验用到的库,其他库不动。这些操作都生成 T-SQL 交给常驻的 SQL 服务执行,和学生程序走同一套转写。 - **评分**:每个实验可以带 `database.sql`,评分时每个检查项用一份新建的实验库,不碰学生自己的数据;评分规则加"点 / 修改表格单元格""在日期时间选择器里选日期""表格里有 / 没有某行"。新增示例项目 6 任务 2、3(任务 1 在数据库页面上完成),共 15 个。 - 实测:用到数据库的学生程序比不用的多约 11 MB 内存(PSS 17 → 28 MB)。另外修正了平台上的时间格式:Linux 的中文区域数据是 09:05:03,改成和中文 Windows 一样的 9:05:03。 diff --git a/web/public/help-img/db.webp b/web/public/help-img/db.webp index 98fb254ef2b184d4e02fb63730188e4066e41a21..7f5e795c4ec427cb3f60e6cc785b62cfedbbe132 100644 GIT binary patch literal 21570 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 diff --git a/web/src/database/ObjectExplorer.vue b/web/src/database/ObjectExplorer.vue index 557c288..d52f8f8 100644 --- a/web/src/database/ObjectExplorer.vue +++ b/web/src/database/ObjectExplorer.vue @@ -1,5 +1,5 @@