Merhaba yanıtınız için çok teşekkür ederim.
Eventlar konusunda çok fazla bilgim ve tecrübem olmadığı için farklı bir yöntemle hallettim.
İhtiyaç olabileceği için kodları buraya ekliyorum.
Forma bir adet Button ve Memo koyun.
( deneme amaclı memo kullandım. Progressbar'a atamak için basit COPY ve POS fonksiyonları kullanılabilir. )
Kod: Tümünü seç
uses AdoInt,ComObj;
...
...
...
procedure TForm1.btn1Click(Sender: TObject);
var cmd : _Command;
Conn : _Connection;
RA : OleVariant;
rs :_RecordSet;
n : Integer;
begin
Memo1.Clear;
Conn := CreateComObject(CLASS_Connection) as _Connection;
Conn.ConnectionString := 'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Monster;Data Source=NC8430';
Conn.Open(Conn.ConnectionString,'','',Integer(adConnectUnspecified));
cmd := CreateComObject(CLASS_Command) as _Command;
cmd.CommandType := adCmdText;
cmd.Set_ActiveConnection(Conn);
cmd.CommandText := 'BACKUP DATABASE [Monster] TO DISK = N''c:\backupdeneme\deneme.bak'' WITH INIT , NOUNLOAD , NAME = N''Deneme yedek'', NOSKIP , STATS = 1, NOFORMAT;';
rs:=cmd.Execute(RA,0,Integer(adCmdText));
while (rs<>nil) do
begin
for n:=0 to(Conn.Errors.Count-1)do begin
Memo1.Lines.Add(Conn.Errors.Item[n].Description);
end;
rs:=rs.NextRecordset(RA);
end;
cmd.Set_ActiveConnection(nil);
Conn.Close;
cmd := nil;
Conn := nil;
end;
Burada memo içerisine şu şekilde adım adım ekleme yapıyor.
Kod: Tümünü seç
1 percent processed.
2 percent processed.
3 percent processed.
...
...
...
97 percent processed.
98 percent processed.
99 percent processed.
Processed 1216 pages for database 'Monster', file 'Monster' on file 1.
100 percent processed.
Processed 1 pages for database 'Monster', file 'Monster_log' on file 1.
BACKUP DATABASE successfully processed 1217 pages in 2.278 seconds (4.173 MB/sec).
cmd.CommandText e atadığımız string içerisindeki STATS=1 değeri birer birer artırmaya yarıyor.
STATS=10 yazarsak onar onar artıracaktır.