1、我在我自己的单位测试,都是正常的,但是在客户那里失败,我和客户那里的环境都是域。
2、需求:客户端,写一个应用程序,点一个按钮,备份数据库到服务器上,如果备份的文件名有重复的,提示是否覆盖;如果目录不存在,自动在服务器上创建目录(数据库、服务器是一台机器 192.168.0.2)
3、在服务器上,建立一个共享的文件夹,权限任何人完全控制,在我单位测试通过,在客户那里失败,具体代码: BACKUP DATABASE abc TO DISK = '\\192.168.0.2\备份数据库\1.bak' WITH INIT
4、能不能来点实际的代码,越简单越好

解决方案 »

  1.   


    1、我也不知道,我不懂怎么弄错误信息,程序在我这里没问题,我就发给客户了,客户他们什么也不懂
    2、大致的错误,我猜应该是没有 windows 授权之类的
      

  2.   

    你是叫客户在SQLServer Management studio界面执行吗?要是不成功,下面应该有一串红字的
      

  3.   


    不是啊,是我写好的一个程序,SQL2000,前台用的 Delphi7
      

  4.   

    那你先用Profiler把你的备份语句抓出来,然后放到客户环境的ssms那里执行,看看下面的红字是什么?
      

  5.   


    备份语句,我能抓出来,我用Delphi 抓的,BACKUP DATABASE abc TO DISK = '\\192.168.0.2\备份数据库\1.bak' WITH INIT,是不是得在客户端的查询分析器里面执行啊,看看什么错误
      

  6.   


    客户端,如果没有 SQLServer 怎么办啊
      

  7.   


    我的程序,用的 Ado 连接 SQLServer,写的代码:
    Provider=SQLOLEDB.1;Data Source=192.168.0.2;User ID=sa;Password=;Initial Catalog=abc;Persist Security Info=True
      

  8.   


    异常我写的是这个,raise Exception.Create('备份数据库失败');
    所以看不出来啊
      

  9.   

    那这样比较难找根源,程序能该不?改成用xp_cmdshell来调用你那段备份语句。估计现在是程序来备份,到时问题,但是是不是权限问题还要看错误信息。
      

  10.   


    程序可以改,我试试吧,xp_cmdshell,简单吗?能给我一段简单的例子吗
      

  11.   

    你可以到联机丛书看看xp_cmdshell的使用方法。