源程序 try
DataStr:=Edit3.text+'_Data.MDF';
LogStr:=Edit3.text+'_Log.LDF';
Copyfile(PChar('E:\php\SK_Data.MDF'),PChar(Edit3.text+'_Data.MDF'),false) ;
Copyfile(PChar('E:\php\SK_Log.LDF'),PChar(Edit3.text+'_Log.LDF'),false) ;
with ADOQuery1 do
begin
SQL.Clear ;
SQL.add('sp_attach_db @dbname=N'+''+':yourdbname'+''+' , ');
SQL.add('@filename1=N'+':data'+' , ');
SQL.add('@filename2=N'+':log');
Parameters.ParamByName('yourdbname').Value :=''''+Trim(Edit1.Text )+'''';
Parameters.ParamByName('data').Value :=''''+DataStr+'''';
Parameters.ParamByName('log').Value :=''''+LogStr+'''';
end;
ADOQuery1.ExecSQL ;
ShowMessage('成功') ;
except
ShowMessage('失败');
Self.Close ;
end;
MSSQL事件器捕抓到:
exec sp_executesql N'sp_attach_db @dbname=N@P1 ,
@filename1=N@P2 ,
@filename2=N@P3
', N'@P1 varchar(5),@P2 varchar(28),@P3 varchar(27)', '''hao''', '''D:\skerp\data\hao_Data.MDF''', '''D:\skerp\data\hao_Log.LDF'''
提示语法错误,直接用这个 ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.add('sp_attach_db @dbname=N'+''+'''yourdbname'''+''+' , ');
ADOQuery1.SQL.add('@filename1=N'+''''+'D:\skerp\data\hao_Data.MDF'+''''+' , ');
ADOQuery1.sql.add('@filename2=N'+''''+D:\skerp\data\hao_Log.LDF''') ;
ADOQuery1.ExecSQL ;
是正确。
谢谢!
DataStr:=Edit3.text+'_Data.MDF';
LogStr:=Edit3.text+'_Log.LDF';
Copyfile(PChar('E:\php\SK_Data.MDF'),PChar(Edit3.text+'_Data.MDF'),false) ;
Copyfile(PChar('E:\php\SK_Log.LDF'),PChar(Edit3.text+'_Log.LDF'),false) ;
with ADOQuery1 do
begin
SQL.Clear ;
SQL.add('sp_attach_db @dbname=N'+''+':yourdbname'+''+' , ');
SQL.add('@filename1=N'+':data'+' , ');
SQL.add('@filename2=N'+':log');
Parameters.ParamByName('yourdbname').Value :=''''+Trim(Edit1.Text )+'''';
Parameters.ParamByName('data').Value :=''''+DataStr+'''';
Parameters.ParamByName('log').Value :=''''+LogStr+'''';
end;
ADOQuery1.ExecSQL ;
ShowMessage('成功') ;
except
ShowMessage('失败');
Self.Close ;
end;
MSSQL事件器捕抓到:
exec sp_executesql N'sp_attach_db @dbname=N@P1 ,
@filename1=N@P2 ,
@filename2=N@P3
', N'@P1 varchar(5),@P2 varchar(28),@P3 varchar(27)', '''hao''', '''D:\skerp\data\hao_Data.MDF''', '''D:\skerp\data\hao_Log.LDF'''
提示语法错误,直接用这个 ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.add('sp_attach_db @dbname=N'+''+'''yourdbname'''+''+' , ');
ADOQuery1.SQL.add('@filename1=N'+''''+'D:\skerp\data\hao_Data.MDF'+''''+' , ');
ADOQuery1.sql.add('@filename2=N'+''''+D:\skerp\data\hao_Log.LDF''') ;
ADOQuery1.ExecSQL ;
是正确。
谢谢!
exec sp_executesql N 'sp_attach_db @dbname=N@P1 ,
@filename1=N@P2 ,
@filename2=N@P3
', N '@P1 varchar(5),@P2 varchar(28),@P3 varchar(27) ', ' ' 'hao ' ' ', ' ' 'D:\skerp\data\hao_Data.MDF ' ' ', ' ' 'D:\skerp\data\hao_Log.LDF ' ' ' 用SQL查询分析运行上面会提示语法错误,不知道怎么调试这个SQL语句