国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開發(fā) > 綜合 > 正文

單搞定ASA備份/恢復(fù)程序

2024-07-21 02:05:46
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

adaptive server anywhere(本文中簡(jiǎn)稱asa) 是powerbuilder(本文中簡(jiǎn)稱pb)自帶的數(shù)據(jù)庫(kù)管理系統(tǒng),可作為小型應(yīng)用系統(tǒng)的數(shù)據(jù)庫(kù)服務(wù)器。而數(shù)據(jù)庫(kù)的備份/恢復(fù)是一項(xiàng)基本的工作,要想用短短幾分鐘就完成這類程序的編寫,能做到嗎?本文就將為大家介紹一個(gè)用pb編寫的asa備份/恢復(fù)程序,只需很短的時(shí)間,就可以編制完成并運(yùn)用在以asa作為數(shù)據(jù)環(huán)境的小型應(yīng)用上。

一 備份程序
先來(lái)看看備份程序部分的寫法。在窗體上建一文本框 sle_1,用來(lái)顯示備份的文件名,并添加兩個(gè)按鈕:cb_1(瀏覽)、cb_2(備份)。相應(yīng)的事件代碼如下:

//cb_1.clicked()

string fname,name

getfilesavename('保存',fname,name,“db”,'數(shù)據(jù)庫(kù)備份文件(*.1),*.1')

sle_1.text=fname

//cb_2.clicked()

string mysql,bfname

bfname=trim(sle_1.text)

bfname=left(bfname,len(bfname)-2)

mysql=“backup database to '”+bfname+“'”

execute immediate :mysql using sqlca;//運(yùn)用sql語(yǔ)句立刻執(zhí)行備份

if sqlca.sqlcode=0 then

messagebox(“信息提示”,'備份成功!',information!,ok!)//給出備份成功與否的相關(guān)信息

else

messagebox(“信息提示”,'備份失敗!',information!,ok!)

end if

二 恢復(fù)程序
再來(lái)看看恢復(fù)數(shù)據(jù)庫(kù)程序的編寫。在窗體上建一文本框 sle_1,顯示用來(lái)恢復(fù)的備份文件名,并添加兩個(gè)按鈕:cb_1(查找)、cb_2(恢復(fù))。聲明一個(gè)修改文件屬性的api函數(shù):

function ulong setfileattributes(ref string lpfilename,ulong dwfileattributes) library “kernel32.dll” alias for “setfileattributesa”

相應(yīng)的事件代碼如下:

//cb_1.clicked()

string fname,name

getfileopenname('查找',fname,name,“1”,“數(shù)據(jù)庫(kù)備份文件(*.1),*.1”)

sle_1.text=fname

//cb_2.clicked()

string mysql,bfname,gzname

ulong sxz=32,kb //sxz為文件的屬性值,32表示可讀寫

boolean tmp

bfname=trim(sle_1.text)

bfname=left(bfname,len(bfname)-2)

// d: lgz 為示例中數(shù)據(jù)庫(kù)文件所在目錄,tmp.db為臨時(shí)的數(shù)據(jù)庫(kù)文件

mysql=“restore database 'd: lgz/tmp.db' from '”+bfname+“'”

execute immediate :mysql using sqlca;//同樣是運(yùn)用sql語(yǔ)句來(lái)立刻執(zhí)行恢復(fù)數(shù)據(jù)庫(kù)的工作

if sqlca.sqlcode<>0 then

messagebox(“信息提示”,'數(shù)據(jù)恢復(fù)失敗!',information!,ok!)

return

end if

disconnect; //斷開數(shù)據(jù)庫(kù)連接

gzname='d: lgz/gz.db' //包含路徑的數(shù)據(jù)庫(kù)文件

setfileattributes(gzname,sxz) // 去掉只讀屬性

tmp=filedelete('d: lgz/gz.db') //刪除恢復(fù)前的數(shù)據(jù)庫(kù)

if tmp=false then

messagebox(“信息提示”,'備份失敗!',information!,ok!)

return

end if

//將臨時(shí)的數(shù)據(jù)庫(kù)復(fù)制到當(dāng)前的數(shù)據(jù)庫(kù)文件上

bfname=“d: lgz/tmp.db”

gzname=“d: lgz/gz.db”

kb=filecopy(bfname,gzname,true )

if kb=1 then

messagebox(“信息提示”,'數(shù)據(jù)庫(kù)恢復(fù)成功!',information!,ok!)

else

messagebox(“信息提示”,'數(shù)據(jù)庫(kù)復(fù)制失敗!',information!,ok!)

return

end if

filedelete('d: lgz/tmp.db') //刪除臨時(shí)的數(shù)據(jù)庫(kù)文件

connect;

三 小結(jié)
程序備份和恢復(fù)的實(shí)現(xiàn)都只是調(diào)用了sql內(nèi)置的功能來(lái)實(shí)現(xiàn),使程序顯得相對(duì)簡(jiǎn)潔。功能雖然比較單一和簡(jiǎn)單,卻也能滿足數(shù)據(jù)庫(kù)的備份和恢復(fù)的工作需求,在要求不高的應(yīng)用場(chǎng)合可為數(shù)據(jù)庫(kù)管理人員節(jié)約大量精力。上述程序在 pb 9.0中調(diào)試通過(guò)。
 
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 分宜县| 博野县| 龙门县| 偏关县| 久治县| 景泰县| 通海县| 翼城县| 贵阳市| 平湖市| 拉孜县| 杭锦旗| 新泰市| 东光县| 六盘水市| 神木县| 民权县| 老河口市| 永城市| 肥城市| 迭部县| 安福县| 应用必备| 新宁县| 于都县| 伊金霍洛旗| 潼关县| 青海省| 罗定市| 上杭县| 崇义县| 沂水县| 临清市| 利川市| 华池县| 名山县| 苍南县| 连云港市| 施秉县| 万州区| 修水县|