免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 11427 | 回复: 9
打印 上一主题 下一主题

sqlite关于sqlite3_free_table的使用问题 [复制链接]

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015元宵节徽章
日期:2015-03-06 15:50:39
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-05 14:54 |只看该作者 |倒序浏览
因没找到关于Sqlite数据库的专题,只好先发在这里,请帮忙
情况是这样的:
    sqlite3_open("xxx.db", &db);       
    sqlite3_get_table(m_pdb,"select count(*) from tt",&value,&row,&ncol,&err);               
    sqlite3_free_table(value);  //我知道应该加上这一句,可由于某种原因这一步不能执行,
                                               //不执行这一句对程序稳定性有影响么, 望知道的朋友能告知

    sqlite3_close ( db );
  

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
2 [报告]
发表于 2008-08-05 15:27 |只看该作者
原帖由 crazyCat 于 2008-8-5 14:54 发表
因没找到关于Sqlite数据库的专题,只好先发在这里,请帮忙
情况是这样的:
    sqlite3_open("xxx.db", &db);       
    sqlite3_get_table(m_pdb,"select count(*) from tt",&value,&row,&ncol,&err);               
    sqlit ...


也可以不加,程序结束后系统会给你释放的。
但是最好显式的加上,尤其是在daemon中是必须加上的

[ 本帖最后由 Godbach 于 2008-8-5 15:28 编辑 ]

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
3 [报告]
发表于 2008-08-05 15:28 |只看该作者
用通俗的一句话就是,你申请了一块内存,但是你没有释放,出现的问题就是内存泄漏

论坛徽章:
1
双子座
日期:2015-01-04 14:25:06
4 [报告]
发表于 2008-08-05 16:47 |只看该作者
为什么不能执行?

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015元宵节徽章
日期:2015-03-06 15:50:39
5 [报告]
发表于 2008-08-05 17:20 |只看该作者
处理别人的遗留项目
在执行完sqlite3_get_table后,要在其他地方使用value,所以不能释放掉它

论坛徽章:
1
双子座
日期:2015-01-04 14:25:06
6 [报告]
发表于 2008-08-05 17:23 |只看该作者
原帖由 crazyCat 于 2008-8-5 17:20 发表
处理别人的遗留项目
在执行完sqlite3_get_table后,要在其他地方使用value,所以不能释放掉它

那后面用了再释放不就行了

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
7 [报告]
发表于 2008-08-05 17:43 |只看该作者
原帖由 crazyCat 于 2008-8-5 17:20 发表
处理别人的遗留项目
在执行完sqlite3_get_table后,要在其他地方使用value,所以不能释放掉它



那就在程序推出的时候释放吧。最好还是别让系统干这个事情。

论坛徽章:
0
8 [报告]
发表于 2008-08-05 17:59 |只看该作者
int main(int argc, char **argv)
{
sqlite3 *db;
char *zErr;
int rc;
char *sql;
208 CHAPTER 6 ■ T HE CORE C API
rc = sqlite3_open("test.db", &db);
if(rc) {
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
sql = "create table episodes(id int, name text)";
rc = sqlite3_exec(db, sql, NULL, NULL, &zErr);
if(rc != SQLITE_OK) {
if (zErr != NULL) {
fprintf(stderr, "SQL error: %s\n", zErr);
sqlite3_free(zErr);
}
}
sql = "insert into episodes values (10, 'The Dinner Party')";
rc = sqlite3_exec(db, sql, NULL, NULL, &zErr);
sqlite3_close(db);
return 0;
}


这是官方教程里的一个方法 貌似没有 sqlite3_free_table

论坛徽章:
1
双子座
日期:2015-01-04 14:25:06
9 [报告]
发表于 2008-08-05 19:19 |只看该作者
原帖由 mo_yuan_ming 于 2008-8-5 17:59 发表
int main(int argc, char **argv)
{
sqlite3 *db;
char *zErr;
int rc;
char *sql;
208 CHAPTER 6 ■ T HE CORE C API
rc = sqlite3_open("test.db", &db);
if(rc) {
fprintf(stderr, "Can't open dat ...

这里都没有sqlite3_get_table
还调用sqlite3_free_table干什么

论坛徽章:
0
10 [报告]
发表于 2008-08-05 20:59 |只看该作者
原帖由 crazyCat 于 2008-8-5 17:20 发表
处理别人的遗留项目
在执行完sqlite3_get_table后,要在其他地方使用value,所以不能释放掉它

那就不释放了啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP