电脑中已安装SQL2000了,又装了一个MSDE
我想在软件启动时判断数据库是不是附加过了,如未附加,则附加到MSDE的一个实例中。
如何实现?

解决方案 »

  1.   

    MSDE的setup.ini文件如下:
    [Options]
    INSTANCENAME="MyHairdressSQL" 
    SECURITYMODE="SQL"
    SAPWD="123456"
    DISABLENETWORKPROTOCOLS=0下面语句获取实例时,每次都不一样
    procedure TForm1.FormCreate(Sender: TObject);
    var
      i,j: Integer;
      server,lists: variant;
    begin
      //获取局域网内的sql 2000/2005 数据库服务器实例名称
      //如果是本机,则显示local,如何修改成实际数据库服务器名称??
      server := CreateOleObject('sqldmo.application');
      lists := server.ListAvailableSQLServers;
      j:= lists.count;
      cbxServerName.Clear;
      for i := 1 to j do
      begin
        if lists.item(i) <> '' then
          cbxServerName.Items.Add(lists.item(i));
     end;
    end;
      

  2.   

    我装完MSDE后,SQL Server服务器管理器中的服务器实例多了一个MyHairdressSQL,说明MSDE安装成功了。
    可如何把数据库附加到这里呢?
      

  3.   

    ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add('sp_attach_db @dbname='+'''Accident'''+',');
      ADOQuery1.SQL.Add('@filename1='+''''+ExtractFilePath(Application.ExeName)+'db\netnurmg_bd_Data.MDF'+''''+',');
      ADOQuery1.SQL.Add('@filename2='+''''+ExtractFilePath(Application.ExeName)+'db\netnurmg_bd_Log.LDF''');
      ADOQuery1.ExecSQL;