高分求解使用SQLLite遇到的有关问题
高分求解使用SQLLite遇到的问题
如下红字部分,我使用insert创建记录时是正确的,但第二次我是用update该数据时,函数调用显示正常,但数据库内容没有做相应更改,请问是什么原因,该如何修改。
------解决方案--------------------
UPDATE 语句是什么,在SQLITE中直接运行能否成功,表是否有约束、主键、外键,是否有提示
------解决方案--------------------
_sz是对的。
内容是什么,在SQLITE中直接运行能否成功,提示什么,直接出错?
------解决方案--------------------
把sql语句打出来,执行一下子看看
如下红字部分,我使用insert创建记录时是正确的,但第二次我是用update该数据时,函数调用显示正常,但数据库内容没有做相应更改,请问是什么原因,该如何修改。
- C/C++ code
bool CSpeUiXApp::SaveRerviroInfs() { USES_CONVERSION; try { for (int i = 0; i < 4; i++) { char _szName[64]; sprintf_s(_szName, 63, ("infreserviorname%d"), i); char _sz[256]; sprintf_s(_sz, 255, "select ParamValue from Params where ParamName='%s'", _szName); CppSQLite3Query q = m_dbSpe.execQuery(_sz); if (q.eof()) sprintf_s(_sz, 255, "insert into Params values('%s','%s');", _szName , W2A(theDefaultReserviorInfName.m_strBottleTag[i])); else { q.nextRow(); [color=#FF0000]sprintf_s(_sz, 255, "update Params set ParamValue = '%s' where ParamName='%s';" ,_szName ,W2A(theDefaultReserviorInfName.m_strBottleTag[i]));[/color] } m_dbSpe.execDML(_sz); sprintf_s(_szName, 63, ("bigbottlreserviorname%d"), i); sprintf_s(_sz, 255, "select ParamValue from Params where ParamName='%s'", _szName); q = m_dbSpe.execQuery(_sz); if (q.eof()) sprintf_s(_sz, 255, "insert into Params values('%s','%s')", _szName , W2A(theDefaultReserviorInfName.m_strBigBottleTag[i])); else { sprintf_s(_sz, 255, "update Params set ParamValue = '%s' where ParamName='%s';",_szName , W2A(theDefaultReserviorInfName.m_strBigBottleTag[i])); q.nextRow(); } m_dbSpe.execDML(_sz); } } catch (CppSQLite3Exception& e) { cout << e.errorCode() << ":" << e.errorMessage() << endl; return false; } return true; }
------解决方案--------------------
UPDATE 语句是什么,在SQLITE中直接运行能否成功,表是否有约束、主键、外键,是否有提示
------解决方案--------------------
_sz是对的。
内容是什么,在SQLITE中直接运行能否成功,提示什么,直接出错?
------解决方案--------------------
把sql语句打出来,执行一下子看看