代码审核学到的两个delphi内存泄漏问题
今天在同事的打击之下才真正明白了StrToPchar的用法:看StrToPchar的源代码才知道此函数内是有分配内存的,所以该函数只用在一种情况就是类似下面情况
Procedure fun
Var
fileName:pChar;
begin
fileName=strToPchar(AStrName);
……
fileName.free//用过该函数时必须要手动释放掉内存;
end;
绝对不能将其用在调用一个需要传递Pchar类型的函数中,此时如果需要将str转为pcahr,必须强制进行转换,如果此str用到+连接,则必须先定义一个str变量类型后再用Pchar自动转换。否则会造成StrToPchar中的申请的内存泄漏掉。
控件的释放问题,只要知道新生成的控件的父控件指针,就可以通过循环其父控件依次释放掉所有的子控件变量。
今天遇到两个关于数据库的问题:1.执行收缩数据库日志的批处理脚本错误的一个解决方法,先停止或分离掉该数据库,然后删除日志文件,再重新附加该数据库文件即可。2.连接sqlserver2005数据库时用TCP动态端口速度较慢,改为TCP端口连接程序运行连接数据库速度快些。