• 8884阅读
  • 3回复

用QString怎么写sql语句呢?(含有变量的) [复制链接]

上一主题 下一主题
离线jinyu
 
只看楼主 倒序阅读 楼主  发表于: 2008-10-09
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
eg:  sql="insert into user values('jinyu','123')";
用QString怎么写?
QString name="jinyu",passwd="123";
QString  sql=?
[ 此贴被jinyu在2008-10-09 20:54重新编辑 ]
离线XChinux

只看该作者 1楼 发表于: 2008-10-09
QSqlQuery q;
q.prepare("INSERT INTO user VALUES(?, ?)");
q.addBindValue("jinyu");
q.addBindValue(123);
q.exec();

看一下QSqlQuery类的addBindValue()方法。


如果单纯组SQL语句的话:
QString sql = QString("INSERT INTO users VALUES('%1', %2)").arg("jinyu").arg(123);
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线jinyu
只看该作者 2楼 发表于: 2008-10-09
谢谢总版主,呵呵。
这样也可以
QString name="jinyu",passwd="123";
QString sql="insert into user values('" +name+ "','" +passwd+ "')";
sql语句中含有变量的写法
离线foxyz

只看该作者 3楼 发表于: 2008-10-10
QSqlQuery q;
q.prepare("INSERT INTO user VALUES(?, ?)");
q.addBindValue("jinyu");
q.addBindValue(123);

这是最标准的用法,使用holder(?)(有些SQL语法是 :Holder Name)
可以提高SQL的执行速度,因为SQL query不需要每次都重新编译。
快速回复
限100 字节
 
上一个 下一个