MySql数据库通过Select语句返回调…

来源:互联网 发布:软件逻辑笔试题 编辑:程序博客网 时间:2024/06/10 00:44
DELIMITER //
DROP PROCEDURE IF EXISTS updateMachine //
CREATE PROCEDURE updateMachine
( IN inID VARCHAR(32), IN inName VARCHAR(32), IN inModeVARCHAR(32), IN inEPIDType TINYINT
, IN inISOCenter FLOAT, IN inSSD FLOAT, IN inScale TINYINT, INinWidth FLOAT, IN inHeight FLOAT, IN inIsBuild TINYINT)

BEGIN
DECLARE FLAG INT;
SET FLAG = 0;
IF inMode != '' THEN
IF !EXISTS(SELECT ID FROM Evivo.Machine WHERE ID = inMode)THEN
SELECT -1, 'MachineMode doesn\'t exists';
SET FLAG = -1;
END IF;
END IF;
UPDATE Evivo.Machine SET  Name = inName, Mode= inMode, EPIDType = inEPIDType, ISOCenter = inISOCenter
, SSD = inSSD, Scale = inScale, Width = inWidth, Height =inHeight, IsBuild = inIsBuild WHERE ID = inID;
END //
DELIMITER  ;

在Qt中用QSqlQuery类中的方法.next()指向Select返回结果,然后根据下标即可读取数据库当前记录。所以当在C++中嵌套了Sql语句时,应该使用Select语句向调用函数返回常值记录确认SQL是否达到预期结果而不是单纯语法执行通过。
0 0