CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

求助:数据库备份问题以及程序打包安装问题

楼主danielrong(星浪子)2003-12-02 22:49:18 在 Delphi / VCL组件开发及应用 提问

我做了一个小型的MIS系统。碰到几个问题,想向大家请教。  
   
  开发工具:DELPHI6   SQL7.0    
  打包工具:InstallShield   Developer8.0  
   
  碰到二个备份问题,  
  第一,如何将数据库用DELPHI语句备份以及用DELPHI语句恢复数据库资料。  
  第二,将程序打了包以后,在安装的过程中能够顺利安装,没有出现任何提示,  
  但是在运行程序的时候,打开程序的时候,登录敞口出现的很慢,感觉连不上数据库。  
  数据库存在。想向大家请教大约会是哪个方面的错误。  
   
  问题点数:60、回复次数:10Top

1 楼oklida(JAVA战士)回复于 2003-12-03 08:49:43 得分 20

备份和恢复  
          procedure   TForm1.Button1Click(Sender:   TObject);  
          begin  
              if   OpenDialog1.Execute   then  
              begin  
                  try  
                      adoconnection1.Connected:=False;  
                      adoconnection1.ConnectionString:='Provider=SQLOLEDB.1;Persist   Security   Info=False;User   ID=sa;Initial   Catalog=master;Data   Source=FRIEND-YOFZKSCO;'+  
                      'Use   Procedure   for   Prepare=1;Auto   Translate=True;Packet   Size=4096;Workstation   ID=FRIEND-YOFZKSCO;Use   Encryption   for   Data=False;Tag   with   column   collation   when   possible=False';  
                      adoconnection1.Connected:=True;  
                      with   adoQuery1   do  
                      begin  
                          Close;  
                          SQL.Clear;  
                          SQL.Add('Backup   DataBase   sfa   to   disk   ='''+opendialog1.FileName+'''');  
                          ExecSQL;  
                      end;  
                  except  
                      ShowMessage('±?·Yê§°ü');  
                  Exit;  
                  end;  
              end;  
              Application.MessageBox('1§?2?ú£?êy?Y±?·Y3é1|','ìáê?',MB_OK   +   MB_ICONINFORMATION);  
          end;  
   
   
          procedure   TForm1.Button2Click(Sender:   TObject);  
          begin  
              if   OpenDialog1.Execute   then  
              begin  
                  try  
                      adoconnection1.Connected:=false;  
                      adoconnection1.ConnectionString:='Provider=SQLOLEDB.1;Persist   Security   Info=False;User   ID=sa;Initial   Catalog=master;Data   Source=FRIEND-YOFZKSCO;'+  
                      'Use   Procedure   for   Prepare=1;Auto   Translate=True;Packet   Size=4096;Workstation   ID=FRIEND-YOFZKSCO;Use   Encryption   for   Data=False;Tag   with   column   collation   when   possible=False';  
                      adoconnection1.Connected:=true;  
                      with   adoQuery1   do  
                      begin  
                          Close;  
                          SQL.Clear;  
                          SQL.Add('Restore   DataBase   sfa   from   disk   ='''+opendialog1.FileName+'''');  
                          ExecSQL;  
                    end;  
                except  
                    ShowMessage('???′ê§°ü');  
                    Exit;  
                end;  
            end;  
            Application.MessageBox('1§?2?ú£?êy?Y???′3é1|','ìáê?',MB_OK   +   MB_ICONINFORMATION);  
          end;Top

2 楼fhuibo(永远深爱一个叫“莎”的好女孩儿)回复于 2003-12-03 09:03:35 得分 20

with   query   do  
  begin  
      close;  
      sql.clear;  
      sql.add('backup   database   数据库   to   disk   =   '   +   edit1.text);  
      try  
          execsql;  
      except  
          showmessage('error');  
      end;  
  end;  
   
  with   query   do  
  begin  
      close;  
      sql.clear;  
      sql.add('restore   database   数据库   to   disk   =   '   +   edit1.text+'with   replace');  
      try  
          execsql;  
      except  
          showmessage('error');  
      end;  
  end;Top

3 楼codehunter008(马里奥)回复于 2003-12-03 09:16:11 得分 10

恢复数据库用这个SQL语句:  
   
  BACKUP   DATABASE   {   database_name   |   @database_name_var   }  
          <   file_or_filegroup   >   [   ,...n   ]    
  TO   <   backup_device   >   [   ,...n   ]    
   
  恢复数据库用  
   
   
  RESTORE   DATABASE   {   database_name   |   @database_name_var   }    
  [   FROM   <   backup_device   >   [   ,...n   ]   ]    
   
  至于第二个问题,你的SQL   SERVER是在别的机器,还是在本机上?Top

4 楼danielrong(星浪子)回复于 2003-12-03 09:37:48 得分 0

我的SQL   SERVER在本地机子上,写的程序在有DELPHI的环境下可以运行,  
  但是打成包以后,去一个没有DELPHI环境的系统运行则不行,那个系统下有本地的SQL   SERVER,  
  开发系统和测试系统都是WIN2000SERVER  
  Top

5 楼Seaman_Wang(75级野蛮人)回复于 2003-12-03 09:45:54 得分 0

--〉我的SQL   SERVER在本地机子上,写的程序在有DELPHI的环境下可以运行,  
  但是打成包以后,去一个没有DELPHI环境的系统运行则不行,那个系统下有本地的SQL   SERVER,  
  开发系统和测试系统都是WIN2000SERVER  
   
  你的系统是   C/S   ,还是   Midas?   数据库连接用的BDE   还是   ADO   还是   ODBC?  
   
  Top

6 楼xiaoqiang123(xiaoqiang)回复于 2003-12-03 09:59:26 得分 0

打包时要把所用的DLL,第三方控件,数据库引擎等打包的Top

7 楼danielrong(星浪子)回复于 2003-12-03 10:06:44 得分 0

我的系统是MIS系统,数据库连接用的是BDE  
   
  打包的时候,我把所有和delphi有关的.dll文件都打进去了。还是不行  
   
  Top

8 楼Seaman_Wang(75级野蛮人)回复于 2003-12-03 10:31:07 得分 0

你在客户机的控制面板中看一下有没有   BDE   ,以及BDE配置是否正确。如果没有那是你的安装包做的不对Top

9 楼danielrong(星浪子)回复于 2003-12-03 12:04:36 得分 0

procedure   TForm1.Button1Click(Sender:   TObject);  
  begin  
  if   self.OpenDialog1.Execute   then  
  begin  
      self.Query1.Close;  
      self.Query1.SQL.Clear;  
      self.Query1.SQL.Add('backup   database   liangyou   to   disk   ='+''''+self.OpenDialog1.FileName+'''');  
      try  
          self.Query1.ExecSQL;  
      except  
          showmessage('error');  
      end;  
  end;  
  end;  
   
  //恢复  
  procedure   TForm1.Button2Click(Sender:   TObject);  
  begin  
  if   self.OpenDialog1.Execute   then  
  begin  
      self.Query1.Close;  
      self.Query1.SQL.Clear;  
      self.Query1.SQL.Add('restore   database   liangyou   from   disk   ='+''''+self.OpenDialog1.FileName+'''');  
      if   application.MessageBox('您确定覆盖数据库文件?','信息提示',mb_yesno)=mryes   then  
      begin  
          try  
              self.Query1.ExecSQL;  
          except  
              showmessage('error');  
          end;  
      end;  
  end;  
  end;  
   
  procedure   TForm1.Button3Click(Sender:   TObject);  
  begin  
  self.Query1.Close;  
  self.Query1.SQL.Clear;  
  self.Query1.SQL.Add('drop   database   liangyou');  
  try  
      self.Query1.ExecSQL;  
  except  
      showmessage('error');  
  end;  
  end;procedure   TForm1.Button1Click(Sender:   TObject);  
  begin  
  if   self.OpenDialog1.Execute   then  
  begin  
      self.Query1.Close;  
      self.Query1.SQL.Clear;  
      self.Query1.SQL.Add('backup   database   liangyou   to   disk   ='+''''+self.OpenDialog1.FileName+'''');  
      try  
          self.Query1.ExecSQL;  
      except  
          showmessage('error');  
      end;  
  end;  
  end;  
   
  //恢复  
  procedure   TForm1.Button2Click(Sender:   TObject);  
  begin  
  if   self.OpenDialog1.Execute   then  
  begin  
      self.Query1.Close;  
      self.Query1.SQL.Clear;  
      self.Query1.SQL.Add('restore   database   liangyou   from   disk   ='+''''+self.OpenDialog1.FileName+'''');  
      if   application.MessageBox('您确定覆盖数据库文件?','信息提示',mb_yesno)=mryes   then  
      begin  
          try  
              self.Query1.ExecSQL;  
          except  
              showmessage('error');  
          end;  
      end;  
  end;  
  end;  
   
  procedure   TForm1.Button3Click(Sender:   TObject);  
  begin  
  self.Query1.Close;  
  self.Query1.SQL.Clear;  
  self.Query1.SQL.Add('drop   database   liangyou');  
  try  
      self.Query1.ExecSQL;  
  except  
      showmessage('error');  
  end;  
  end;procedure   TForm1.Button1Click(Sender:   TObject);  
  begin  
  if   self.OpenDialog1.Execute   then  
  begin  
      self.Query1.Close;  
      self.Query1.SQL.Clear;  
      self.Query1.SQL.Add('backup   database   liangyou   to   disk   ='+''''+self.OpenDialog1.FileName+'''');  
      try  
          self.Query1.ExecSQL;  
      except  
          showmessage('error');  
      end;  
  end;  
  end;  
   
  //恢复  
  procedure   TForm1.Button2Click(Sender:   TObject);  
  begin  
  if   self.OpenDialog1.Execute   then  
  begin  
      self.Query1.Close;  
      self.Query1.SQL.Clear;  
      self.Query1.SQL.Add('restore   database   liangyou   from   disk   ='+''''+self.OpenDialog1.FileName+'''');  
      if   application.MessageBox('您确定覆盖数据库文件?','信息提示',mb_yesno)=mryes   then  
      begin  
          try  
              self.Query1.ExecSQL;  
          except  
              showmessage('error');  
          end;  
      end;  
  end;  
  end;  
   
  procedure   TForm1.Button3Click(Sender:   TObject);  
  begin  
  self.Query1.Close;  
  self.Query1.SQL.Clear;  
  self.Query1.SQL.Add('drop   database   liangyou');  
  try  
      self.Query1.ExecSQL;  
  except  
      showmessage('error');  
  end;  
  end;Top

10 楼rongchao22(浪子爱丫头)回复于 2003-12-04 10:03:04 得分 10

给分给分Top

相关问题

  • installshield8.0打包安装数据库
  • 安装程序怎样把MSDE的数据库打包进去
  • 大家怎样对数据库打包进安装程序?
  • 200分求打包时自动安装数据库.
  • 数据库备份?
  • 数据库备份
  • 数据库备份?
  • 数据库备份???
  • 备份数据库
  • 数据库备份

关键词

  • win2000
  • 数据库
  • 系统
  • sql
  • 安装
  • database
  • self
  • opendialog
  • query
  • execsql

得分解答快速导航

  • 帖主:danielrong
  • oklida
  • fhuibo
  • codehunter008
  • rongchao22

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo