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语句打出来,执行一下子看看 -->
高分求解使用SQLLite遇到的问题
如下红字部分,我使用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语句打出来,执行一下子看看