- 論壇徽章:
- 0
|
?
可以用動態(tài)的數(shù)據(jù)窗口來實(shí)現(xiàn)將數(shù)據(jù)表中的信息存放到文本文件和dbf文件進(jìn)行備份,然后再進(jìn)行導(dǎo)入即數(shù)據(jù)恢復(fù)。具體的做法為:
1、在窗口中添加一個數(shù)據(jù)窗口控件,如數(shù)據(jù)窗口控件命名為dw_pip
2、在窗口中添加一個名為SAVE的保存按鈕。在SAVE按鈕中添加程序如下:
string sql_syntax,dwsyntax_str
string errors,S_filnam
string table_name
//編寫數(shù)據(jù)查尋條件
sql_syntax=查詢條件
//檢索數(shù)據(jù)窗口內(nèi)容
dwsyntax_str = SQLCA.SyntaxFromSQL(sql_syntax,"style(type=grid)" , ERRORS)
dw_pip.Create(dwsyntax_str, ERRORS)
dw_pip.SetTransObject(SQLCA)
dw_pip.retrieve()
S_filnam="d:\del\test_del.txt" //要存放的文件名(自己可以設(shè)定,但必須保證該路徑存在),若存為dbf類型,則將.txt后綴改為.dbf后綴
dw_pip.SaveAs(S_filnam, Text! , FALSE)
3、在窗口中添加名為import導(dǎo)入按鈕,在本按鈕中添加以下程序
string sql_syntax,dwsyntax_str
string errors,S_filnam
sql_syntax =要插入的數(shù)據(jù)表檢索條件
dwsyntax_str = SQLCA.SyntaxFromSQL(sql_syntax,"style(type=grid)" , ERRORS)
dw_pip.Create(dwsyntax_str, ERRORS)
dw_pip.SetTransObject(SQLCA)
dw_pip.retrieve()
//導(dǎo)入文件內(nèi)容
ii=dw_pip.ImportFile("D:\del\test_del.TXT") //文件名為SAVE按鈕中生成的文件名
dw_pip.update(true,true)
commit; //提交
4、結(jié)束,調(diào)試運(yùn)行
Top
回復(fù)人: trigger_jn(佳寶) ( ) 信譽(yù):100 2002-06-06 08:47:33Z 得分:0
?
可以用動態(tài)的數(shù)據(jù)窗口來實(shí)現(xiàn)將數(shù)據(jù)表中的信息存放到文本文件和dbf文件進(jìn)行備份,然后再進(jìn)行導(dǎo)入即數(shù)據(jù)恢復(fù)。具體的做法為:
1、在窗口中添加一個數(shù)據(jù)窗口控件,如數(shù)據(jù)窗口控件命名為dw_pip
2、在窗口中添加一個名為SAVE的保存按鈕。在SAVE按鈕中添加程序如下:
string sql_syntax,dwsyntax_str
string errors,S_filnam
string table_name
//編寫數(shù)據(jù)查尋條件
sql_syntax=查詢條件
//檢索數(shù)據(jù)窗口內(nèi)容
dwsyntax_str = SQLCA.SyntaxFromSQL(sql_syntax,"style(type=grid)" , ERRORS)
dw_pip.Create(dwsyntax_str, ERRORS)
dw_pip.SetTransObject(SQLCA)
dw_pip.retrieve()
S_filnam="d:\del\test_del.txt" //要存放的文件名(自己可以設(shè)定,但必須保證該路徑存在),若存為dbf類型,則將.txt后綴改為.dbf后綴
dw_pip.SaveAs(S_filnam, Text! , FALSE)
3、在窗口中添加名為import導(dǎo)入按鈕,在本按鈕中添加以下程序
string sql_syntax,dwsyntax_str
string errors,S_filnam
sql_syntax =要插入的數(shù)據(jù)表檢索條件
dwsyntax_str = SQLCA.SyntaxFromSQL(sql_syntax,"style(type=grid)" , ERRORS)
dw_pip.Create(dwsyntax_str, ERRORS)
dw_pip.SetTransObject(SQLCA)
dw_pip.retrieve()
//導(dǎo)入文件內(nèi)容
ii=dw_pip.ImportFile("D:\del\test_del.TXT") //文件名為SAVE按鈕中生成的文件名
dw_pip.update(true,true)
commit; //提交
4、結(jié)束,調(diào)試運(yùn)行
數(shù)據(jù)庫的備份在數(shù)據(jù)庫應(yīng)用程序中是很重要的一環(huán),那么我將如何實(shí)現(xiàn)它呢?
答:用Windows的API函數(shù)可以辦到。
方法一:在PB中調(diào)用DOS命令(dbbackup.exe)備份并判斷其運(yùn)行結(jié)束。
①定義API:
Funtion ulong FindWindowA( ulong winhandle, string wintitle ) Library "user32"
Function boolean IsWindow (Long hwnd ) Library "user32.dll"
②腳本:
ulong ll_handle
int li_loop
SetPointer(HourGlass!) //設(shè)置鼠標(biāo)指針
//運(yùn)行備份數(shù)據(jù)庫程序dbbackup,并使其最小化
run("dbbackup -c ~"uid=dba;pwd=sql; dbf=D:\Sybase\Adaptive Server Anywhere 6.0\asademo.db~" d:\backup", Minimized!)
ll_handle = 0
//循環(huán)至dbbackup窗口打開
Do While ll_handle = 0
ll_handle = FindWindowA("tty","dbbackup")
yield()
loop
//等待dbbackup窗口關(guān)閉
Do While isWindow(ll_handle)
Yield()
Loop
//應(yīng)用執(zhí)行完成
MessageBox("提示信息", "備份完成!")
[注]IsWindow()函數(shù)
說明: 判斷一個窗口句柄是否有效。
返回值: Long,非零表示成功,零表示失敗。
參數(shù) 類型及說明
hwnd Long,待檢查窗口的句柄。
http://book.77169.org/ask36/how164007.htm |
|