便携式肺功能仪上位机软件故障排查-数据库修复
软件信息
版本号:
故障甄别
- 进入便携式肺功能仪上位机软件所在的文件夹
- 进入log文件夹
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A3pRmlnl-1681969287525)(便携式肺功能仪上位机软件故障排查-数据库修复.assets/image-20230420133201603.png)]
- 打开最新的log日志,一般为名称为 xxxx-xx-xx.log 的txt文本。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H3yyvKxU-1681969287526)(便携式肺功能仪上位机软件故障排查-数据库修复.assets/image-20230420133223258.png)]
- 打开文本查询报错信息
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xZWubvp3-1681969287526)(便携式肺功能仪上位机软件故障排查-数据库修复.assets/image-20230420133251727.png)]
数据库修复
- 使用msdb文件夹中的MSDbTest.exe 程序,打开程序。
- 点击打开数据库 Ctrl + o
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vYrCkaqk-1681969287527)(便携式肺功能仪上位机软件故障排查-数据库修复.assets/image-20230420133543337.png)]
- 选择需要修复的数据库文件
- 选择SQLITECIPHER 再输入密码
- 进入数据库选择需要操作的数据库表格
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fA8eWGAH-1681969287529)(便携式肺功能仪上位机软件故障排查-数据库修复.assets/image-20230420133724180.png)]
- 在中间空白处输入SQL语句进行操作。
sqlite只支持部分的表结构改变的功能
不支持字段名称的改变,但是可以新增字段
1.修改表名称
ALTER TABLE 旧表名 RENAME TO 新表名
eg: ALTER TABLE or_sql_table RENAME TO new_table;
2.添加字段
ALTER TABLE 表名 ADD COLUMN 列名 数据类型
ALTER TABLE 'IPC_FGUID' ADD 'iPassageway' VARCHAR(100) DEFAULT 0;
3.查询表结构
PRAGMA TABLE_INFO (表名)
eg: PRAGMA TABLE_INFO (new_table);
4.修改表结构字段类型
SQLite 仅仅支持 ALTER TABLE 语句的一部分功能,我们可以用 ALTER TABLE 语句来更改一个表的名字,也可向表中增加一个字段(列),但是我们不能删除一个已经存在的字段,或者更改一个已经存在的字段的名称、数据类型、限定符等等。
而修改一列无法像其他数据库那样直接以“ALTER TABLE 表名 ADD COLUMN 列名 数据类型”的方式来完成,所以要换种思路,具体步骤看下面:
--1.将表名改为临时表
ALTER TABLE "Student" RENAME TO "_Student_old";
2
--2.创建新表
CREATE TABLE "Student" ("Id" INTEGER PRIMARY KEY AUTOINCREMENT, "Name" Text);
3
--3.导入数据
INSERT INTO "Student" ("Id", "Name") SELECT "Id", "Title" FROM "_Student_old";
4
--4.更新sqlite_sequence
UPDATE "sqlite_sequence" SET seq = 3 WHERE name = 'Student';
由于在Sqlite中使用自增长字段,引擎会自动产生一个sqlite_sequence表,用于记录每个表的自增长字段的已使用的最大值,所以要一起更新下。如果有没有设置自增长,则跳过此步骤。
5
--5.删除临时表(可选)
DROP TABLE _Student_old;
长字段的已使用的最大值,所以要一起更新下。如果有没有设置自增长,则跳过此步骤。
5
–5.删除临时表(可选)
DROP TABLE _Student_old;