当前位置: 代码迷 >> 其他数据库 >> 高分求解使用SQLLite遇到的有关问题
  详细解决方案

高分求解使用SQLLite遇到的有关问题

热度:6682   发布时间:2013-02-26 00:00:00.0
高分求解使用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语句打出来,执行一下子看看