找回密码
 立即注册
收起左侧

重发这个问题 数据异常

3
回复
4617
查看
[复制链接]
累计签到:4 天
连续签到:1 天
来源: 2014-5-15 11:20:02 显示全部楼层 |阅读模式

马上注册,查看详细内容!注册请先查看:注册须知

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
  1. SqlDatabase db = QSqlDatabase::addDatabase("QODBC");

  2.     db.setHostName("127.0.0.1");
  3.     QString dsn = QString::fromLocal8Bit("DRIVER={SQL SERVER};SERVER=127.0.0.1;DATABASE=xxxxx");
  4.     db.setDatabaseName(dsn);
  5.     db.setUserName("xxxxx");
  6.     db.setPassword("xxxx" );
  7.     db.open();
  8.     ///////////////////////naodu
  9.     QSqlQuery   querynd1(db);
  10.     querynd1.exec("select top 1 ID, ReceiveTime,DataValue,SensorCode from  [xxxxxs].[dbo].[xxxxx_Table] order by ReceiveTime  desc ");
  11.     if(querynd1.next())
  12.     {
  13.         ndid = querynd1.value(0).toInt();
  14.         ndrecvtime= querynd1.value(1).toString();
  15.         nddataValue=querynd1.value(2).toFloat();
  16.         ndsensorCode=querynd1.value(3).toString();
  17.         QString naoduIdsqlCmd=QString ("select ID from [xxxxx].[dbo].[Sensor] where Code='%1' ").arg(ndsensorCode);
  18.         QSqlQuery querySensorId(db);
  19.         querySensorId.exec(naoduIdsqlCmd);
  20.         if(querySensorId.next())
  21.         {
  22.             naoduId=querySensorId.value(0).toInt();
  23.         }
  24.     }
  25.    

  26.     QSqlDatabase mysqldata= QSqlDatabase::addDatabase("QMYSQL");
  27.     mysqldata.setHostName("xxxxxxx");
  28.     mysqldata.setPort(3306);
  29.     mysqldata.setDatabaseName("ixxxxxx");
  30.     mysqldata.setUserName("xxxx");
  31.     mysqldata.setPassword("xxxxxxxx");
  32.     mysqldata.open();

  33.     ///////////////////naodu
  34.     QSqlQuery querynd2(mysqldata);
  35.     QString ndsqlCmd=QString ("INSERT INTO ib_data_wusu "
  36.                               "VALUES (NULL,%1,'%2',%3,0,'%4')").arg(naoduId).arg(ndsensorCode).arg(nddataValue).arg(ndrecvtime);
  37.     querynd2.exec(ndsqlCmd);
复制代码
回复

使用道具 举报

累计签到:4 天
连续签到:1 天
2014-5-15 11:21:40 显示全部楼层
额  我写的问题去哪里  好吧 在写一遍  注释掉任何一个数据库的操作  执行良好 但是只要两个一起执行 只能运行一次 并且页面出现win32异常  请问代码哪写的有问题
回复 支持 反对

使用道具 举报

累计签到:4 天
连续签到:1 天
2014-5-16 15:11:13 显示全部楼层
都没人回答我 好吧 我自己回答自己  我知道问题的原因了  现在吧=把代码贴出来  以后谁遇到这个问题可以直接参考下
  1. QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");

  2.     db.setHostName("127.0.0.1");
  3.     QString dsn = QString::fromLocal8Bit("DRIVER={SQL SERVER};SERVER=127.0.0.1\\MTIMESQLSERVER;DATABASE=xxxxx");
  4.     db.setDatabaseName(dsn);
  5.     db.setUserName("xxxxx");
  6.     db.setPassword("xxxx" );
  7.     db.open();
  8.     ///////////////////////naodu
  9.     QSqlQuery   querynd1(db);
  10.     querynd1.exec("select top 1 ID,ReceiveTime,DataValue,SensorCode from  Table order by ID  desc");
  11.     bool a =querynd1.exec();
  12.     QMessageBox::information(NULL,"11111111",querynd1.lastError().text());

  13.     if(a)
  14.     {
  15.         while(querynd1.next())
  16.             {
  17.                 ndid =querynd1.value(0).toInt();
  18.                 ndrecvtime= querynd1.value(1).toString();
  19.                 nddataValue=querynd1.value(2).toFloat();
  20.                 ndsensorCode=querynd1.value(3).toString();
  21.                 QString naoduIdsqlCmd=QString ("select ID from [table] where Code='%1' ").arg(ndsensorCode);
  22.                 QSqlQuery querySensorId(db);
  23.                 querySensorId.exec(naoduIdsqlCmd);
  24.                 if(querySensorId.next())
  25.                 {
  26.                     naoduId= 20;//querySensorId.value(0).toInt();
  27.                 }
  28.             }

  29.     }
  30.     else
  31.     {
  32.         QMessageBox::information(NULL,NULL,querynd1.lastError().text());
  33.     }
  34.     db.close();
复制代码
回复 支持 反对

使用道具 举报

累计签到:168 天
连续签到:1 天
2014-5-19 09:03:44 显示全部楼层
大段代码看起来很难受的。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了