![]() |
Datenbank: MySQL • Version: 5.x • Zugriff über: UniDac
TSqlMonitor zur Laufezeit erstellen
Hallo,
ich arbeite mit UniDac. Wenn ich den TSqlMonitor auf eine Form legen, dann läuft der einwandfrei. Nun habe ich leider in diesem Projekt keine Form. Wie kann ich den TMySqlMonitor zur Laufzeit erstellen? So wie ich das mache "sagt" das ding kein gar nichts. Vielen Dank im Voraus
Delphi-Quellcode:
if ( MySqlDebug ) then begin
MySQLMonitor:=TUniSQLMonitor.Create(nil); MySQLMonitor.Name:='MySqlDebugMonitor'; MySQLMonitor.DBMonitorOptions.Host:=ReadIniFileString('MySql','SqlMonitorIP',''); MySQLMonitor.DBMonitorOptions.Port:=ReadIniFileInteger('MySql','SqlMonitor',1000); MySqlMonitor.Actuve:=True; end else begin MySQLMonitor:=nil; end; |
AW: TSqlMonitor zur Laufezeit erstellen
Deine Komponente auf der Form hat nicht zufällig auch ein OnSQL-Event?
Zitat:
Delphi-Quellcode:
oder besser
MySQLMonitor.Free;
Delphi-Quellcode:
:zwinker:
FreeAndNil(MySQLMonitor);
|
AW: TSqlMonitor zur Laufezeit erstellen
Zitat:
Nachtrag: Oder wird das OnSQL intern beim Starten gesetzt? Wenn ja, wohin???? |
AW: TSqlMonitor zur Laufezeit erstellen
Wenn Du die Komponente ohne Owner erzeugst, kann diese keine Events empfangen.
|
AW: TSqlMonitor zur Laufezeit erstellen
Wer müsste denn der Owner sein. Ich habe nun die MySqlConnection (TUniConnection) genommen die ich kurz vorher erzeuge.
|
AW: TSqlMonitor zur Laufezeit erstellen
Z.B. Application
|
AW: TSqlMonitor zur Laufezeit erstellen
Nein, tut mir leid. Da kommt einfach nix.
Ich habe nun
Delphi-Quellcode:
Und vorher hatte ich die MySqlConnection. Kam auch nix. Ich verstehe nicht was das ding anders macht, wenn es auf der Form liegt, Ohne alles. Keinerlei UniDac Sachen. Die werden alle zur Laufzeit erzeugt. Trotzdem klappt es, wenn TUniSQLMonitor auf der Form liegt.
MySQLMonitor:=TUniSQLMonitor.Create(Application);
|
AW: TSqlMonitor zur Laufezeit erstellen
das Formular empfängt Events und leitet diese dann an den Monitor weiter.
|
AW: TSqlMonitor zur Laufezeit erstellen
Ich verstehe das gerade so, das es bei einer ConsolenApp nicht geht. Sehe ich das richtig? Weil dann brauch ich gar nicht weiter suchen, bzw, Nerven :wink:
Alles andere klappt ja. Obwohl was ich noch versuchen könnte ist das ding von der Form entfernen und dann mit Owner Self erstellen. Dann müsste es ja laufen, richtig? |
AW: TSqlMonitor zur Laufezeit erstellen
Ja. So sollte es funktionieren.
|
AW: TSqlMonitor zur Laufezeit erstellen
Gerade Probiert. Klappt auch nicht. Ich verstehe das nicht. Ich hatte es einmal mit FormCreate probiert und einmal in FormShow. Ich habe auch mal die Flags gesetzt weil ich mir nicht sicher war. Aber im Debug habe ich gesehen das die schon beim .Create gesetzt werden.
Gruß
Delphi-Quellcode:
MySQLMonitor:=TUniSQLMonitor.Create(Self);
MySQLMonitor.Name:='MySqlDebugMonitor'; MySQLMonitor.DBMonitorOptions.Host:='192.168.0.158'; MySQLMonitor.Options:=[moDialog,moSQLMonitor,moDBMonitor,moCustom]; MySQLMonitor.TraceFlags:=[tfQPrepare,tfQExecute,tfError,tfConnect,tfTransact,tfMisc,tfParams]; MySQLMonitor.Active:=True; |
AW: TSqlMonitor zur Laufezeit erstellen
Hallo,
geh doch mal in das Projekt, wo es funktioniert und kopiere den SQL-Monitor per Strg+C in die Zwischenablage. Dann in den normalen Editor rein (Notepad.exe), dann siehst du, was dort an Optionen gesetzt ist. |
AW: TSqlMonitor zur Laufezeit erstellen
Da steht leider nicht viel drin. Also nix was weiterhelfen würde.
Code:
object UniSQLMonitor1: TUniSQLMonitor
DBMonitorOptions.Host = '192.168.0.158' Left = 32 Top = 34 end |
AW: TSqlMonitor zur Laufezeit erstellen
Wenn das Ding mit Messages arbeitet, dann muß sie auch jemand verarbeiten.
Also entweder macht es die VCL oder du mußt es selber "regelmäßig" machen. |
AW: TSqlMonitor zur Laufezeit erstellen
Huhu,
erst mal vielen Dank für eure Hilfe. Aber ich lasse die DebugOption nun einfach weg. Wäre eh nur für mich gewesen. Da meine SQL Abfragen aber nun alle richtig laufen, ist das mit dem Monitor in den Hintergrund getreten. Danke und Netten Gruß PS.: Trotzdem hätte mich interessiert warum das so ist. Aber egal. Im Netz findet man auch nix dazu..... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz