這是我的備份按鈕click的代碼:
string Mysql,bfname,fname,name
getfilesavename("備份到",fname,name,"db","資料庫檔案(*.db),*.db")
bfname=trim(fname)
mysql="BACKUP DATABASE TO '"+fname+""
execute immediate :Mysql USING SQLCA;//運用SQL陳述句立刻執行備份
if sqlca.sqlcode=0 then
messagebox("資訊提示","備份成功",information!,OK!)
else
messagebox("資訊提示","備份失敗",information!,OK!)
end if
我已經把getfilesavename的擴展名改為“db”了,為什么備份出來擴展名還是帶.1?
另,問一下備份的這個檔案和原資料庫檔案的內容和結構應該是一樣的吧?就是把這個檔案替換回去和用原資料庫檔案是沒有什么區別的,是嗎?
請高手指點一下,感激不盡!!!
uj5u.com熱心網友回復:
頂uj5u.com熱心網友回復:
頂uj5u.com熱心網友回復:
高手們看一下這段資料恢復的代碼有問題嗎?為什么我總是恢復失敗?string fname,name,ls_dbfile,ls_dbfile_tmp,ls_dir
getfileopenname("查找",fname,name,"1","資料庫備份檔案(*.1),*.1")
string mysql,bfname,gzname
ulong sxz = 32,kb //sxz為檔案的屬性值,32表示可讀寫
boolean tmp
bfname = trim(fname)
bfname = left(bfname,len(bfname) - 2)
ls_dir = GetCurrentdirectory()
ls_dbfile_tmp = ls_dir+'\'+'tmp'+'.db'
ls_dbfile = ls_dir+'\'+'sfbr_test'+'.db'
mysql = "RESTORE DATABASE '"+ls_dbfile_tmp+"' FROM '"+bfname+"'"
execute immediate: Mysql USING SQLCA;
if sqlca.sqlcode <> 0 then
messagebox("資訊提示","資料恢復失敗!!",information!,OK!)
return
end if
disconnect;//斷開資料庫連接
gzname = ls_dbfile
SetFileAttributes(gzname,sxz) //去掉只讀屬性
tmp = filedelete(gzname)//洗掉回復前的資料庫
if tmp = false then
messagebox("資訊提示","備份失敗!",information!,OK!)
return
end if
//將臨時的資料庫復制到當前的資料庫檔案上
bfname = ls_dbfile_tmp
gzname = ls_dbfile
kb = filecopy(bfname,gzname,true)
if kb = 1 then
messagebox("資訊提示","資料庫恢復成功!",information!,OK!)
else
messagebox("資訊提示","資料庫恢復失敗!",information!,OK!)
return
end if
filedelete(ls_dbfile_tmp)//洗掉臨時的資料庫檔案
connect;
uj5u.com熱心網友回復:
請教啊請教啊,謝謝各位高手啊,幫忙看看:)uj5u.com熱心網友回復:
我總是恢復資料失敗,后面是兩個嘆號,所以應該是mysql = "RESTORE DATABASE '"+ls_dbfile_tmp+"' FROM '"+bfname+"'"execute immediate: Mysql USING SQLCA;
這一部分出了問題,哪位能指點一下?
uj5u.com熱心網友回復:
請教呵呵uj5u.com熱心網友回復:
那位高手有空可以指教一下呢?真的很急,呵呵,雖然知道這樣很不好,可是我的確需要很快解決這個問題……uj5u.com熱心網友回復:
頂uj5u.com熱心網友回復:
頂uj5u.com熱心網友回復:
什么呀轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/109261.html
標籤:數據庫相關
