以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  备份数据库数据  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=120252)

--  作者:huhu
--  发布时间:2018/6/11 9:53:00
--  备份数据库数据

假定希望系统每十分钟自动备份一次项目,可以增加一个计划,计划的执行间隔600000(毫秒),也就是10分钟,计划的代码为:

Static dt As Date \'静态变量,用于保存上次备份的时间
Dim
tp As TimeSpan
tp
= Date.Now - dt
If
tp.TotalHours >= 1 Then \'如果距离上次备份已经超过一个小时   ------这是按照1小时备份一次吧,不是10分钟吧。
    dt = Date.Now
    Syscmd.Project.Backup("c:\\data", True) \'自动备份到c:\\data目录

End
If


这是备份的ft项目吧。不是备份的ft后台的数据库吧,有没有办法通过ft备份数据库的数据?


--  作者:有点甜
--  发布时间:2018/6/11 9:55:00
--  

如果是access数据库,直接拷贝mdb文件保存即可;

 

如果sqlserver数据库,直接执行sql语句备份,如

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=99994&skin=0

 


--  作者:huhu
--  发布时间:2018/6/11 11:51:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:20180611112342.png
图片点击可在新窗口打开查看


我的外部数据源是songjiang,那么对于的数据库名称是不是红色的songjiang.mdf?

Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "use master;BACKUP DATABASE songjiang.mdf TO DISK = \'D:\\songjiang.bak\' WITH FORMAT,CHECKSUM;"
cmd.ExecuteNonQuery

怎么报错啊
.NET Framework 版本:2.0.50727.7905
Foxtable 版本:2018.3.9.1
错误所在事件:
详细错误信息:
关键字 \'with\' 附近有语法错误。如果此语句是公用表表达式、xmlnamespaces 子句或者更改跟踪上下文子句,那么前一个语句必须以分号结尾。
\'.\' 附近有语法错误。


--  作者:有点甜
--  发布时间:2018/6/11 12:00:00
--  
cmd.CommandText = "use master;BACKUP DATABASE 数据库名字,不是文件名 TO DISK = \'D:\\songjiang.bak\' WITH FORMAT,CHECKSUM;"
--  作者:huhu
--  发布时间:2018/6/11 12:07:00
--  
Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "use master;BACKUP DATABASE songjiang TO DISK = \'D:\\songjiang.bak\' WITH FORMAT,CHECKSUM;"
cmd.ExecuteNonQuery


这是备份到数据库的那个硬盘D了吧。如果我要备份到我本地,怎么弄?数据库是在另外一台服务器上的。

--  作者:有点甜
--  发布时间:2018/6/11 12:09:00
--  
以下是引用huhu在2018/6/11 12:07:00的发言:

 

这是备份到数据库的那个硬盘D了吧。如果我要备份到我本地,怎么弄?数据库是在另外一台服务器上的。

 

服务器搭建了ftp或者http了没有?备份以后,再用ftp把D盘的文件下载下来。


--  作者:huhu
--  发布时间:2018/6/11 12:24:00
--  
哦。这样。那下午试试。
还有问题,这种备份是直接覆盖,而不是按照时间新增。

--  作者:有点甜
--  发布时间:2018/6/11 14:24:00
--  
以下是引用huhu在2018/6/11 12:24:00的发言:
哦。这样。那下午试试。
还有问题,这种备份是直接覆盖,而不是按照时间新增。

 

文件名那里,改成动态文件名,如

 

Dim file As string = "d:\\test" & formate(date.now, "yyyyMMddHHmmss") & ".bak"

cmd.CommandText = "use master;BACKUP DATABASE songjiang TO DISK = \'" & file & "\' WITH FORMAT,CHECKSUM;"

 

[此贴子已经被作者于2018/6/11 18:00:16编辑过]

--  作者:huhu
--  发布时间:2018/6/11 17:55:00
--  
songjiang20180611000000.bak   ‘时分秒都为0?’
--  作者:有点甜
--  发布时间:2018/6/11 17:59:00
--  

写错,改成

 

Dim file As string = "d:\\test" & formate(date.now, "yyyyMMddHHmmss") & ".bak"