AGB  ·  Datenschutz  ·  Impressum  







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

Filter oder SQL?

Ein Thema von Privateer3000 · begonnen am 20. Nov 2007 · letzter Beitrag vom 21. Nov 2007
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#1

Filter oder SQL?

  Alt 20. Nov 2007, 08:05
Datenbank: dbf • Zugriff über: bde
Hi folks,

ich möchte mit Hilfe von Daten aus einer Tabelle
mehrere Panels mit Buttons kreiern.
Nun müssten die Daten aber vorher gefiltert werden.
D.h. aus der Spalte "Gruppe" werden die Panels bestückt.
Was ist nun effizienter, vorher jeweils einen Filter auf die
Tabelle setzen und dann für die entprechende Gruppe Buttons
erstellen, dann die nächste Gruppe usw?
Oder per SQL das ganze aus einem query?

Grüße
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Filter oder SQL?

  Alt 20. Nov 2007, 08:32
so ganz verstehe ich die frage nicht,

sollen jeweils alle "Gruppen" (btw genauer erläutern ) nacheinander erstellt werden, oder eine Gruppe bei Bedarf?
Ansgar
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.883 Beiträge
 
Delphi 12 Athens
 
#3

Re: Filter oder SQL?

  Alt 20. Nov 2007, 08:51
Wenn du einen Index darauf hast und es sich nicht um einen SQL Server handelt wo deinen Daten herkommen ist das Beste ein Range zu setzen. Wenn kein Index Drauf ist must du filtern.
Wenn es sich dabei um eine SQL Datenbank handelt solltest du immer über SQLs Filtern evtl. mit Parmeter-SQLs um es zu beschleunigen.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Filter oder SQL?

  Alt 20. Nov 2007, 09:26
Danke Leute,

zur Erläuterung: In der dbf-tabelle stehen
mehrere einträge die zu bestimmten Gruppen
gehören. zB Gruppe1=12 Datensätze usw.
Nun sind 5 Panels mit Buttons zu besetzen.
Panel1 mit Buttons die in Spalte "Gruppe" Panel1
zu stehen haben. usw
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Filter oder SQL?

  Alt 20. Nov 2007, 09:33
Da es sich um DBF handelt, läuft das Ganze eh lokal. Es sollte somit keine Rolle spielen.
Zitat von QuickAndDirty:
Wenn es sich dabei um eine SQL Datenbank handelt solltest du immer über SQLs Filtern evtl. mit Parmeter-SQLs um es zu beschleunigen.
Das kann man so pauschal auch nicht sagen...
Wenn du 100 mal filtern willst, jagdst du 100 mal eine Anfrage zum DB Server. Je nach Abfrage, kann das unter Umständen einiges an Zeit nehmen. Es kann sich anbieten, alle 100 Abfragen in einer zu vereinen, also anstatt
select bla from Tabelle where kriterium = 1 dann lieber
select bla from Tabelle where kriterium in (1,2,3,4,5) Letztere Abfrage sollte wesentlich schneller sein als 5 mal hintereinander die erste.

Filtern kannst du dann schön lokal auf die Spalte Kriterium.
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Filter oder SQL?

  Alt 20. Nov 2007, 09:51
Danke Jelly,
dann müsste das so aussehen,dass ich
so vorgehen muss:
filter setzen, schleife für buttons,filter deaktivieren
usw.
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Filter oder SQL?

  Alt 20. Nov 2007, 14:36
Liebe Gemeinde,
wie funktioniert das mit dem Filter?
Wird der Filter nun auf Spaltennamen gesetzt
oder auf Begriffe die in der Tabelle stehen?

Wenn sql, dann wird wie vorgegangen?
Werden die Ergebnisse erst in query
(Stringlist) gepackt?

Bitte helft mir mal dabei!
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Filter oder SQL?

  Alt 20. Nov 2007, 14:45
Hallo,

Filter wird auf Eintrag gesetzt,
es war hier gerade nen TThread dazu, Bsp.

Filter:= 'name=''Test'''

Zu SQL.
Ich würde unter dbf nicht sql nehmen,
es wird intern immer in umgebaut in TTable-Befehle.

Von Pdx weiss ich (bei grossen Datenmengen)
TTable schnell
TQuery langsam

Wenn du nur kleine Datenmengen hast,
könntest du sogar alle Daten "laden"

Delphi-Quellcode:
Table.First;
while not Table.EOF do
begin
 // hier Gruppe auslesen
 // prüfen ob schon da und wenn nicht in ein TStringList
  Table.Text;
end;
Du ersparst dir einen Hauf SetRange


Im Zweifelsfall mit ne grosse DB nehmen und
ausprobieren.

Solltest du vorhaben, dass ganze mal auf nen richtigen SQL-Server zu packen,
dann heisst es nat.
- zuerst sql probieren (group b<)
- wenn zu langsam -> TTable


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Filter oder SQL?

  Alt 20. Nov 2007, 15:23
Danke hoika,

was bedeutet:
Zitat:
// prüfen ob schon da und wenn nicht in ein TStringList
ich meine das dies doch sowieso in eine Stringlist muss
oder nicht?
konkret:
Delphi-Quellcode:
for i := 0 to matenz -1 do
begin
labeltag:=t1.Fields[2].Value;
  Spalte := i mod 6;
  Zeile := i div 6;
  aLabel:=TXiButton.Create(Self);
  aLabel.Parent:=hot;
  aLabel.Visible:=True;
  aLabel.Left:=Spalte*82;
  aLabel.Top:=Zeile*35;
  alabel.Width:=80;
  alabel.Height:=33;
  aLabel.ColorScheme:=csSky;
  aLabel.Caption:=labeltag;
  aLabel.Tag:=t1.fields[0].value;
  aLabel.OnClick:=p1_1Click;
  t1.Next;
end;
sieht es so aus. matenz ist ein count aus einem
inifile. So läuft es bis jetzt.
t1.fields sind daten aus der gleichen Tabelle wo
auch die gruppen. field[0] steht ein Integer,
field[2] ein string für den Buttoncaption.
Soviel zur Erklärung für obigen quellt.
Es werden also alle in dem inifile stehenden ausgelesen
und Button erstellt. Jetzt soll das umgebaut werden
auf mehrere Buttonfelder(Panels) und entsprechend
zugeordnet werden.

Grüße
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Filter oder SQL?

  Alt 20. Nov 2007, 15:37

Arbeitest du jetzt mit INI Files oder einer Datenbank?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 09:18 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