在SQL Server2000中用手工备份一数据在C:\AAA\reg.dat,在DELPHI如何写语句还原?
在我自已机子上能通过还原,可到另一台机子上(事先没能这个数据库,全新的SQL SERVER2000)就不行了。。我是这样写的:
backstr:='RESTORE database reg FROM  DISK ='''+extractfilepath(application.Exename)+'reg.dat''';是不是少了什么语句或参数???大家帮我!!

解决方案 »

  1.   

    如:
    RESTORE DATABASE MyNwind
       FROM MyNwind_1
       WITH NORECOVERY, 
          MOVE 'MyNwind' TO 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewNwind.mdf', 
          MOVE 'MyNwindLog1' TO 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewNwind.ldf'看一下幫助文件
      

  2.   

    backstr:='RESTORE database reg FROM  DISK ='''+extractfilepath(application.Exename)+'reg.dat''';
    語句之後再加個  With.... 指定創建的MDF,LDF文件的位置及名稱
      

  3.   

    不加WITH时在我自已的系统里又可以,到别人哪里又不行呀。。原因为在??
      

  4.   

    不加with的话,新的数据库的位置和文件名会和原来的数据库位置及文件名一样,在你的系统里由于存在那个文件夹,所以不会出错,别人那里没有那个文件夹,所以会出错
      

  5.   

    TO : TOMWLD(笑天) 
    哪如果我在我写的哪句SQL 之前用:create database reg
    再:RESTORE database reg FROM  DISK ='c:\abc\reg.dat'
    行吗??是不是可以。。大家说对吗???
      

  6.   

    原应:还原路径不对
    例:你备份的时候sql装在d盘,还原的时候sql装在c盘,就回出现这个错误!!解决加WITH指定路径!或动态获得客户的安装路径:
    declare  @path  varchar(200)  
    select  @path  =  filename  from  master.dbo.sysfiles  
    set  @path  =  ltrim(REVERSE(@path))  
    set  @path  =  REVERSE(substring(@path,CHARINDEX('\',@path),len(@path)))  
    print  @path  
      

  7.   

    如果create database reg会将文件保存在系统默认路径 
    比如c:\Program Files\Microsoft SQL Server\MSSQL\Data\reg_data.mdf'
    再用RESTORE database reg FROM  DISK ='c:\abc\reg.dat'还是路径不对