求教Save和OpenDialog备份和还原数据库(小分帖已结,妖哥,nbzip,zephyr,来这吧)
肆水東澤 2009-06-17 09:04:49 简单的说,问题出在中文文件夹上,备份数据库:
try
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("backup database "+str+" to disk=:path");
ADOQuery1->Parameters->ParamByName("path")->Value=SaveDialog1->FileName+" ";
ADOQuery1->ExecSQL();
Form2->Close();
delete Form2;
ShowMessage("数据库备份成功!");
}
备份时,如果是中文文件夹,有个几个中文,文件保存时,从后往前,少几个,包括“.”也算,不是完整的文件形式XXX.bak
是XXX.b或XXX形式,我将就解决的办法是SaveDialog1->FileName路径后,多加了N个空格。。。。。。,备份不是中午文件夹没事,字母或符号的文件夹,都没问题。
还原数据库:
AnsiString name;
name="sanbjc1";
//FileListBox1->Items->Strings[FileListBox1->ItemIndex];
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("restore database "+name+" from disk=:path");
ADOQuery1->Parameters->ParamByName("path")->Value=FileListBox1->FileName; //+".bak"
ADOQuery1->ExecSQL();
还原到不会文件少字母,就是如果在中文件夹下,还原时报错“无法打开备份设备'd:\新建文件夹\ddd',设备出现错误或设备脱机”。字母或符号文件夹下没事