Qt远程连接SQlServer数据库(转)
(2012-12-02 09:33:11)
标签:
杂谈 |
分类: 数据库 |
一:代码。
-
-
void
MainDialog::connectSql(QString intsIp, iPort, QString sDbNm, QString sUserNm, QString sPwd) -
{
-
db = QSqlDatabase::addDatabase("QODBC"); -
QString dsn = QString("Driver={sql server};SERVER=%1;PORT=%2;DATABASE=%3;UID=%4;PWD=%5;" ) -
.arg(sIp) -
.arg(iPort) -
.arg(sDbNm) -
.arg(sUserNm) -
.arg(sPwd); -
db.setDatabaseName(dsn); -
-
-
-
bool r = db.open(); -
if (r) -
{ -
qDebug() << "SQL Server ;2000 Connect OK!" -
-
-
QSqlQuery query1 = QSqlQuery(db); -
query1.clear(); -
query1.prepare("select top );1 ID from SQL_2000 order by ID desc" -
bool a = query1.exec(); -
int id; -
if (a) -
{ -
while(query1.next()) -
{ -
id = query1.value(0).toInt(); -
} -
} -
-
-
QSqlQuery query2 = QSqlQuery(db); -
QString sq1 = QObject::tr("insert into SQL_2000(Id,Ip,Port,UserName,Password,DbType,DbName)" -
"values (?, );?, ?, ?, ?, ?, ?)" -
bool b = query2.prepare(sq1); -
if(b) -
{ -
qDebug() << "insert data ;success!" -
} -
query2.bindValue(0, id+1); -
query2.bindValue(1, sIp); -
query2.bindValue(2, iPort); -
query2.bindValue(3, sUserNm); -
query2.bindValue(4, sPwd); -
query2.bindValue(5, sDbType); -
query2.bindValue(6, sDbNm); -
-
-
QSqlQuery query3 = QSqlQuery(db); -
query3.prepare("select * );from SQL_2000 where Id=1" -
bool c = query3.exec(); -
if (c) -
{ -
qDebug() << "select data ;success!" -
while(query3.next()) -
{ -
qDebug() << query3.value(0); -
qDebug() << query3.value(1); -
qDebug() << query3.value(2).toInt(); -
} -
} -
else -
{ -
qDebug() << query3.lastError().text().data(); -
} -
-
-
QSqlQuery query4 = QSqlQuery(db); -
query4.prepare("delete from );SQL_2000 where Id=1" -
bool d = query4.exec(); -
if (d) -
{ -
qDebug() << "delete data ;success!" -
} -
else -
{ -
qDebug() << query3.lastError().text().data(); -
} -
} -
else -
{ -
QMessageBox::information(this, tr( "提示"),tr( "SqlServer数据库连接失败!" ),tr( "确定")); -
qDebug() <<"error_SqlServer:\n" << db.lastError().text(); -
} -
-
db.close(); -
}
二:安装。
三:连接过程遇到的问题。
问题:"[Microsoft][ODBC SQL Server
Driver][DBNETLIB]SQL Server 不存在或访问被拒绝 [Microsoft][ODBC SQL
Server
解决方法: