ZBLOG

createTableCarriageInfo() { QSqlQuery query(m_db); return true; } 用Qt C++ 补全上述接口 实现创建一个 strTableName为名称的数据库表,表字段如下 CREATE TABLE `carriage_info` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `train_id` bigint(20) NULL DEFAULT NULL, `ca...

要在 Qt C++ 中实现 createTableCarriageInfo() 方法来创建一个名为 carriage_info 的数据库表,你需要使用 QSqlQuery 类执行 SQL 语句。以下是补全的代码示例:

  1. #include <QSqlQuery>
  2. #include <QSqlError>
  3. #include <QDebug>
  4. bool createTableCarriageInfo(QSqlDatabase &m_db, const QString &strTableName) {
  5. // 定义 SQL 创建表语句
  6. QString createTableSQL = QString("CREATE TABLE IF NOT EXISTS `%1` ("
  7. " `id` bigint(20) NOT NULL AUTO_INCREMENT,"
  8. " `train_id` bigint(20) NULL DEFAULT NULL,"
  9. " `carriage_index` int(11) NULL DEFAULT NULL,"
  10. " `station_id` bigint(20) NULL DEFAULT NULL,"
  11. " `carriage_type` varchar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL,"
  12. " `carriage_no` varchar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL,"
  13. " `speed` double NULL DEFAULT NULL,"
  14. " `carriage_length` varchar(255) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL,"
  15. " PRIMARY KEY (`id`) USING BTREE"
  16. ") ENGINE=InnoDB AUTO_INCREMENT=1 "
  17. "CHARACTER SET=latin1 COLLATE=latin1_swedish_ci ROW_FORMAT=DYNAMIC;")
  18. .arg(strTableName);
  19. // 创建查询对象
  20. QSqlQuery query(m_db);
  21. // 执行创建表的 SQL 查询
  22. if (!query.exec(createTableSQL)) {
  23. qDebug() << "Failed to create table:" << query.lastError().text();
  24. return false;
  25. }
  26. return true;
  27. }

使用说明:

  • 参数:函数接受两个参数,数据库连接(m_db)和表名(strTableName)。
  • SQL语句:我们构造了一个 SQL CREATE TABLE 的语句,该语句将根据提供的表名创建所需字段。
  • 执行查询:使用 exec() 方法执行 SQL 命令,如果失败,会输出错误信息并返回 false。
  • 成功返回:如果执行成功,函数将返回 true。

调用示例:

你可以像下面这样调用这个函数:

  1. QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); // 示例使用 MySQL 数据库
  2. db.setHostName("localhost");
  3. db.setDatabaseName("your_database_name");
  4. db.setUserName("username");
  5. db.setPassword("password");
  6. if (db.open()) {
  7. if (createTableCarriageInfo(db, "carriage_info")) {
  8. qDebug() << "Table created successfully!";
  9. } else {
  10. qDebug() << "Failed to create table.";
  11. }
  12. } else {
  13. qDebug() << "Failed to connect to database:" << db.lastError().text();
  14. }

请确保已经在项目中包含必要的 Qt 模块,例如 Qt SQL,并且正确设置数据库连接的信息。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=22004

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?