AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriff auf MYSQL per DBExpress

Ein Thema von af99 · begonnen am 30. Nov 2015 · letzter Beitrag vom 2. Dez 2015
Antwort Antwort
Seite 1 von 2  1 2      
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#1

AW: Zugriff auf MYSQL per DBExpress

  Alt 30. Nov 2015, 14:00
Wieso hast Du nicht das geloggte Statement hier gepostet? Keine Ahnung, was nun in Deinen Variablen steht.
Und unabhängig von dem Count Attribut, wieviel Records werden denn angezeigt?
Verwendest Du die gleiche Datenbank in beiden Fällen? (am besten auch hier notfalls bei CSI Thematik: 2. Query mit User, Datenbankname ausführen, mitloggen.
Das Browsertool kenne ich nicht, zählt es sonst richtig?
Gruß, Jo
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.877 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Zugriff auf MYSQL per DBExpress

  Alt 30. Nov 2015, 14:14
A propos Parameter, warum verwendest Du keine?
Markus Kinzler
  Mit Zitat antworten Zitat
af99

Registriert seit: 22. Apr 2004
84 Beiträge
 
Delphi XE5 Ultimate
 
#3

AW: Zugriff auf MYSQL per DBExpress

  Alt 30. Nov 2015, 14:20
ich verstehe beide Antworten nicht.
1. ich verwende Parameter. Siehe 1. Post
2. gegoogeltes Statement? ich habe beide selber geschrieben.
Was in den Variablen steht spielt doch keine Rolle. beim Recordcount gebe ich doch keine Datenbank an!
Wenn ich beide Statements laufen lasse und im Memo mir die Ergebnisse ausgeben lasse bekomme ich z.B.: 10 Datensätze zurück. Wenn ich dann ein Query1.recordcount mache gibt es mir aber 40 zurück.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.877 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Zugriff auf MYSQL per DBExpress

  Alt 30. Nov 2015, 14:23
Sieht aber überhaupt nicht nach Paramtern aus

SQLQuery1.SQL.Add('where nagios_services.display_name like ' + quotedstr(like_service));
Markus Kinzler
  Mit Zitat antworten Zitat
af99

Registriert seit: 22. Apr 2004
84 Beiträge
 
Delphi XE5 Ultimate
 
#5

AW: Zugriff auf MYSQL per DBExpress

  Alt 30. Nov 2015, 14:36
vielleicht meinst du was anderes wie ich.

Delphi-Quellcode:
 if ParamCount = 5 then
  begin
    sum_dif_s_e := ParamStr(1);
    start_crit := ParamStr(2);
    like_service := ParamStr(3);
    jetzt_critical := ParamStr(4);
    sum_o_einzeln := ParamStr(5);
sind doch Parameter der Konsolenanwendung

Geändert von mkinzler (30. Nov 2015 um 14:50 Uhr) Grund: Delphi-Tag eingefügt
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.877 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Zugriff auf MYSQL per DBExpress

  Alt 30. Nov 2015, 14:52
Ja ich meine Parameter bei der Abfrage:
SQLQuery1.SQL.Add('where nagios_services.display_name like :like_service ); Und Parameter belegen:
SQLQuery1.ParamByName('like_service').Value := like_service;
Markus Kinzler
  Mit Zitat antworten Zitat
af99

Registriert seit: 22. Apr 2004
84 Beiträge
 
Delphi XE5 Ultimate
 
#7

AW: Zugriff auf MYSQL per DBExpress

  Alt 30. Nov 2015, 15:15
ah verstanden.
Ist das von Vorteil einen Parameter zu nehmen anstatt es so zu machen wie ich?
Bevor ich es jetzt umschreibe. Weist Du ob dann das RecordCount funktioniert?
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#8

AW: Zugriff auf MYSQL per DBExpress

  Alt 30. Nov 2015, 16:23
2. gegoogeltes Statement? ich habe beide selber geschrieben.
Was in den Variablen steht spielt doch keine Rolle. beim Recordcount gebe ich doch keine Datenbank an!
Wenn ich beide Statements laufen lasse und im Memo mir die Ergebnisse ausgeben lasse bekomme ich z.B.: 10 Datensätze zurück. Wenn ich dann ein Query1.recordcount mache gibt es mir aber 40 zurück.
"gelogged" denglisch für ~mitprotokolliert
Also es geht um Dein produziertes Statement. Wenn Du es extra loggst, damit es exakt nachvollziehbar ist, warum postest Du es nicht hier, statt wieder den Code mit Variablen, die niemand kennt.
Und wieso sollen die Variablen keine Rolle spielen? Wenn das so wäre, könntest Du sie weglassen.
Es geht darum sicherzustellen, dass tatsächlich beide Statements 1000% identisch an die DB geschickt werden. Das ist erfahrungsgemäß keine Selbstverständlichkeit.

Ansonsten, wenn Dein Code abgeklopft und korrekt ist, kann man sich mal die Treiber vornehmen bzw. DB Express. Weiß nicht wie da mittlerweile der Stand ist, aber die Zählung bei Queries kann (konnte) wohl durchaus ungenau sein, weil das Verfahren zu Bestimmung über ein (falsch) generiertes Count Statement läuft (lief).
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Zugriff auf MYSQL per DBExpress

  Alt 30. Nov 2015, 16:40
Es geht darum sicherzustellen, dass tatsächlich beide Statements 1000% identisch an die DB geschickt werden. Das ist erfahrungsgemäß keine Selbstverständlichkeit.
abgesehen davon, daß 100% Übereinstimmung ausreichend ist, kann ich diese Äußerung nur unterschreiben. Nach meiner Erfahrung ist der "recordCount" der von der Abfrage, bzw. der Komponente zurückgegeben wird, nur dann zuverlässig wenn es sich um modifizierte Datensätze handelt. (update)
Wenn Du sicher wissen willst, was zurückgegeben wird, ist selbst zählen die zuverlässigste Methode.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
af99

Registriert seit: 22. Apr 2004
84 Beiträge
 
Delphi XE5 Ultimate
 
#10

AW: Zugriff auf MYSQL per DBExpress

  Alt 1. Dez 2015, 14:53
naja wie bereits geschrieben läuft meine Abfrage ja nun. Das Recordcount der DBX ist definitiv falsch (das hat meines Erachtens ja auch nichts mit dem Statement zu tun). Ich mache nun ein Count über ein SQL Statement. Ist halt doof da das wesentlich langsamer ist wie ein Recordcount.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:26 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-2025 by Thomas Breitkreuz