F
fscdc4
Unregistered / Unconfirmed
GUEST, unregistred user!
安装完sql2000后,如何安装数据库,我的代码是:<br>procedure TserverForm.restore5(file1:string);<br>var sqlstr,backup11,database1,restoretext,cur_dir:string;<br>begin<br> cur_dir:=getdir(); //取得当前目录<br> database1:='syjxc';<br> restoretext:='restore database syjxc from disk='+quotedstr(file1);<br> ADOQuery2.Connection.BeginTrans;<br> with ADOQuery2 do<br> begin<br> close;<br> sql.clear;<br> sql.Add('use master'); //设置当前数据库为master<br> sql.Add('ALTER DATABASE syjxc SET OFFLINE WITH ROLLBACK IMMEDIATE'); //分离数据库<br> sql.Add(restoretext); //还原数据库<br> sql.Add('ALTER DATABASE syjxc SET ONLINE WITH ROLLBACK IMMEDIATE'); //重新连接数据库<br> execsql;<br> end;<br> ADOQuery2.Connection.CommitTrans;<br> chdir(cur_dir); //恢复当前目录<br>end;<br>procedure TserverForm.cre_syjxc(db_name:string);<br>var sqlstr,backup11,database1:string;<br>//设置ADOQuery1链接数据库master,或动态链接<br>begin<br> SQLStr := 'select * from sysdatabases where name = '+ quotedStr(db_name);<br> with ADOQuery2 do<br> begin<br> Close;<br> SQL.Clear;<br> SQL.add(SQLStr);<br> Open;<br> if ISEmpty then<br> begin<br> SQLStr := 'Create Database '+db_name;//具体可参考MSSql<br> Close;<br> SQL.Clear;<br> SQL.add(SQLStr);<br> ExecSQL;<br> end;<br> end;<br>end;<br>function TserverForm.getdir():string;//取当前目录<br>var CDir:string;<br>begin<br> setlength(CDir,144);<br> if GetCurrentdirectory(144,pchar(cdir))<>0 then<br> setlength(cdir,strlen(pchar(cdir)))<br> else<br> raiselastwin32error;<br> result:=CDir;<br>end;<br><br>procedure TserverForm.FormActivate(Sender: TObject);<br>var cur_dir,file1:string;<br>begin<br> cre_syjxc('syjxc'); //建立syjxc<br> cur_dir:=getdir();<br> file1:=cur_dir+'/数据库文件/syjxc';<br> showmessage('服务器安装完毕');<br> close;<br>end;<br>//数据库是当前目录下的 数据库文件/syjxc<br>程序运行的结果是 建立了syjxc数据库,但没有把 数据库文件/syjxc 还原到数据库syjxc中,没有还原,但是如果用手工建立syjxc,,再运行以上程序的话,就可以还原。注:syjxc是备份出来的数据库,请问我如何修改以上的程序才能建立数据库syjxc,再还原呢