• 7098阅读
  • 3回复

qt的MySQL数据库写入问题 [复制链接]

上一主题 下一主题
离线9605201
 
只看楼主 倒序阅读 楼主  发表于: 2009-01-10
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
2个不同数据库内的相同表
首先查询表A。怎么把表A里查询到的数据,一条一条的加入到表B内呢
如果判断获取每一条。这个循环要怎么做呢
离线XChinux

只看该作者 1楼 发表于: 2009-01-14
那得看MySQL的SQL语句支持吧,能办到。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线9605201
只看该作者 2楼 发表于: 2009-01-16
相关的SQL语句是? 我只会常用的。上面的应该是哪些?
离线sundp

只看该作者 3楼 发表于: 2009-01-16
    QSqlDatabase *dbR=new QSqlDatabase();
    *dbR = QSqlDatabase::addDatabase("QMYSQL","dbr");
    dbR->setHostName("192.168.1.201");
    dbR->setDatabaseName("clinic");
    dbR->setUserName("clinic");
    dbR->setPassword("clinic");
    if( !dbR->open())
    {
        QMessageBox::critical(0,QObject::tr("远程数据库未能连接"),dbR->lastError().text());
                return 1;
    }
    QSqlDatabase *dbL=new QSqlDatabase();
    *dbL = QSqlDatabase::addDatabase("QMYSQL","dbl");
    dbL->setHostName("localhost");
    dbL->setDatabaseName("clinic");
    dbL->setUserName("clinic");
    dbL->setPassword("clinic");
    if( !dbL->open())
    {
        QMessageBox::critical(0,QObject::tr("本地数据库未能连接"),dbL->lastError().text());
        return 1;   
    }
    QSqlQuery *sq1=new QSqlQuery(*dbL);
    QSqlQuery *sq2=new QSqlQuery(*dbR);

sq1->exec("select field1,field2,field3 from table1");
while(sq1->next())
{
  QString s="insert into table2 (field1,field2,field3...) values (";
  s=s+ sq1->value(0).asString()+",";
  s=s+ sq1->value(1).asString()+",";
  s=s+ sq1->value(2).asString()+")";
  sq2->exec(sq);
}


大致是这样,我就是这么用的。为了减少网络负担,把一些能在本地处理的东西,一些中间过程的表放在本地,只在必要的时候才访问远程表。
人境结庐<http://sundp70.blog.163.com>心远地偏
快速回复
限100 字节
 
上一个 下一个