首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

sqlite 删除数据库中超过30天的数据 ,操作失败删除数据操作失败,异常代码:columns GropID, Ctime are not unique

2013-02-24 
sqlite 删除数据库中超过30天的数据 ,操作失败删除数据操作失败,错误代码:columns GropID, Ctime are not

sqlite 删除数据库中超过30天的数据 ,操作失败删除数据操作失败,错误代码:columns GropID, Ctime are not unique

/*删除数据库中超过存储周期30天的数据*/
void DeleteDataOver30(sqlite3* conn)
{
char sql[200]="";
char *err_msg=NULL;
SYSTEMTIME sys;
GetLocalTime(&sys);
if(sys.wHour==2&&sys.wMinute<1)
{
time_t m_time=time(NULL);//utc时间
int DeleteTime=m_time-UTC2010-DATAPERIOD;
sprintf_s(sql,sizeof(sql),"DELETE FROM Grp WHERE Ctime<%d",DeleteTime);
if(sqlite3_exec(conn,sql,NULL,0,&err_msg)!=SQLITE_OK)
{
fprintf(stderr,"删除数据操作失败,错误代码:%s\n",err_msg);
sprintf_s(buffer,sizeof(buffer),"删除数据操作失败,错误代码:%s",err_msg);
WriteLog(buffer);

}
else
{
printf("操作成功,删除超出存储周期的数据\n");
WriteLog("操作成功,删除超出存储周期的数据");
}
}

}


此段程序目的,删除保存时间超过30天的数据。被调用的时候,删除失败,错误代码:删除数据操作失败,错误代码:columns GropID, Ctime are not unique;
数据库Grp表的结构: 
 Ctime GropId 为组合键。
大神求指导 
[解决办法]
在其它地方被引用了?
[解决办法]
30天不长啊。。。
[解决办法]
先手动执行SQL语句,成功后在写到C代码中。

热点排行