hur.cn - 华软网

 热门搜索

求数据备份还原代码

  作者:未知    来源:网络    更新时间:2018/2/6
PB9.0下的 用的ASA数据库
------华软网友回答------
那位懂的写一下吧.麻烦了.最后一个功能了.
------华软网友回复------
那位懂的写一下吧.麻烦了.最后一个功能了.
------华软网友回复------
SOLSERVER我知道
我看别人用ASA数据库,备份是直接把数据库文件拷贝到另一个地方。
------华软网友回复------
我知在PB下备份还原sql server 2000数据库,如果要的话,QQ(395570154)联系我
------华软网友回复------
在Global External Functions声明全局外部函数
//FindWindowA():根据窗口标题查找窗口
FUNCTION ulong FindWindowA(ulong WinHandle,String wintitle) LIBRARY "User32.dll"

第一步:选择备份文件的位置.
string ls_path 

integer li_result

li_result = GetFolder( "选择备份目录:", ls_path )

sle_1.text = ls_path  

第二步:开始备份文件
ulong ll_handle
int li_loop

if sle_1.text = '' then return 

SetPointer(HourGlass!) //设置鼠标指针
//运行备份数据库程序dbbackup,并使其最小化
//dbf = 指定数据库文件的位置
run("dbbackup -c ~"uid=dba;pwd=sql; dbf=C:\Program Files\Sybase\SQL Anywhere 7\asademo.db~" " + sle_1.text, 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("提示信息", "备份完成!")
------华软网友回复------
一些链接:
不需要断开连接就可以恢复,可以参考这个帖子

http://community.csdn.net/Expert/topic/3702/3702994.xml?temp=.4573175
PB中对MS SQL SERVER数据库进行联接,创建、备份、恢复数据库,创建ODBC数据源
http://www.pdriver.com/display.asp?key_id=1510 

一个备份和恢复数据库(SQL SERVER)的例子
http://ourmis.com/down_view.asp?id=120
参考:

备份sql server和asa数据库的源程序:

http://cpb.cn/download_last.asp?id=48

------华软网友回复------
好的 我试试看
------华软网友回复------
还有恢复的代码啊 ASA的
------华软网友回复------
这需要你从我给你的链接中总结一下,我也没有总结呢。哈哈
------华软网友回复------
直接拷贝数据库文件也行呀:
功能很简单的  尽参考 

////////////////////////////////////////////////////////////////////////
//gf_dbback()
// 功能: 1.备份数据库文件,实际上是拷贝zk.DB到zk_back.db
//2.还原数据库文件,实际上是拷贝zk_back.db到zk.DB
//参数:integer as_aspect 
//as_aspect = 1 备份数据库文件
//as_aspect = 2还原数据库文件
// 返回:integer
//1:success
//-1:Error opening sourcefile
//-2:Error writing targetfile
// 作者:YBW
//
////////////////////////////////////////////////////////////////////////

int li_ret=0

if w_main_this.inv_sheetmanager.of_getSheetcount () > 0 then 
messageBox ("错误提示","请先关闭所有的页(按 Ctrl + F4)再备份数据库!", exclamation!)
return -1
end if


setPointer (hourGlass!)
sqlca.of_disconnect ()

//设置zk.db和zk_back.db的只读属性为假
SetFileAttributesA("zk.db", 32)
SetFileAttributesA("zk_back.db", 32)
choose case as_aspect
case 1
li_ret = fileCopy ("zk.db", "zk_back.db", true) //备份
CHOOSE CASE Li_ret 
CASE 1
messageBox ("成功", "数据库备份成功。数据库备份的文件(zk_back.db)在安装目录下。")
CASE -1
messageBox ("失败", "数据库备份失败:打开数据库文件(zk.db)失败。", stopSign!)
CASE -2
messageBox ("失败", "数据库备份失败:写数据库文件(zk_back.db)失败。", stopSign!)
END CHOOSE
case 2
li_ret = fileCopy ("zk_back.db", "zk.db", true)//还原
CHOOSE CASE Li_ret 
CASE 1
messageBox ("成功", "数据还原份成功。")
CASE -1
messageBox ("失败", "数据还原份失败:打开备份的数据库文件(zk_back.db)失败。", stopSign!)
CASE -2
messageBox ("失败", "数据还原份失败:写目标数据库文件(zk.db)失败。", stopSign!)
END CHOOSE
end choose

sqlca.of_connect ()
return li_ret



///////////////////////////////////////
其中:
SetFileAttributesA("zk.db", 32)
SetFileAttributesA("zk_back.db", 32)

这个函数要这样定义:(在'Kernel32.Dll'里)
FUNCTION BOOLEAN SetFileAttributesA(String filename,Int attribute) LIBRARY 'Kernel32.Dll'
------华软网友回复------
这个函数要这样定义:(在'Kernel32.Dll'里)
FUNCTION BOOLEAN SetFileAttributesA(String filename,Int attribute)
 LIBRARY 'Kernel32.Dll'

怎么定义 不会做
------华软网友回复------
这是外部函数   要先申明
当然先得把'Kernel32.Dll'这个动态连接库拷贝到当前目录  然后在PB的全局函数里申明
------华软网友回复------
搂主说的那个直接在global external functions里直接写

FUNCTION BOOLEAN SetFileAttributesA(String filename,Int attribute)LIBRARY 'Kernel32.Dll'

就可以了!

------华软网友回复------
有没有在客户端直接备份的呀      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。