下面是一个完整的 createTableTrainInfo
函数实现,它会创建一个指定名称的数据库表 strTableName
,该表的结构与你提供的 SQL 语句相符。
完整代码
#include <QSqlQuery>
#include <QSqlError>
#include <QDebug>
bool createTableTrainInfo(QString strTableName) {
// SQL 创建表语句
QString createTableQuery = QString(R"(
CREATE TABLE IF NOT EXISTS %1 (
id BIGINT(20) NOT NULL AUTO_INCREMENT,
start_time BIGINT(20) NULL DEFAULT NULL,
end_time BIGINT(20) NULL DEFAULT NULL,
travel_direction VARCHAR(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL,
station_id BIGINT(20) NULL DEFAULT NULL,
load_state VARCHAR(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL,
train_no VARCHAR(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL,
locomotive_no VARCHAR(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL,
play_direction VARCHAR(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL,
file_path VARCHAR(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 CHARACTER SET=latin1 COLLATE=latin1_swedish_ci ROW_FORMAT=DYNAMIC;
)").arg(strTableName);
QSqlQuery query;
// 执行创建表语句
if (!query.exec(createTableQuery)) {
qDebug() << "Error creating table:" << query.lastError().text();
return false; // 如果失败,返回false
}
return true; // 如果成功,返回true
}
使用说明
函数参数:该函数接收一个字符串参数
strTableName
,用于定义要创建的表名。SQL语句构建:使用
QString::arg()
方法将传入的strTableName
替换到 SQL 创建表语句中。执行查询:通过
QSqlQuery::exec()
方法执行创建表的 SQL 语句,并检查执行结果。如果有错误,则打印错误信息并返回false
;如果成功,则返回true
。
注意事项
确保在调用此函数之前,你已经正确设置和打开了数据库连接。
在实际应用中,可以考虑添加更多的错误处理逻辑,以应对各种潜在的问题。
你可以将这个函数集成到你的 Qt 应用程序中,并在适当的位置调用它以创建所需的数据表。
内容由零声教学AI助手提供,问题来源于学员提问