QT连接数据库

beautycherry 2011-10-30 10:16:44
#include <QtCore/QCoreApplication>
#include <QtSql>

bool createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setHostName("雨潇潇-PC\SQLSERVER");
db.setDatabaseName("test");
db.setUserName("sa");
db.setPassword("woshi123");
if(!db.open())
{
return false;
}
return true;
}




int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

if(!createConnection())
return 1;
QSqlQuery query; //以下执行相关QSL语句
query.exec("INSERT INTO userinfo VALUES('dingwen','765','1')");
return a.exec();
}
运行后没结果,能帮忙看看要怎么改吗?谢谢啦!
...全文
149 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ryanlunar 2011-11-03
  • 打赏
  • 举报
回复
运行起来肯定没结果撒
query.exec 执行之后 只会返回bool型数据 如true和false
没有任何输出项
你可以用qDebug()<<query.exec("")括号里面是你要执行的SQL命令
这样 通过看返回结果true false
就能知道你的数据库连接好没。。。。
就这样好了 2011-11-02
  • 打赏
  • 举报
回复
setHostName方法写Ip地址不是很好么?
另外db的生存期是一个问题
还有就是看样子是链接MS-SQL数据库了,那么你确定ODBC的驱动已经正确编译好了?
Buddy 2011-11-01
  • 打赏
  • 举报
回复
在执行查询等操作前,先确认要查询的目标数据库
Buddy 2011-11-01
  • 打赏
  • 举报
回复
路过拉过来改来改
刀刀亮 2011-11-01
  • 打赏
  • 举报
回复
精辟……
[Quote=引用 3 楼 yzhj2005 的回复:]
QSqlQuery query;
query要关联数据库 query(db);

"雨潇潇-PC\SQLSERVER"中药使用\\
中文要使用中文编码GB2312等

QSqlDatabase db;
在函数createConnection()
中是临时变量,函数结束时就数据库连接被释放了;改成全局变量或放到main中;
[/Quote]
yzhj2005 2011-10-31
  • 打赏
  • 举报
回复
QSqlQuery query;
query要关联数据库 query(db);

"雨潇潇-PC\SQLSERVER"中药使用\\
中文要使用中文编码GB2312等

QSqlDatabase db;
在函数createConnection()
中是临时变量,函数结束时就数据库连接被释放了;改成全局变量或放到main中;
Inhibitory 2011-10-31
  • 打赏
  • 举报
回复
使用qDebug() 输出些信息看一下有什么错误提示
masterz 2011-10-31
  • 打赏
  • 举报
回复
C++里面别忘了用"\\"
donwmufromdying 2011-10-31
  • 打赏
  • 举报
回复

bool createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setHostName("雨潇潇-PC\SQLSERVER"); 改成
db.setHostName( tr("雨潇潇-PC\\SQLSERVER") ); 或者你设置一个英文的DSN
db.setDatabaseName("test");
db.setUserName("sa");
db.setPassword("woshi123");
if(!db.open())
{
qDebug() << db.lastError().text();
return false;
}
return true;
}

其它没看出来有什么错误。

16,212

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