在delphi中如何通过文本框来取得备份的路径。SQLSERVER 最好能给出代码
解决方案 »
- 高手支招:执行 update sql语句,影响行返回为1,但实际上有时数据记录并没有修改成功.
- 高分提问:使用TWebBrowser时如何防止程序崩溃?
- 如何用delphi做一个activex,在 web下引用,实现接口怎么做呢,在线等!!急!!!!!!!!!!!
- 像<<画图>>一样画出一条直线谁能教我!(不要那种点出来的直线,要拉出过程来的)!
- 如何在已打开的当前excel文件中插入一行记录,excel文件是新建的事先不知道文件名。(excel是在程序里打开的)
- 如何判断按下的键为非功能键?so 菜
- 有人知道如何监视剪贴版吗???
- 如何攻击骗子的手机?经常发短消息告诉别人中奖的。
- 还是dbgrid
- 我安装上去的infopower控件不能用?
- installshield x express中文使用说明书
- delphi中数据库连接方式有多少种?
s:=OpenDialog1.FileName;
Adoquery1.SQL.Clear;
Adoquery1.SQL.Add('Backup DataBase cpfms to disk ='+#39+S+#39);
Adoquery1.SQL.Execute;
就OK了。
=======================================
1建立自动任务:
EXECUTE pr_AutoBackup "baktest","d:\Database",23,3
设置为每小时执行一次。
2.在Server – SQL Server – Configuration 中选中Auto Start Executive at Boot Time
3.在Master数据库建立存储过程
CREATE PROCEDURE pr_AutoBackup @db_to_bak varchar(20),
@file_path varchar(20),
@on_hour int,
@remain_day int
AS
DECLARE @this_day int,
@bak_count int,
@str_file_name varchar(30),
@str_del_device varchar(20),
@str_last_device varchar(20),
@last_day int,
@this_hour int,
@strSQL varchar(60)
SELECT @this_day = datepart(dayofyear,getdate())
SELECT @bak_count = count(name),@str_last_device = max(name),
@last_day = max(convert(int,substring(name,charindex("_",name)+1,3)))
FROM sysdevices
WHERE charindex("_",name)=datalength(@db_to_bak)+1
AND substring(name,1,datalength(@db_to_bak))=@db_to_bak
IF SUBSTRING(@file_path,datalength(@file_path),1)<>”\”
SELECT @file_path = @file_path + “\”
SELECT @this_hour = datepart(hour,getdate())
IF ((@this_hour = @on_hour)and(@this_day<>@last_day))or(@bak_count = 0)
BEGIN
SELECT @str_last_device = @db_to_bak+"_"+convert(varchar(3),@this_day)
SELECT @str_file_name = @file_path + @str_last_device + “.dat”
SELECT @strSQL =“DUMP TRANSACTION ” + @db_to_bak + “ WITH TRUNCATE_ONLY”
EXECUTE(@strSQL)
SELECT @strSQL =“sp_addumpdevice ‘DISK’,’”+@str_last_device + “’,’”+@str_file_name+”’”
EXECUTE(@strSQL)
SELECT @strSQL =“DUMP DATABASE “+ @db_to_bak + “ TO “ + @str_last_device
EXECUTE(@strSQL)
SELECT @str_del_device = @db_to_bak + ”_” + convert(varchar(4),@this_day - @remain_day)
SELECT @bak_count = count(name)
FROM sysdevices
WHERE name = @str_del_device
IF (@bak_count=1)
BEGIN
SELECT @strSQL =“sp_dropdevice “+ @str_del_device +”,DELFILE”
EXECUTE(@strSQL)
END
END
ELSE
BEGIN
SELECT @strSQL =“DUMP TRANSACTION “+ @db_to_bak + “ TO “ + @str_last_device
EXECUTE(@strSQL)
END