Data yang tersimpan di database makin lama akan bertambah banyak.
Jumlah yang demikian besar akan memperlambat proses query yang akan
dilakukan. Sehingga perlu adanya tindakan backup/restore database untuk
melengkapi software yang kita buat.
Untuk membackup database, anda dapat menggunakan tool pada MS SQL server dan mengetikkan perintah seperti ini:
backup database NamaDatabase to disk = 'c:\NamaBackup.dat'
sedangkan untuk restore database adalah sebagai berikut:
restore database NamaDatabase from disk = ' c:\NamaBackup.dat'
Atur TConnection seperti berikut:
with Connetion1 do
begin
Close;
ConnectionString :=
'Provider=SQLOLEDB.1;' +
'Password=' + PasswordServer + ';' +
'Persist Security Info=True;' +
'User ID=' + UserNameServer + ';' +
'Initial Catalog=' + NamaDatabaseServer + ';' +
'Data Source=' + NamaServer;
'Password=' + PasswordServer + ';' +
'Persist Security Info=True;' +
'User ID=' + UserNameServer + ';' +
'Initial Catalog=' + NamaDatabaseServer + ';' +
'Data Source=' + NamaServer;
LoginPrompt := false;
Open;
end;
BACKUP DATABASE
Atur TAdoQuery seperti berikut:
with AdoQuery1 do
begin
Close;
Clear;
CommandTimeout := 0;
Add('backup database NamaDatabase to disk = ' + QuotedStr(NamaFile));
ExecSQL;
end; Clear;
CommandTimeout := 0;
Add('backup database NamaDatabase to disk = ' + QuotedStr(NamaFile));
ExecSQL;
RESTORE DATABASE
Restore database agak sedikit berbeda dari pengetikan di tool MS SQL Server. Hal-hal yang mempengaruhi kesuksesannya adalah: Pada saat terjadi restore, database hanya boleh diakses oleh user tunggal. Untuk melakukan hal ini, kita perlu mengubah database ke user tunggal dengan perintah berikut:
alter database NamaDatabase set SINGLE_USER with ROLLBACK immediate
Setelah itu, file database yang dibackup tidak boleh dipegang oleh siapapun. Untuk melaksanakan hal ini, kita dapat menggantinya dengan memegang database master dengan perintah berikut:
use master
setelah itu barulah file database backup di restore:
restore database NamaDatabase from disk = ' + QuotedStr(edtPathFile.Text )
Pelaksanaan eksekusi dari perintah-perintah diatas dapat saja melewati batas waktu dari komponent TAdoQuery. Agar waktu yang diberikan tanpa batas, anda dapat memberikan
CommandTimeout := 0;
Berikut ini adalah kode program lengkap penjelasan diatas:
with dm.qryEntry , SQL do
begin
Close;
Clear;
CommandTimeout := 0;
Add('alter database NamaDatabase set SINGLE_USER with ROLLBACK immediate');
ExecSQL;
Close;
Clear;
CommandTimeout := 0;
Add('use master');
ExecSQL;
Close;
Clear;
CommandTimeout := 0;
Add('restore database NamaDatabase from disk = ' + QuotedStr(edtPathFile.Text ));
ExecSQL;
end;
begin
Close;
Clear;
CommandTimeout := 0;
Add('alter database NamaDatabase set SINGLE_USER with ROLLBACK immediate');
ExecSQL;
Close;
Clear;
CommandTimeout := 0;
Add('use master');
ExecSQL;
Close;
Clear;
CommandTimeout := 0;
Add('restore database NamaDatabase from disk = ' + QuotedStr(edtPathFile.Text
ExecSQL;
end;
0 comments:
Posting Komentar