当前位置:主页>仓库管理软件> 列表

用程序创建SQL SERVER 数据库的问题!! 找简单财务软件

财务软件版1楼: [b][red]在SQL SERVER 2000中,我用程序来创建数据库和数据库中的表,但我怎么可以知道我数据库是否创建成功?什么时候创建结束?[/red][/b]

2楼: 我是用ADO控件来创建的,创建的不光有数据库还有数据库表

SQL SERVER 2000 中脚本执行完毕后有返回值吗? 如简单财务软件

3楼: 好象没有,我想执行完execsql应该就创建完了吧,创建数据库非常快的~

4楼: 用try...except...end就行了

5楼: 可以使用事务处理!

6楼: ......
Try
Try
dbMaster.Close;
dbMaster.ConnectionString := ''Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Master;Data Source='' + _sDataS;
dbMaster.Open;
//修改sa密码
With ADOQuery1 Do
Begin
Close;
SQL.Text := ''sp_Password NULL, '' + _sSaPass + '', sa'';
ExecSQL;
End;
Except
dbMaster.Close;
dbMaster.ConnectionString := ''Provider=SQLOLEDB.1;Password='' + _sSaPass + '';Persist Security Info=False;User ID=sa;Initial Catalog=Master;Data Source='' + _sDataS;


dbMaster.Open;
End;
Except
On E:Exception Do
Begin
MessageBox(0, pChar(''连接数据库失败 : '' + E.Message), pChar(_sTitle), MB_ICONSTOP);
edtDataS.SetFocus;
Exit;
End;
End;
sbMain.Panels[1].Text := ''连接数据库成功'' ;
gpMain.Position := 10;
FrmMain.update;
With ADOQuery1 do
begin
Close;
SQL.Text := ''SP_DataBases'';
Open;
While Not Eof Do
begin
if UpperCase(FieldByName(''DATABASE_NAME'').AsString) = UpperCase(_sDBName) then
begin
if application.messagebox(pChar(''数据库<'' + _sDBName + ''>已经存在,卸载后会将数据库中的数据清除,'' + #13#10 + ''确定将删除<'' + _sDBName + ''> 数据库!!!''), pChar(_sTitle), MB_YESNO+MB_ICONWARNING) = IDYES then
begin
Try
Close;
SQL.Text := ''DROP DATABASE '' + _sDBName;
ExecSQL;
//
Close;
SQL.Text := ''SP_DropLogin '' + _sDBName;
ExecSQL;
Except
On E:Exception DO
Begin
dbMaster.Close;
MessageBox(0, pChar(''数据库<'' + _sDBName + ''>卸载失败 : '' + E.Message), pChar(_sTitle), MB_ICONSTOP);
Exit;
End;
end;
Break;
end
else
begin
dbMaster.Close;
MessageBox(0, pChar(''安装过程终止!''), pChar(_sTitle), MB_ICONINFORMATION);
Exit;
end;
end;
Next;
end;
//
sFileName := _sDBPath + ''\Hiteker_Data.mdf'';
If FileExists(sFileName) Then DeleteFile(sFileName);
sFileName := _sDBPath + ''\Hiteker_Log.ldf'';
If FileExists(sFileName) Then DeleteFile(sFileName);
//
sbMain.Panels[1].Text := ''正在初始化数据库<'' + _sDBName + ''>...'' ;
gpMain.Position := 20;
FrmMain.update;
Close;
SQL.Clear ;
SQL.Add(''CREATE DATABASE '' + _sDBName ) ;
SQL.Add('' ON ( NAME = '' + _sDBName + ''_Data, '') ;
SQL.Add('' FILENAME = '''''' + _sDBPath + ''\'' + _sDBName + ''_Data.mdf'''', '') ;
SQL.Add('' SIZE = 1MB, '') ;
SQL.Add('' MAXSIZE = UNLIMITED, '') ;
SQL.Add('' FILEGROWTH = 10% '') ;
SQL.Add('' ) '') ;
SQL.Add(''LOG ON ( NAME = '' + _sDBName + ''_Log, '') ;
SQL.Add('' FILENAME = '''''' + _sDBPath + ''\'' + _sDBName + ''_Log.ldf'''', '') ;
SQL.Add('' SIZE = 1MB, '') ;

SQL.Add('' MAXSIZE = 32, '') ;
SQL.Add('' FILEGROWTH = 10% '') ;
SQL.Add('' ) '') ;
Try
ExecSQL ;
Except
dbMaster.Close;
MessageBox(0, pChar(''数据库<'' + _sDBName + ''>初始化失败!''), pChar(_sTitle), MB_ICONSTOP);
Exit;
End;
end;
dbMaster.Close;
......

财务软件版7楼: execsql是没有返回值
如果表不多的话,可用循环执行表的SQL脚本,前台用进度条表示

8楼: 执行完sql语句,数据库就创建成功了。
如果你不确定,可以到mater库中查询,查到你新建的库
在master中保存了sqlserver中所有数据库的信息