2012-01-18 18 views
38

Delphi XE2 ile birlikte gelen yeni ODBC dbExpress sürücüsünü test ediyorum ve TSQLMonitor'un işe yaramadığını fark ettim. Bileşeni hatalı şekilde yapılandırmış olabileceğimi düşünerek, MS SQL dbExpress sürücüsünü kullanan TSQLConnection'a bir TSQLMonitor bağladım ve bu bir cazibe gibi çalıştı.TSQLMonitor'ı yeni ODBC dbExpress sürücüsünü kullanan TSQLConnection ile kullanmak için bir numara var mı?

Web'de bu sorunla ilgili herhangi bir yazı göremiyorum. Bu sorunu başka biri fark etti mi? Bir hata, desteklenmeyen bir özellik (ODBC sürücüsünü kullanan bir TSQLConnection üzerinde izleme yok) gibi görünüyor mu, yoksa TSQLMonitor bu koşul altında yapılandırmak için bir hile var mı?

+0

Sürücü türetilmiş izlemeyi kullanmayı deneyin mü? Bu SQLMonitor sonuçlarına ekler ve faydalı olabilir. ODBC sürücüsü tam olarak yerel bir sürücü ise (sanırım) "eski" Dll tabanlı sürücüleri ile aynı çalışmayabilir olabilir .... –

+1

Marco: Bu harika bir öneridir. TSQLConnection ODBC sürücüsüne bağlandıktan ve TSQLConnection'ın Sürücü özelliğini genişlettikten sonra, sürücünün DelegateConnection özelliğini DBXTrace'e ayarladım. Sonra DelegateConnection özelliğini genişletip, TraceFile öğesini bir dosya adına (önerilerinize göre) True ve TraceFile olarak ayarladım. Bu geçici çözüm için teşekkür ederiz. Hala TSQLMonitor sorununun nasıl çözüleceğini bilen biri olup olmadığını görmek istiyorum. –

+0

@Marco Cantù: Biraz konu ama lütfen bunu dikkate alabilirsin [post] (http://stackoverflow.com/questions/10147850/add-my-own-items-to-delphi-ide-insight-f6-with -in-delphi-açık-araçlar-aPI)? – menjaraz

cevap

1

bu deneyin:

procedure TForm2.Button1Click(Sender: TObject); 
begin 
    try 
    Connect; 
    SQLMonitor1.SQLConnection := SQLConnection1; 
    SQLMonitor1.Active := True; 
    ExecuteQueries; 
    SQLMonitor1.SaveToFile('D:\\Log.txt'); 
    except 
    on E: Exception do 
     ShowMessage('Exception ocurred!: ' + E.Message); 
    end; 
end; 

procedure TForm2.Connect; 
begin 
    SQLConnection1 := TSQLConnection.Create(nil); 
    SQLConnection1.ConnectionName := 'odbcinterbaseconnection'; 
    SQLConnection1.LoginPrompt := False; 
    SQLConnection1.LoadParamsOnConnect := True; 
    SQLConnection1.Connected := True; 
end; 

procedure TForm2.ExecuteQueries; 
var 
    Query: String; 
begin 
    try 
    if SQLConnection1.Connected then 
    begin 
     Query := 'CREATE TABLE ExampleTable(id INTEGER, name VARCHAR(50))'; 
     SQLConnection1.Execute(Query, nil); 
     Query := 'INSERT INTO ExampleTable VALUES(1,''test1'')'; 
     SQLConnection1.Execute(Query, nil); 
     Query := 'INSERT INTO ExampleTable VALUES(2,''test2'')'; 
     SQLConnection1.Execute(Query, nil); 
     Query := 'INSERT INTO ExampleTable VALUES(3,''test3'')'; 
     SQLConnection1.Execute(Query, nil); 
     Query := 'SELECT * FROM ExampleTable'; 
     SQLConnection1.Execute(Query, nil); 
    end; 
    except 
    on E: Exception do 
     ShowMessage('Exception ocurred!: ' + E.Message); 
    end; 
end;