zhh787101365 发表于 2022-6-25 10:52:51

MySQL数据库放入QSqlTableModel会卡死

原来用的数据库是SQL Server,运行一切正常,现在转成MySQL,连接上了没什么问题,但是将数据库放入QSqlTableModel操作会卡死连接的代码:
      db = QSqlDatabase::addDatabase("QODBC");//数据库驱动类型位sqlserver      QTextCodec *codec = QTextCodec::codecForName("UTF-8");      QTextCodec::setCodecForLocale(codec);      db.setHostName(Target_IP);//IP      db.setPort(3306);//端口号      db.setDatabaseName(Database_Name);//设置数据库名称      db.setUserName(User_Name);//登录用户      db.setPassword(User_Password);//密码      if(!db.open())      //打开数据库失败      {      }

    pModel = new QSqlTableModel(this, NSQL_Server.db);    pModel->setTable(NSQL_Server.Table_Name);    pModel->setEditStrategy(QSqlTableModel::OnManualSubmit);    pModel->select(); //到这一步软件卡死崩溃,屏蔽这句代码能正常显示数据库内容
pMode->submitAll();//这句也会卡死
用SQL Server数据库代码完全没问题,为什么MySQL就有问题?查不出原因,大神帮帮忙



liudianwu 发表于 2022-6-27 08:42:50

表里面很多数据吗?我也经常这样用,没出现过问题

foxyz 发表于 2022-10-21 13:53:55

卡死估计是你的表太大了,然后你也没有设置filter来过滤数据。如果你并不需要一次把一个表数据都加载进来,最好setFilter再select.
页: [1]
查看完整版本: MySQL数据库放入QSqlTableModel会卡死