我要更新一个数据库,我的做法是:先备份数据库(将数据库独占使用)-->>更新数据库-->>恢复数据库(如果更新失败)-->>最后恢复数据库状态问题是怎么做到数据库独占使用!!!!
知道的,帮一下忙
知道的,帮一下忙
解决方案 »
- 怎么样通过控件连接SQL数据库并在控件中同时显示2个表以上的信息 然后添加一个查询功能(可以在显示的信息中查询到所需要的信息)?
- CSDN博客主页专家推荐里 没有一个delphi 真可怜
- fastreport frcrossview能不能只显示下面的合计?
- 用delphi写的dll文件,可以用vb调用吗?
- 哪里能下到:fastreport 3.05 with full source?
- 求救
- 大哥大姐们帮帮忙,OleContainer怎么连接数据库文件?
- D7连接Access/SQL Server的问题,奇怪?
- 谁知道呢?
- 如何让Memo翻页?
- Tlist, 数据类型转换,指针的菜鸟问题
- 读串口数据的时候,怎么把发送出去的指令都读回来了?(AT指令)
GO
sp_dboption '数据库名', 'single user', 'true'
GO
GO
sp_dboption '数据库名', 'single user', 'true'
GO
backup database sys to disk='c:\目录\a.bak' with init
差异:
backup database sys to disk='c:\目录\a.bak' WITH DIFFERENTIAL
--还原
use master
RESTORE DATABASE TestDB FROM DISK = 'c:\目录\a.bak'
执行sp_dboption '数据库名', 'single user', 'true'是不成功的!我用邹建的 proc p_killspid 杀死所有的进程后就可以执行上句了,可是我的程序的数据库连接也被 kill 掉了,结果死活连不上了。
var S:String;
begin
s:='EXEC sp_attach_db @dbname = N'+char(39)+'通迅录'+char(39)+','+
'@filename1 = N'+char(39)+ExtractFilePath(paramstr(0))+'通迅录_Data.MDF'+char(39)+
','+'@filename2 = N'+char(39)+ExtractFilePath(paramstr(0))+'通迅录_Log.LDF'+char(39);
ADOCommand.CommandText := s;
ADOCommand.Execute();
Messagebox(handle,'数据库安装成功!','提醒',MB_OK+MB_ICONINFORMATION);
end;详细请看 我的通信录 SQL版例子不错,DELPHI园地有下载!
怪我的想法太死板 :)接分!!!!!!!!!!!!