2006年02月23日 星期四
PostgreSQL执行查询等操作要注意释放内存
用PQexec执行SQL语句,一定要用PGresult指针将结果记录下来,并用PQclear 释放,否则内存泄露非常严重。
PQclear 释放于PGresult相关联的存储空间. 任何不再需要的查询结果在不需要的时候都应该用 PQclear释放掉.
void PQclear(PQresult *res);
你可以保留PGresult对象任意长的时间; 当你提交新的查询时它并不消失, 甚至你断开联接后也是这样.要删除它,你必须调用 PQclear.不这么做将导致前端的存储器泄漏.
另外,程序中lsb_geteventrec()得到的eventRec结构一直重用同一处内存,但是由于日志文件中事件结构的大小不同,程序在执行中内存可能会稍微增加一些,目前看属于正常情况。
2006年01月13日 星期五
解决phpPgAdmin中文显示问题
由于Mysql数据库编码为latin1,为了能够与Mysql更好的兼容,PostgreSQL数据库建库的时候选择编码也为latin1
此时web上的jsp页面需指定 charset=8859_1,可以正常显示中文
但是在PostgreSQL的web管理工具phpPgAdmin中,所有的中文全部显示为乱码
解决方法,修改文件phpPgAdmin/classes/Misc.php
第320行
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset={$lang['appcharset']}\" />\n";为
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312 \" />\n";
则均可显示正常。
下面可以专心致志写程序了。显示问题困扰了我有两三个礼拜。轻松了!