前提条件:Qt Creater5.4.1 、SQLServer2005 express 、 win7 32位
1.先搞数据源,(至于为什么,因为网上这么说)
先在开始搜索“ODBC”,找到ODBC数据源,然后点进去
然后点添加,找到Sql Server,点完成
输入以下内容:服务器我的是本机,然后下一步
因为我没有设置Sql Server验证方式直接使用Windows验证,然后下一步
这里有个更改数据库,改成自己想用的就行了。然后点完成就行了,(在这里改默认数据库)
之后有个测试,只要是填对了应该没问题
2.找到Sql Server 配置管理器找到网络配置,然后点开那个什么协议,找到右边的tcpip,然后启动它
右键属性设置tcp端口为1433,只要动态端口我也没管它,后来自动变成37178了(至于这一步有没有必要我不知道,因为这个步骤是在前面做的,如果要验证其必要性可以先不设置,你看看能不能成功,如果能成功说明没有必要设置这一步)
3.qt代码:创建Qt empty qmake project项目,然后添加main.cpp文件,pro文件中添加 QT += sql
还有一事要将就是前面数据源默认数据库我改了,你自己新建一个测试数据库,然后在ODBC数据源配置中改为新建的数据库就行了
#include <QSql>
#include <QDebug>
#include <QSqlError>
#include <QSqlDatabase>
#include <QSqlQuery>
bool OpenDatabase()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); //数据库驱动类型为SQL Server
qDebug()<<"ODBC driver?"<<db.isValid();
QString dsn = QString::fromLocal8Bit("testdsn"); //数据源名称
db.setHostName("localhost"); //选择本地主机,127.0.1.1
db.setDatabaseName(dsn); //设置数据源名称
//一开始我屏蔽了下边两行
db.setUserName("sa"); //登录用户
db.setPassword("root"); //密码
if(!db.open()) //打开数据库
{
qDebug()<<db.lastError().text();
qDebug()<<"i am";
return false; //打开失败
}
else
{
qDebug()<<"database open success!";
QSqlQuery query(db); //查询Card表并输出,测试能否正常操作数据库
query.exec("CREATE TABLE Persons(Id_P int,LastName varchar(255),dd int)");
query.exec("insert into Persons values(1,'heh',2)");
//query.exec("Create database data0723");
query.exec("delete from Persons where dd=2");
query.exec("select *from Persons");
while(query.next())
{
qDebug()<<query.value(0).toInt() <<query.value(1).toString()<<query.value(2).toInt();
}
}return true;
}
int main(int argc, char *argv[])
{
if(!OpenDatabase())
return 1;
}