当前位置: 代码迷 >> PB >> 数据库的整体操作,该如何解决
  详细解决方案

数据库的整体操作,该如何解决

热度:78   发布时间:2016-04-29 09:51:16.0
数据库的整体操作
开发了一个计算软件。现在pb通过数据源连接了一个确定的数据库。遇到一个问题,算过一次以后,再算第二次,第一次的数据就没了。感觉如果修改数据库的话,各种改动工作量可能比较大。可不可以在pb里编程,在前台实现以下功能:
1.在sqlserver里附加数据库,和前台连接
2.将数据库文件制作副本,然后附加这个副本,和前台连接
3.将正在连接的数据库脱机,然后另存为数据文件。


------解决方案--------------------
数据库的备份与恢复
SQL code
--sql 1备份pubs数据库到c:\pubs.bakBACKUP DATABASE [pubs] TO  DISK = N'c:\pubs.bak'--sql 2 获取mast逻辑文件路径SELECT FileName FROM master..sysfiles WHERE Name = 'master'--sql3 获取备份文件的逻辑文件名及路径等RESTORE FILELISTONLY FROM DISK = N'c:\pubs.bak'--sql 4 还原到pubstmp数据库RESTORE DATABASE [pubstmp] FROM  DISK = N'c:\pubs.bak' WITH  FILE = 1,  NOUNLOAD ,  STATS = 10,  RECOVERY ,  REPLACE ,  MOVE N'pubs' TO N'c:\program files\microsoft sql server\mssql\data\pubstmp.mdf',   MOVE N'pubs_log' TO N'c:\program files\microsoft sql server\mssql\data\pubstmp.ldf'  --其中'pubs','pubs_log'是'c:\pubs.bak'备份文件中的数据库逻辑文件名,--这个逻辑名在sql 3中获取,你可以在pb中用游标来获取,不懂在帮助中查Dynamic SQL Format 3的用法--'c:\program files\microsoft sql server\mssql\data\pubstmp.mdf'是还原数据库pubstmp逻辑文件存放路径--这个路径可以设置到master逻辑文件路径的同一个文件夹内,当然也可以自己设置到别的文件夹--sql 5 删除数据库--DROP DATABASE [pubstmp]
------解决方案--------------------
SQL code
备份和恢复SQL-SERVER2000数据库  如何在PB 中备份 SQL SERVER 2000 的数据库?设置备份设备:/****************************************************************/string ls_execSqlls_execSql = "sp_addumpdevice 'disk','HC_JXC','C:\BACKUP\HC_JXC.bak'"execute immediate :ls_execSql using sqlca;if sqlca.sqlcode <> 0 then   messagebox("设置设备","设备已经存在,不需要设置。")else   messagebox("设置设备","设置设备成功!")end if/****************************************************************/数据库备份/****************************************************************/string ls_execSqlls_execSql = "backup database HC_JXC to HC_JXC"execute immediate :ls_execSql using sqlca;if sqlca.sqlcode <> 0 then   messagebox("备份数据","数据备份失败,可能数据库正在使用,或者数据库没有连接!")else   messagebox("备份数据","数据备份成功!")end if/****************************************************************/数据库恢复/****************************************************************/string ls_execSqlls_execSql = "use master restore database HC_JXC from HC_JXC"execute immediate :ls_execSql using sqlca;if sqlca.sqlcode <> 0 then   messagebox("恢复数据","恢复数据失败,可能数据库正在使用,或者数据库没有连接!")else   messagebox("恢复数据","恢复数据成功!")end if
  相关解决方案