AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Abfrage - sehr langer IN-Wert
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Abfrage - sehr langer IN-Wert

Ein Thema von vsti · begonnen am 16. Jan 2008 · letzter Beitrag vom 16. Jan 2008
 
Benutzerbild von vsti
vsti

Registriert seit: 20. Sep 2004
Ort: Syke
70 Beiträge
 
Delphi 2005 Architect
 
#1

SQL Abfrage - sehr langer IN-Wert

  Alt 16. Jan 2008, 09:57
Datenbank: Firebird • Version: 1.5 • Zugriff über: dbExpress
Moin moin,

folgende Ausgangssituation:
Es gibt zwei Datenbanken. In der einen liegen die zentralen Kundendaten und in der anderen werden für jede Filiale lokal die Statisikdaten festgehalten.
Wenn ich nun für die Statistik die Kunden nach Kundennummer eingrenzen möche, muss ich das so oder so ähnlich machen:

Delphi-Quellcode:
QueryZentral.sql.text:='select id from kunden where kundennummer between ''001'' and ''101''';
QueryZentral.open;
ids:='';
while not QueryZentral.eof do begin
  ids:=ids+QueryZentral.fieldbyname('id').asstring+',';
  QueryZentral.next;
end;
delete(ids,length(ids),1);

QueryLokal.sql.text:='select sum(umsatz) from stat where kunden_id in ('+ids+')';
QueryLokal.open;
Ja, stimmt, das System ist nicht grade optimal aufgebaut, aber so ist leider mein Ausgangspunkt

Jetzt kann man sich denken wo das Problem liegt... das SQL-Statement kann bei vielen Kunden sehr lang werden.

Heterogene Datenbankverbindungen werden von Firebird/Interbase ja leider nicht unterstützt.

Kann man das Problem anders angehen?

Habs auch mal mit Parametern versucht, à la:

Delphi-Quellcode:
QueryLokal.sql.text:='select sum(umsatz) from stat where kunden_id in (:IDS)';
QueryLokal.parambyname('IDS').asstring:=ids;
QueryLokal.open;
was natürlich nicht geht.

Bin dankbar über Anregungen.
Thorsten
  Mit Zitat antworten Zitat
 


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 07:25 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