如何在使用WISE时使用脚本,激活sql数据库,实现任意一条附加数据库的sql语句

解决方案 »

  1.   

    wise 能做这样的事吗?写个小程序调用一下算了。
      

  2.   

    sqlquery:=tadoquery.Create(nil);
        sqlquery.Connection:=form1.ADOConnection1;
        SQLQUERY.Close;
        sqlquery.SQL.Clear;
        sqlquery.SQL.Add('use [master]');
        sqlquery.ExecSQL;
        SQLQUERY.Close;
        sqlquery.SQL.Clear;
        sqlquery.SQL.Add('select * from sysdatabases');
        sqlquery.Open;
        sqlquery.First;
        while not sqlquery.Eof do
        begin
          if sqlquery.Fields[0].AsString=databasename then
          begin
            if application.MessageBox(pchar(databasename+' 已存在,是否覆盖?(Y/N)'),'系统提示',52)<>6 then exit;
          end;
          sqlquery.Next;
        end;
        //取得数据库默认路径
        sqlquery.Locate('name','master',[]);
        datapath:=extractfilepath(sqlquery.fieldbyname('filename').AsString);
        //删除原有数据库
        SQLQUERY.Close;
        sqlquery.SQL.Clear;
        sqlquery.SQL.Add('IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'''+databasename+''')');
        sqlquery.SQL.Add(' DROP DATABASE ['+databasename+']');
        sqlquery.ExecSQL;    label1.Caption:='创建 '+databasename;
        SQLQUERY.Close;
        sqlquery.SQL.Clear;
        sqlquery.SQL.Add('CREATE DATABASE ['+databasename+']');
        sqlquery.SQL.Add('  ON (NAME = N'''+databasename+'_Data''');
        sqlquery.SQL.Add(', FILENAME = N'''+datapath+databasename+'_Data.MDF''');
        sqlquery.SQL.Add(' , SIZE = 2, FILEGROWTH = 10%) LOG ON (NAME = N'''+databasename+'_Log''');
        sqlquery.SQL.Add(', FILENAME = N'''+datapath+databasename+'_Log.LDF''');
        sqlquery.SQL.Add(' , SIZE = 1, FILEGROWTH = 10%) COLLATE Chinese_PRC_CI_AS');
        sqlquery.ExecSQL;
        SQLQUERY.Close;
        sqlquery.SQL.Clear;
        sqlquery.SQL.Add('use ['+databasename+']');
        sqlquery.ExecSQL;