Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Wert in Dtenbank suchen, doppelte aussortieren und anzeigen (https://www.delphipraxis.net/77696-wert-dtenbank-suchen-doppelte-aussortieren-und-anzeigen.html)

ByStones2 23. Sep 2006 13:12

Datenbank: dBase • Version: ??? • Zugriff über: Per Prg

Wert in Dtenbank suchen, doppelte aussortieren und anzeigen
 
Hi,

ich hab bei meinem Aktuellen Projekt ein Problem:
Ich möchte, sobald Form12 angezeigt wird in einer Datenbank suchen. Der name der Datenbank wird aus Form1 mit der Variable text überliefert. Der Inhalt der Variable könnte so aussehen: Test.db
Ich möchte nun in der Datenbank in der Spalte unit suchen. Wenn ein Eintrag doppelt ist, müssen so viele wegfallen, dass nur noch einer übrig bleibt.
Für jeden Eintrag soll dann in eine ListBox1 ein neues Item erstellt werden...

Ich hoffe dass kann man lösen ...
Danke schon mal im vorraus.

ByStones

marabu 23. Sep 2006 13:25

Re: Wert in Dtenbank suchen, doppelte aussortieren und anzei
 
Hi,

TEST.DB sieht nach einer Paradox-Tabelle aus, den Zugriff erledigst du sicher über die BDE-Komponenten. Wenn du eine TQuery benutzt, dann kannst du recht einfach alle eindeutigen Werte für UNIT ermitteln:

Delphi-Quellcode:
begin
  ListBox.Clear;
  with TQuery.Create(self) do
  begin
    DatabaseName := '???'; // wie heißt die bei dir?
    SQL.Text := 'SELECT DISTINCT unit FROM test ORDER BY unit';
    Open;
    while not Eof do
    begin
      ListBox.Items.Add(FieldByName('UNIT').AsString);
      Next;
    end;
    Close;
    Free;
  end;
end;
Getippt und nicht getestet.

Grüße vom marabu

ByStones2 23. Sep 2006 13:34

Re: Wert in Dtenbank suchen, doppelte aussortieren und anzei
 
Zitat:

Zitat von marabu
Hi,

TEST.DB sieht nach einer Paradox-Tabelle aus, den Zugriff erledigst du sicher über die BDE-Komponenten. Wenn du eine TQuery benutzt, dann kannst du recht einfach alle eindeutigen Werte für UNIT ermitteln:

Delphi-Quellcode:
begin
  ListBox.Clear;
  with TQuery.Create(self) do
  begin
    [color=#ff003f]DatabaseName[/color] := '???'; // wie heißt die bei dir?
    SQL.Text := 'SELECT DISTINCT unit FROM test ORDER BY unit';
    [color=#ff003f]Open[/color];
    while not Eof do
    begin
      ListBox.Items.Add([color=#ff005f]FieldByName[/color]('UNIT').[color=#ff003f]AsString[/color]);
      Next;
    end;
    Close;
    Free;
  end;
end;
Getippt und nicht getestet.

Grüße vom marabu

Oje, das ist zu hoch für mich...
Ich hab ein bisschen was geändert, aber er unterstreicht noch eine ganze Menge Rot...
:wiejetzt:
Bei Mir sieht das jetzt so aus:

procedure TForm12.FormShow(Sender: TObject);
begin
ListBox1.Clear;
with TQuery.Create(self) do
begin
DatabaseName := '???'; // wie heißt die bei dir?
SQL.Text := 'SELECT DISTINCT unit FROM test ORDER BY unit';
Open;
while not Eof do
begin
ListBox1.Items.Add(FieldByName('UNIT').AsString);
Next;
end;
Close;
Free;
end;
end;

Stop zurück, jetzt is nichts mehr unterstrichen...
Was muss ich hinter DataBaseName eintragen ???

marabu 23. Sep 2006 13:42

Re: Wert in Dtenbank suchen, doppelte aussortieren und anzei
 
Den Verzeichnisnamen der Datei Test.DB - falls du keine TDatabase-Komponente verwendest.

marabu

ByStones2 23. Sep 2006 13:46

Re: Wert in Dtenbank suchen, doppelte aussortieren und anzei
 
Wenn ich das Fenster aufrufen will gibt es hier immer einen Fehler:
Delphi-Quellcode:
procedure TForm1.Panel3Click(Sender: TObject);
begin
try
texter := ComboBox1.Text + '.db';
if FileExists(texter) then
begin
Form12.Show;
end
else
Form11.Show;
except
Form9.Show;
end;
end;
bei mir kommt dann immer: Unbekannte Datenbank
Alias Klasse5.db.

Dein Code sieht bei mir jetzt so aus:
Delphi-Quellcode:
procedure TForm12.FormShow(Sender: TObject);
begin
  ListBox1.Clear;
  with TQuery.Create(self) do
  begin
    DatabaseName := Form1.texter; // wie heißt die bei dir?
    SQL.Text := 'SELECT DISTINCT unit FROM test ORDER BY unit';
    Open;
    while not Eof do
    begin
      ListBox1.Items.Add(FieldByName('UNIT').AsString);
      Next;
    end;
    Close;
    Free;
  end;
end;

marabu 23. Sep 2006 13:49

Re: Wert in Dtenbank suchen, doppelte aussortieren und anzei
 
Ich kann nicht erkennen was du genau bei DatabaseName eingetragen hast. Es muss für die Datei "C:\Daten\Klasse5.DB" der Name des Verzeichnisses sein: "C:\Daten".

marabu

ByStones2 23. Sep 2006 13:50

Re: Wert in Dtenbank suchen, doppelte aussortieren und anzei
 
Zitat:

Zitat von marabu
Ich kann nicht erkennen was du genau bei DatabaseName eingetragen hast. Es muss für die Datei "C:\Daten\Klasse5.DB" der Name des Verzeichnisses sein: "C:\Daten".

marabu

Die Datenbank ist im gleichen Ordner, falls dir dass Weiterhilft ???
Hinter Texter verbirgt sich: Klasse5.db

marabu 23. Sep 2006 13:54

Re: Wert in Dtenbank suchen, doppelte aussortieren und anzei
 
Dann lasse die Eintragung einfach weg. Falls das nicht geht setze DatabaseName auf '.' und wenn auch das scheitert, dann hilft vielleicht ExtractFilePath(ParamStr(0)) oder GetDir(0, workingDir).

marabu

ByStones2 23. Sep 2006 13:59

Re: Wert in Dtenbank suchen, doppelte aussortieren und anzei
 
Zitat:

Zitat von marabu
Dann lasse die Eintragung einfach weg. Falls das nicht geht setze DatabaseName auf '.' und wenn auch das scheitert, dann hilft vielleicht ExtractFilePath(ParamStr(0)) oder GetDir(0, workingDir).

marabu

Geht :dancer: :dancer2: :dancer: :dancer2: :hello: :party: :dance: :cheers:
Danke !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:26 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