365体育备用网址
QT QSqlQuery数据库
日期:2019-04-19
SQL,QSqlQuery提供SELECT,INSERT,UPDATE删除操作记录的数据库来执行操作。
SELECT操作:QSqlQueryquery。咨询。
(exec时引用(“SELECTname,salaryFROMemployeeWHEREsal50000”))。
Next()){QStringname = query。
价值(0)
toString(); intsalary = query。
价值(1)。
覆盖:(); QSqlQuery的qDebug()名称}:next(),QSqlQuery :(上),QSqlQuery:first(),QSqlQuery :(最后,QSqlQuery :(搜索),旁边是primerauno,下一个从记录中到处获取最后一个。
INSERT://单个插入QSqlQueryquery数据。咨询。
准备(“INSERTINTOemployee(ID,Name,Salary)”“VALUES(:ID:Name:Salary)”)。咨询。
bindValue(“ID”,1001)。咨询。
bindValue(“名称”,“ThadBeaumont”);咨询。
bindValue(“薪水”,65000);咨询。
exec(); //批量插入数据QSqlQueryquery。咨询。
准备(“insertintomyTablevalues ??(?
)“); QVariantListints; ints123query。
addBindValue(整体); QVariantListnames;名称“Harald”“Borris”“Tron”QVariant(QVariant:string);咨询。
addBindValue(Name); if(!
会诊
execBatch())qDebug()查询。
最后的错误(); UPDATE操作:QSqlQueryquery。咨询。
UPDATEemployeeSETsalary =“(准备
WHEREid = 1.003“)查询。
bindValue(0.70000)。咨询。
exe file();删除操作。QSqlQueryquery。咨询。
执行(“DELETEROMemployeeWHEREid = 1.007”)。事务:QSqlDatabase:Database()。
Transaction(); QSqlQueryquery;咨询。
exec(“SELECTidFROMemployeeWHEREname ='TorildHalvorsen'”),如果显示。
Next()){intemployeeId = query。
价值(0)
覆盖:();咨询。
Exec(“INSERTINTOproject(ID,Name,OWNERID)”“值(201,'Manhattan plan',”+ QString:number(EMPLOYEEID)+“)”);}QSqlDatabase:database()。
Commit();数据库引擎兼容的数据库事务处理,QSqlDriver函数:hasFeature方法(QSqlDriver:transaction)返回true。
事务(初始化事务):调用QSqlDatabase。
执行交易后,您想要工作。
检查事务,或QSqlDatabase(commit):: rollback()取消已完成的事务,然后运行QSqlDatabase。
QSqlDriver这里:hasFeature方法(QSqlDriver:QuerySize)例如,您可以快速查看有关行数的统计信息。
QSqlQueryquery; intnumRows;咨询。
exec(“SELECTname,salaryFROMemployeeWHEREsal50000”); QSqlDatabasedefaultDB = QSqlDatabase:Database()(如果还是DefaultDB)。
Controller() - hasFeature方法(QSqlDriver:QuerySize))={numRows数字查询。
Size();}其他{// thiscanbeveryslowquery。
Last(); numRows number = query。
()+ 1;}存储过程:AsciiToInt()存储在数据库过程中。
但是,事实是“EXEC”我认为对于SQL Server存储过程,正如我在互联网上看到的,我不知道,但在这里,“CALL”!
保留问题QSqlQueryquery。咨询。
(()准备CALLA scii ToInt?
)“);咨询。
bindValue(0,“A”)。咨询。
bindValue(1.0,QSQL:out)。