QT 操作SQLSERVER 连接成功,不能执行SQL语句

天长地久007 2014-11-13 10:40:13
我在终端用tsql测试是成功的。但是在qt下qDebug()<<QSqlDatabase::drivers();
QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName(QString("DRIVER={FreeTDS};"
"SERVER=%1;" //服务器名称
"port=%2"
"DATABASE=%3;"//数据库.arg("密码")名
"UID=%4;" //登录名
"PWD=%45;" //密码
).arg("192.168.1.253")
.arg(1433)
.arg("ncpjgSys")
.arg("sa")
.arg("longzhou@2014?")
);//tsql -H 112.232.114.214 -p 1433 -U sa -P longzhou@2014? -D ncpjgSys

if(!db.open())
{
qDebug("=== %s",qPrintable(db.lastError().text()));
}else
{
qDebug("==== ok");
}

QSqlQuery query(db);
// QDateTime time = QDateTime::currentDateTime();//获取系统现在的时间
// QString tm = time.toString("yyyy-MM-dd hh:mm:ss"); //设置显示格式
// QString slct = tr("insert into table1 values('10.5','2.0','2014-11-12 16:01:15','keke')");
// qDebug()<<slct;
// if(!query.exec(slct))
// qDebug("error%s",qPrintable(db.lastError().text()));
// else
// qDebug("sucess");
QString sql="insert into table1 values('10.5','2.0','2014-11-12 16:01:15','keke')";
qDebug()<<sql;
query.prepare(sql);
if(!query.exec())
qDebug("error== %s",qPrintable(db.lastError().text()));


打印信息:("QSQLITE", "QODBC3", "QODBC", "QPSQL7", "QPSQL")
==== ok
"insert into table1 values('10.5','2.0','2014-11-12 16:01:15','keke')"
QODBCResult::exec: Unable to execute statement: "[FreeTDS][SQL Server]Invalid object name 'table1'."
error==
求解决啊
...全文
616 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhonggeshiwo 2016-05-03
  • 打赏
  • 举报
回复
已解决问题,原来是sqlserver出现问题,刷新缓存就行了
zhonggeshiwo 2016-05-03
  • 打赏
  • 举报
回复
由于语句错误导致的。SQLserver在执行SQl语句时必须先加use database(database为数据库名) 请问use database在哪加,能否给个例子
天长地久007 2014-11-15
  • 打赏
  • 举报
回复
http://blog.csdn.net/lovehere33/article/details/41118405 这是解决的合集

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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