• 7469阅读
  • 4回复

QT与sqlite3的连接问题 [复制链接]

上一主题 下一主题
离线jinky2004
 
只看楼主 倒序阅读 楼主  发表于: 2008-08-01
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
                    QStringList driver  = QSqlDatabase::drivers();
    QComboBox *combox = new QComboBox(this);
    combox->addItems(driver);
    QSqlDatabase database = QSqlDatabase::addDatabase("QSQLITE");
    database.setDatabaseName(tr(":memory:"));
    if(!database.open())
    {
        QMessageBox::critical(0, "Error", "Can not open database");
       
    }
    creatTable();
}
我这样连接数据库一直都连不上,一直弹出Can not open database,且combox 中也是空的
我在我的Qt安装目录下找到有那些驱动C:\qt\4.3-msvc2005\src\plugins\sqldrivers
请问,QT连接sqlite是怎么连接的
请大侠帮忙
谢谢!!
离线faytitan
只看该作者 1楼 发表于: 2008-08-04
    database.setDatabaseName(tr(":memory:"));

把那个tr和括号去掉
离线jinky2004
只看该作者 2楼 发表于: 2008-08-05
谢谢
离线jinky2004
只看该作者 3楼 发表于: 2008-08-05
但是我用QSqlError打印出来的错误是说:
QSqlDatabase: QSQLITE driver not loaded
QSqlDatabase: available drivers:
Can not open database:
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
请问,这是怎么回事?
请帮忙
谢谢
离线faytitan
只看该作者 4楼 发表于: 2008-08-05
:memory:  是内存数据库的唯一名字  加了tr强制转换字符后名字不对  就打不开了
快速回复
限100 字节
 
上一个 下一个