【delphi开源代码栏目提醒】:网学会员在delphi开源代码频道为大家收集整理了DataBaseUnit.pas提供大家参考,希望对大家有所帮助!
unit DataBaseUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ComCtrls, DB, ADODB, IniFiles, XPMan;
procedure AddDataBase;
implementation
procedure AddDataBase;
var
SQL: string;
i: Integer;
FSR: TSearchRec;
MDF, LDF: string;
AnnexName: string;
Dir: string;
ADOConnection1: TADOConnection;
begin
try
Dir := ExtractFileDir(Application.ExeName) + '\DataBase\';
for i := 0 to ParamCount do
if ParamStr(i) = 'MRSOFT' then
begin
ADOConnection1 := TADOConnection.Create(nil);
ADOConnection1.ConnectionString := 'Provider=SQLOLEDB.1;Integrated Security' +
'=SSPI;Persist Security Info=False;' +
'Initial Catalog=master;Data Source=' + '.';
ADOConnection1.Connected := True;
if FindFirst(Dir + '*.mdf', faAnyFile, FSR) = 0 then
begin
MDF := Dir + FSR.Name;
LDF := StringReplace(MDF, '_Data.MDF', '', [rfReplaceAll]) + '_Log.LDF';
AnnexName := StringReplace(ExtractFileName(MDF),
'_Data.MDF', '', [rfReplaceAll]);
SQL := 'EXEC sp_attach_db @dbname = N' + QuotedStr(AnnexName) + ',';
SQL := SQL + '@filename1 = N' + QuotedStr(MDF) + ',';
SQL := SQL + '@filename2 = N' + QuotedStr(LDF) + '';
ADOConnection1.Execute(SQL);
end;
while (FindNext(FSR) = 0) do
begin
MDF := Dir + FSR.Name;
LDF := StringReplace(MDF, '_Data.MDF', '', [rfReplaceAll]) + '_Log.LDF';
AnnexName := StringReplace(ExtractFileName(MDF),
'_Data.MDF', '', [rfReplaceAll]);
SQL := 'EXEC sp_attach_db @dbname = N' + QuotedStr(AnnexName) + ',';
SQL := SQL + '@filename1 = N' + QuotedStr(MDF) + ',';
SQL := SQL + '@filename2 = N' + QuotedStr(LDF) + '';
ADOConnection1.Execute(SQL);
end;
end;
finally
FreeAndNil(ADOConnection1);
Application.Terminate;
end;
end;
end.