query.sql.clear;
query.sql.add('EXEC sp_detach_db @dbname = ''mydb''');
query.sql.execsql;
query.sql.clear;
query.sql.add('EXEC sp_attach_single_file_db @dbname = ''mydb''');
query.sql.add('@physname = '''+opendialog.filename+''');
query.sql.execsql;

解决方案 »

  1.   

    1, 你的query要连接在master上才好,用sa连接
      

  2.   

    如是你的MDF已存在产且有他的LDF你可以这样写
    query.sql.clear;
    query.sql.add('EXEC sp_attach_db @dbname = N'mydb',');
    query.sql.add('@filename1 = N'''+opendialog.filename+'',');//mdf
    query.sql.add('@filename2 = N'''+opendialog.filename+''');//ldf
    query.sql.execsql;
      

  3.   

    楼上那样写的语法没错吗?
    我是这样写的,可是提示出错,“不能使文件与不同的数据库相关”,这是为什么?
    ADOQuery1.SQL.Clear;
    ADOQuery1.sql.add('EXEC sp_attach_db @dbname =''swgl_pos'',');
    ADOQuery1.sql.add('@filename1 ='''+edit2.text+''',');   //mdf
    ADOQuery1.sql.add('@filename2 ='''+edit1.text+''' ');   //ldf
    ADOQuery1.execsql;