DataModule1.backupdata.sql.clear;
DataModule1.backupdata.SQL.Text:='backup database yferp to disk='''+DirectoryListBox1.GetItemPath(DirectoryListBox1.ItemIndex)+'\'+datetostr(date)+'.bak'+'''';
DataModule1.backupdata.ExecSQL;
application.MessageBox(pchar(数据已备份到'+DirectoryListBox1.GetItemPath(DirectoryListBox1.ItemIndex)+'\'+datetostr(date)+'.bak'),'备份成功',mb_iconinformation);
DataModule1.backupdata.close;
----------------------------------------------
以上代码为备份数据库,但是每打开程序只能备份一次,第二次备份就提示读内存地址错误,重新打开程序再备份却可以,也是只能备份一次,请问应该如何正确释放内存!!
DataModule1.backupdata.SQL.Text:='backup database yferp to disk='''+DirectoryListBox1.GetItemPath(DirectoryListBox1.ItemIndex)+'\'+datetostr(date)+'.bak'+'''';
DataModule1.backupdata.ExecSQL;
application.MessageBox(pchar(数据已备份到'+DirectoryListBox1.GetItemPath(DirectoryListBox1.ItemIndex)+'\'+datetostr(date)+'.bak'),'备份成功',mb_iconinformation);
DataModule1.backupdata.close;
----------------------------------------------
以上代码为备份数据库,但是每打开程序只能备份一次,第二次备份就提示读内存地址错误,重新打开程序再备份却可以,也是只能备份一次,请问应该如何正确释放内存!!
还有一句写掉了
DataModule1.backupdata.sql.clear;
DataModule1.backupdata.SQL.Text:='backup database yferp to disk='''+DirectoryListBox1.GetItemPath(DirectoryListBox1.ItemIndex)+'\'+datetostr(date)+'.bak'+'''';
DataModule1.backupdata.ExecSQL;
application.MessageBox(pchar(数据已备份到'+DirectoryListBox1.GetItemPath(DirectoryListBox1.ItemIndex)+'\'+datetostr(date)+'.bak'),'备份成功',mb_iconinformation);
DataModule1.backupdata.close;
DataModule1.backupdata.free;---->去掉这句就中以了...但是我想问一下,在CLOSE之后是不是没有必要用FREE??应该在哪 些时候用FREE呢?
谢谢楼上三位!!!
去掉即可。
如果非要的话,在最前面加上
backupdata := tadoquery.create即可。总的来说:去掉最好,!!!:)
存在form上的一般不需要