AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi zu langsamer select! warum??
Thema durchsuchen
Ansicht
Themen-Optionen

zu langsamer select! warum??

Ein Thema von kerim80 · begonnen am 5. Jul 2005 · letzter Beitrag vom 7. Jul 2005
Antwort Antwort
kerim80

Registriert seit: 16. Jun 2005
9 Beiträge
 
#1

Re: zu langsamer select! warum??

  Alt 7. Jul 2005, 22:29
Hallo zusammen,

ich danke euch allen für eure bemühungen mir zu helfen, es waren sehr gute anregungen dabei die mir weitergeholfen haben
und habe das problem gelöst

ich habe nicht viel geändert!
das einzige was ich gemacht habe ist das query.sql.add durch query.sql.text zu ersetzen. wie folgt
und es ist genauso schnell wie in der IBCoonsole.
Hätte nicht gedacht das es an dem query.sql.add liegen könnte:

Delphi-Quellcode:
  
function TListeBuchungen.GetSql: string;
var i: integer;
    s, sFilter, sPattern: string;
begin
  query.sql.clear;
  query.sql.text := 'SELECT ' + #10+
                    'B.BUCHUNGLFDNR, ' + #10+
                    'B.LFDNR, ' + #10+
                    'B.BUCHUNGNR, ' + #10+
                    'B.TICKETNR, ' + #10+
                    'B.ADRNR, ' + #10+
                    'B.VERANSTALTER, ' + #10+
                    'B.HINABFLUGDATUM, ' + #10+
                    'B.HINABFLUGZEIT, ' + #10+
                    'B.HINABFLUGORT, ' + #10+
                    'B.HINANKUNFTORT, ' + #10+
                    'B.HINFLUGNR, ' + #10+
                    ' ' + #10+
                    'B.RUECKABFLUGDATUM, ' + #10+
                    'B.RUECKABFLUGZEIT, ' + #10+
                    'B.RUECKABFLUGORT, ' + #10+
                    'B.RUECKANKUNFTORT, ' + #10+
                    'B.RUECKFLUGNR, ' + #10+
                    ' ' + #10+
                    'B.NETTOPREIS, ' + #10+
                    'B.ANZAHLUNG, ' + #10+
                    'B.TAX, ' + #10+
                    'B.MWST, ' + #10+
                    'B.RABATT, ' + #10+
                    'B.GEWINNPROZENT, ' + #10+
                    'A.NAME, ' + #10+
                    'A.VORNAME ' + #10+
                    ' ' + #10+
                    'FROM BUCHUNGEN B, ADRESSEN A ' +#10+
                    'WHERE EXTRACT (YEAR FROM B.HINABFLUGDATUM) = ' +#39+ CBYear.Items.Strings[CBYear.itemindex] + #39 + #10+
                    //'WHERE B.HINABFLUGDATUM >= ' +#39 + '01.01.2005' +#39 + ' AND B.HINABFLUGDATUM <= ' +#39 + '31.12.2005' +#39 + #10+
                    'AND B.ADRNR = A.ADRNR ' +#10+
                    '%s ';

  sFilter := AnsiUppercase(Trim(edit1.Text));
  s := '';
  if sFilter <> 'then begin
    sPattern := QuotedStr('%' + SFilter + '%');
    with query do
      for i := 0 to FieldCount - 1 do
        if Fields[i].DataType = ftString then begin
          if s <> 'then s := s + ' OR';
          s := s + Format(' UPPER(%s) LIKE %s', [LowerCase(Fields[i].FieldName), sPattern]);
        end;
    s := 'AND ( ' + s + ' )';
  end;

  Result := Format(query.SQL.Text, [s]) + ordersql;
end;
Die Filterung in jedem Textfeld mit einem Like-Pattern, bei dem vorne und hinten trunkiert wird, kann bei größeren Tabellen irgendwann zum Laufzeitproblem werden. [marabu]

das stimmt, aber ich warte erstmal ab bis die tabelle ein paar 1000 datensätze hat dann werde ich das sql-statement ein bisschen verkürzen.


danke nochmals an alle.
bis demnächst

HOSCAKALIN
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:52 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