Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Meldung einer Abfrage in Delphi anzeigen (https://www.delphipraxis.net/166153-meldung-einer-abfrage-delphi-anzeigen.html)

Panschi 1. Feb 2012 07:54

Datenbank: MSQL • Version: 2005 • Zugriff über: ADO

Meldung einer Abfrage in Delphi anzeigen
 
Hallo Forum,
Ich implementiere momentan eine kleine "Extra"-Funktion, welche ein schon vorhandenes Projekt erweitern soll.
Es handelt sich um einen kleinen Performance Test, welcher die Ausführungszeit einer SQL Anweisung ausgibt und diese dann mit einer anderen Tabelle vergleicht.

Den SQL-Code selber habe ich bereits:
Code:
USE MeineDatenbank
SET STATISTICS TIME ON
SELECT * FROM MeineTabelle
SET STATISTICS TIME OFF
Das ganze setze ich nun folgendermaßen in Delphi um:
Delphi-Quellcode:
function TfrmPerformance.Auswertung(var Con: TADOConnection;
  cb: TDBLookUpComboBox): string;
begin
  qryAuswertung.Connection := Con;
  qryAuswertung.SQL.Clear;

  qryAuswertung.SQL.Add('USE ' + (Con.DefaultDatabase));
  qryAuswertung.SQL.Add('SET STATISTICS TIME ON');
  qryAuswertung.SQL.Add('SELECT * FROM ' + cb.KeyValue);
  qryAuswertung.SQL.Add('SET STATISTICS TIME OFF');
  qryAuswertung.ExecSQL;
   
  qryAuswertung.Close;
In dem SQL Management Studio wird außer den Ergebnissen auch die erstelle Statistik unter "Meldungen" ausgegeben! Gibt es eine Möglichkeit diese auch in Delphi ausgeben zu lassen?

LG

MacGuyver 1. Feb 2012 09:14

AW: Meldung einer Abfrage in Delphi anzeigen
 
Moin,

ließ doch vor ExecSQL GetTicksCount aus und danach noch einmal. Den einen Wert vom anderen abziehen und du hast die Millisekunden, die der Aufruf gebraucht hat.

Stefan

Luckie 1. Feb 2012 09:17

AW: Meldung einer Abfrage in Delphi anzeigen
 
Das muss aber nicht der gleiche Wert sein. Der Query liefert wohl die Dauer des Queries auf dem Server. Macht man es so wie du, hast du die Ausführungszeit und die Übertragung zum Client gemessen.

Furtbichler 1. Feb 2012 09:19

AW: Meldung einer Abfrage in Delphi anzeigen
 
Die Rückgabe einer ADOQuery ist ein Recordset und das besteht aus mehreren Tabellen, pro Query im Skript eine. Du kannst mit NextRecordset zur nächsten Ausgabe navigieren.

DeddyH 1. Feb 2012 09:25

AW: Meldung einer Abfrage in Delphi anzeigen
 
Dann ist ExecSQL aber wahrscheinlich die falsche Option, oder?

Panschi 1. Feb 2012 09:30

AW: Meldung einer Abfrage in Delphi anzeigen
 
Schonmal danke für die Antworten!

Ich öffne das Query nun ganz normal mit
Delphi-Quellcode:
qryAuswertung.open;
Nun müsste ich dann ja das nächste Recordset auswählen, jedoch weiß ich nicht welche Vaiable ich als RecordsAffected einsetzen soll.

Bernhard Geyer 1. Feb 2012 09:31

AW: Meldung einer Abfrage in Delphi anzeigen
 
Zitat:

Zitat von DeddyH (Beitrag 1148647)
Dann ist ExecSQL aber wahrscheinlich die falsche Option, oder?

Ja. Liefert ja kein Recordset zurück

Panschi 1. Feb 2012 09:46

AW: Meldung einer Abfrage in Delphi anzeigen
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1148651)
Ja. Liefert ja kein Recordset zurück

Habe Ich auf
Delphi-Quellcode:
qryAuswertung.Open
geändert.

Wie handhabe Ich das mit
Delphi-Quellcode:
qryAuswertung.NextRecordSet(????);

Sir Rufo 1. Feb 2012 09:57

AW: Meldung einer Abfrage in Delphi anzeigen
 
Hatten wir gerade erst http://www.delphipraxis.net/166117-r...-new-post.html

Panschi 2. Feb 2012 07:24

AW: Meldung einer Abfrage in Delphi anzeigen
 
sry, dass ich so spät antworte, musste gestern noch kurzfristig zu einem Kunden... Werde mir den Quellcode mal genauer ansehen!


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz