当前位置:编程学习 > wap >>

qt 连接sql server~~特急~~高手进

代码和问题如下~~请高手解决~~不胜感激~~



代码:

#ifndef SQLSERVER_H
#define SQLSERVER_H

#include <QMessageBox>
#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>

static bool connection(){
    QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");
    db.setDatabaseName("DRIVER={SQL SERVER};""SERVER=SD-20100913XKPX;""DATABASE=MySale;""UID=SD-20100913XKPX;""PWD=""");
    if(!db.open()){
        QMessageBox::critical(0,"cannot open database",db.lastError().databaseText(),QMessageBox::Cancel);
        return false;
    }
    else{
        QMessageBox::information(0,"connect Database","connect success!!",QMessageBox::Ok);
        return true;
    }
    QSqlQuery query;
    query.exec("create table student(id int,name vchar)");
    query.exec("insert into student values(0,'fatdog0')");
    return true;
}

#endif // SQLSERVER_H --------------------编程问答--------------------

        db = QSqlDatabase::addDatabase("QODBC");
QString dsn = QString("DRIVER={SQL SERVER};")+QString("SERVER=%1%2").arg(m_hostname).arg(";")+ QString("DATABASE=%1").arg(m_dbname);

db.setDatabaseName(dsn);
db.setUserName(m_username); 
db.setPassword(m_passward);
if(!db.open()) 
{
QMessageBox::critical(0, QObject::tr("Database Error"),db.lastError().text());
return false;
} --------------------编程问答-------------------- 这个可以成功,但不知道有没有可供您借鉴的:
bool ProcessScopeDialog::OutputReportToExcelFile(QString &strFilePath)
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); 
    QString dbname="Driver={Microsoft Excel Driver (*.xls)};Readonly=0;DriverId=790;Dbq=" + strFilePath + ";"; 
    db.setDatabaseName(dbname); 
    if (db.open())
    { 
        QSqlQuery query(db); 
        QString strSql = QString("DROP TABLE level");
        query.exec(strSql);
        strSql = "create table level(LevelNumber number, SetPressure float, FactPressure float, AbsoluteError float, RelativeError float, ErrorRange number)";
        if (!query.exec(strSql))
        {
            db.removeDatabase("QODBC"); 
            return false;
        }
        
        for (int i=0; i<m_systemParam.m_nShowLevelCount; i++)
        {
            strSql = QString("INSERT INTO [level](LevelNumber, SetPressure, FactPressure, AbsoluteError, RelativeError, ErrorRange) "
                " VALUES (%1, %2, %3, %4, %5, %6)")
                .arg(i+1)
                .arg(m_levelVoltages[i].m_dSetPressure, 0, 'f', 2)
                .arg(m_levelVoltages[i].m_dFactPressure, 0, 'f', 2)
                .arg(m_levelVoltages[i].m_dAbsoluteError, 0, 'f', 2)
                .arg((m_levelVoltages[i].m_dAbsoluteError / m_levelVoltages[i].m_dSetPressure) * 100.0, 0, 'f', 2)
                .arg(m_levelParamsKR3001[i].m_nAllowErrorRange);
            if (!query.exec(strSql))
            {
                db.removeDatabase("QODBC"); 
                return false;
            }
        }
    }
    else
    { 
        db.removeDatabase("QODBC"); 
        return false;
    } 
    db.removeDatabase("QODBC"); 
    
    return true;
}
补充:移动开发 ,  Qt
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,