注意:用DBEXpress给SQLServer2000备份、恢复的操作。(50分)

N

nzfsoft

Unregistered / Unconfirmed
GUEST, unregistred user!
界面上有如下控件:
一、DBexpressConnection(2个)
1.SQLCn 2.TmpCn
其中SQlCn连接到用户数据库ICSALER,TmpCn连接到MASTER数据库
二、一个ClintDataset。(名字为 C)
=======================
备份成功:
恢复操作:
procedure TForm1.Button2Click(Sender: TObject);
var SQL,FileName,s:string;
R:integer;
begin

s:='';
d.InitialDir :='C:/';
d.Filter :='*.mdb|*.mdb';
d.Title :='OKOKOKOKO';
d.Execute ;
FileName:=d.FileName;//获取的文件名字与路径
C.Close ;
SQLcn.Close;
TmpCn.Close ;
tmpcn.ExecuteDirect( 'ALTER DataBase IcSaler SET SINGLE_USER ');//这句时死机

SQL:='restore database icsaler from disk='+''''+FileName+'''';
R:=TmpCn.ExecuteDirect(SQL);
Showmessage('R='+Inttostr(R));
tmpCN.Open ;
end;
我已经把其它连接关闭了。只打开连接到Master库的TempCon,但是为什么不可以备份呢?
 
备份的时候容易得很
恢复的时候,不能有任何用户使用要恢复的库,包括恢复程序

看一下数据库的进程列表,有没有其他的进程
 
我已经把所有的连接都关闭了呀。。。怎么会有连接呢?
而且。我是单机版。我把连接关闭了。就肯定不会有连接了呀。
但怎么还不能独占打开呢?
 
不看一下数据库的进程,你能保证没有别的连接吗?
如果没有别的连接,肯定能够恢复的
 
我变通一下,在满是DBEXPRESS的控件中。
另加一个ADOConnection,AdoCommand来实现了备份与恢复。
(并发现一个小秘密:用ADO恢复时,不需要DBEXPRESS关闭连接就可以恢复成功)
 
尽管任务解决了。但心里不爽。
为什么DBEXPRESS无法顺利完成恢复备份呢?
 
真是奇怪了,如果数据库被是用,
是没有办法进行恢复的
 
1.你可以试一下。ADO恢复确定可以。
2.但用DBEXPRESS就不可以搞定。
你可不可以试一下呢?

恢复备份的部分,如可以。请给我附一段代码
 
我程序中就三个DBEXPRESS的东西。我都CLOSE了。怎么可能会有对数据库的连接?
既然没有连接。为什么不可以设为独占模式并恢复备份?
 
还等啊,可惜我没有MS SQL2000,否则我给你试一下
 
没办法。就是没有搞定呀。。。。不知道原因。所以郁闷呀。
 
我用的是D6,没有SQL2000的dbExpress组件支持,你有没有啊?
 
可以搞定呀。。。我搞定了。你把D7中的DLL拷到相应位置。
然后你给我QQ,我把两个文件发给你,就完成D6对SQL2000的支持安装了。
这可是原创呀。。。
 
////dbxconnections.ini修改如下:
[DB2Connection]
BlobSize=-1
Database=DBNAME
DriverName=DB2
ErrorResourceFile=
LocaleCode=0000
Password=password
DB2 TransIsolation=ReadCommited
User_Name=user

[MSConnection]
BlobSize=-1
Database=DBNAME
DriverName=MYSQL
ErrorResourceFile=
HostName=ServerName
LocaleCode=0000
Password=password
User_Name=user

[IBLocal]
BlobSize=-1
CommitRetain=False
Database=database.gdb
DriverName=Interbase
ErrorResourceFile=
LocaleCode=0000
Password=masterkey
RoleName=RoleName
ServerCharSet=
SQLDialect=1
Interbase TransIsolation=ReadCommited
User_Name=sysdba
WaitOnLocks=True

[Oracle]
BlobSize=-1
DataBase=Database Name
DriverName=Oracle
ErrorResourceFile=
LocaleCode=0000
Password=password
Oracle TransIsolation=ReadCommited
User_Name=user

