I have been testing the new ODBC dbExpress driver that ships with Delphi XE2, and have noticed that the TSQLMonitor does not seem to work. Thinking that I may have configured the component incorrectly, I hooked up a TSQLMonitor to a TSQLConnection that uses the MS SQL dbExpress driver, and that worked like a charm.
I don't see any posts about this problem on the Web. Has anyone else noticed this issue? Does it appear to be a bug, an unsupported feature (no monitoring on a TSQLConnection that uses the ODBC driver), or is there a trick to configuring the TSQLMonitor under this condition?
Try this out:
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;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With