- 论坛徽章:
- 0
|
?
可以用动态的数据窗口来实现将数据表中的信息存放到文本文件和dbf文件进行备份,然后再进行导入即数据恢复。具体的做法为:
1、在窗口中添加一个数据窗口控件,如数据窗口控件命名为dw_pip
2、在窗口中添加一个名为SAVE的保存按钮。在SAVE按钮中添加程序如下:
string sql_syntax,dwsyntax_str
string errors,S_filnam
string table_name
//编写数据查寻条件
sql_syntax=查询条件
//检索数据窗口内容
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" //要存放的文件名(自己可以设定,但必须保证该路径存在),若存为dbf类型,则将.txt后缀改为.dbf后缀
dw_pip.SaveAs(S_filnam, Text! , FALSE)
3、在窗口中添加名为import导入按钮,在本按钮中添加以下程序
string sql_syntax,dwsyntax_str
string errors,S_filnam
sql_syntax =要插入的数据表检索条件
dwsyntax_str = SQLCA.SyntaxFromSQL(sql_syntax,"style(type=grid)" , ERRORS)
dw_pip.Create(dwsyntax_str, ERRORS)
dw_pip.SetTransObject(SQLCA)
dw_pip.retrieve()
//导入文件内容
ii=dw_pip.ImportFile("D:\del\test_del.TXT") //文件名为SAVE按钮中生成的文件名
dw_pip.update(true,true)
commit; //提交
4、结束,调试运行
Top
回复人: trigger_jn(佳宝) ( ) 信誉:100 2002-06-06 08:47:33Z 得分:0
?
可以用动态的数据窗口来实现将数据表中的信息存放到文本文件和dbf文件进行备份,然后再进行导入即数据恢复。具体的做法为:
1、在窗口中添加一个数据窗口控件,如数据窗口控件命名为dw_pip
2、在窗口中添加一个名为SAVE的保存按钮。在SAVE按钮中添加程序如下:
string sql_syntax,dwsyntax_str
string errors,S_filnam
string table_name
//编写数据查寻条件
sql_syntax=查询条件
//检索数据窗口内容
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" //要存放的文件名(自己可以设定,但必须保证该路径存在),若存为dbf类型,则将.txt后缀改为.dbf后缀
dw_pip.SaveAs(S_filnam, Text! , FALSE)
3、在窗口中添加名为import导入按钮,在本按钮中添加以下程序
string sql_syntax,dwsyntax_str
string errors,S_filnam
sql_syntax =要插入的数据表检索条件
dwsyntax_str = SQLCA.SyntaxFromSQL(sql_syntax,"style(type=grid)" , ERRORS)
dw_pip.Create(dwsyntax_str, ERRORS)
dw_pip.SetTransObject(SQLCA)
dw_pip.retrieve()
//导入文件内容
ii=dw_pip.ImportFile("D:\del\test_del.TXT") //文件名为SAVE按钮中生成的文件名
dw_pip.update(true,true)
commit; //提交
4、结束,调试运行
数据库的备份在数据库应用程序中是很重要的一环,那么我将如何实现它呢?
答:用Windows的API函数可以办到。
方法一:在PB中调用DOS命令(dbbackup.exe)备份并判断其运行结束。
①定义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!) //设置鼠标指针
//运行备份数据库程序dbbackup,并使其最小化
run("dbbackup -c ~"uid=dba;pwd=sql; dbf=D:\Sybase\Adaptive Server Anywhere 6.0\asademo.db~" d:\backup", Minimized!)
ll_handle = 0
//循环至dbbackup窗口打开
Do While ll_handle = 0
ll_handle = FindWindowA("tty","dbbackup")
yield()
loop
//等待dbbackup窗口关闭
Do While isWindow(ll_handle)
Yield()
Loop
//应用执行完成
MessageBox("提示信息", "备份完成!")
[注]IsWindow()函数
说明: 判断一个窗口句柄是否有效。
返回值: Long,非零表示成功,零表示失败。
参数 类型及说明
hwnd Long,待检查窗口的句柄。
http://book.77169.org/ask36/how164007.htm |
|