[Sybase]
BlobSize=-1
DataBase=Server:Database
DriverName=Sybase
LocaleCode=0000
Password=password
User_Name=sa
[MySQLConnection]
DriverName=MySQL
HostName=ServerName
Database=DBNAME
User_Name=user
Password=password
BlobSize=-1
LocaleCode=0000
[IBConnection]
DriverName=Interbase
Database=database.gdb
RoleName=RoleName
User_Name=sysdba
Password=masterkey
SQLDialect=1
LocaleCode=0000
BlobSize=-1
CommitRetain=False
WaitOnLocks=True
Interbase TransIsolation=ReadCommited
Trim Char=False
[OracleConnection]
DriverName=Oracle
DataBase=Database Name
User_Name=user
Password=password
RowsetSize=20
BlobSize=-1
LocaleCode=0000
Oracle TransIsolation=ReadCommited
OS Authentication=False
Multiple Transaction=False
Trim Char=False
[InformixConnection]
DriverName=Informix
HostName=ServerName
DataBase=Database Name
User_Name=user
Password=password
BlobSize=-1
LocaleCode=0000
Informix TransIsolation=ReadCommited
Trim Char=False
[MSSQLConnection]
DriverName=MSSQL
HostName=ServerName
DataBase=Database Name
User_Name=user
Password=password
BlobSize=-1
LocaleCode=0000
MSSQL TransIsolation=ReadCommited
OS Authentication=False
 
//dbxdrivers.ini修改如下:
[Installed Drivers]
DB2=1
Interbase=1
MYSQL=1
Oracle=1
Sybase=1
MSSQL=1

[DB2]
GetDriverFunc=getSQLDriverDB2
LibraryName=DBEXPDB2.DLL
VendorLib=db2cli.dll
BlobSize=-1
Database=DBNAME
ErrorResourceFile=
LocaleCode=0000
Password=password
DB2 TransIsolation=ReadCommited
User_Name=user

[Interbase]
GetDriverFunc=getSQLDriverINTERBASE
LibraryName=dbexpint.dll
VendorLib=GDS32.DLL
BlobSize=-1
CommitRetain=False
Database=database.gdb
ErrorResourceFile=
LocaleCode=0000
Password=masterkey
RoleName=RoleName
ServerCharSet=
SQLDialect=1
Interbase TransIsolation=ReadCommited
User_Name=sysdba
WaitOnLocks=True

[MYSQL]
GetDriverFunc=getSQLDriverMYSQL
LibraryName=dbexpmys.dll
VendorLib=LIBMYSQL.dll
BlobSize=-1
Database=DBNAME
ErrorResourceFile=
HostName=ServerName
LocaleCode=0000
Password=password
User_Name=user

[Oracle]
GetDriverFunc=getSQLDriverORACLE
LibraryName=dbexpora.dll
VendorLib=OCI.DLL
BlobSize=-1
DataBase=Database Name
ErrorResourceFile=
LocaleCode=0000
Password=password
Oracle TransIsolation=ReadCommited
User_Name=user

[MSSQL]
GetDriverFunc=getSQLDriverMSSQL
LibraryName=dbexpmss.dll
VendorLib=oledb
HostName=ServerName
DataBase=Database Name
User_Name=user
Password=password
BlobSize=-1
LocaleCode=0000
MSSQL TransIsolation=ReadCommited
OS Authentication=False

[AutoCommit]
False=0
True=1

[BlockingMode]
False=0
True=1

[WaitOnLocks]
False=1
True=0

[CommitRetain]
False=0
True=1

[DB2 TransIsolation]
DirtyRead=0
ReadCommited=1
RepeatableRead=2

[Interbase TransIsolation]
ReadCommited=1
RepeatableRead=2

[Oracle TransIsolation]
DirtyRead=0
ReadCommited=1
RepeatableRead=2

[MSSQL TransIsolation]
DirtyRead=0
ReadCommited=1
RepeatableRead=2

[SQLDialect]
1=0
2=1
3=2

[OS Authentication]
False=0
True=1

[Sybase]
GetDriverFunc=getSQLDriverSYBASE
LibraryName=dbexpsyb.dll
VendorLib=CTLIB.DLL
BlobSize=-1
DataBase=Server:Database
LocaleCode=0000
Password=password
User_Name=sa
[Informix]
GetDriverFunc=getSQLDriverINFORMIX
LibraryName=dbexpinf.dll
VendorLib=isqlb09a.dll
HostName=ServerName
DataBase=Database Name
User_Name=user
Password=password
BlobSize=-1
LocaleCode=0000
Informix TransIsolation=ReadCommited
Trim Char=False

[Multiple Transaction]
False=0
True=1
[Trim Char]
False=0
True=1
[Informix TransIsolation]
DirtyRead=0
ReadCommited=1
RepeatableRead=2
 
Program Files/Common Files/Borland Shared/DBExpress
这两个文件是在以上目录下。
 
顶部