Delphi-PRAXiS
Seite 7 von 7   « Erste     567   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   In Datenbank(Edit1.Txt) suchen (https://www.delphipraxis.net/135577-datenbank-edit1-txt-suchen.html)

xv300 15. Jun 2009 18:51

Re: In Datenbank(Edit1.Txt) suchen
 
MMh. Das Problem ist, nachdem ich meinen Lehrer gefragt habe, meint der, dass ich das anders lösen MUSS. Das heißt, auch wenn die Lösung oben einfach und besser ist, ich "aufgrund des Lehrplans" es jetzt so "einfach"(schuleinfach) wie möglich machen muss, damits der ganze Kurs versteht...

Ist es nicht möglich, dass ich das einfach umgehe indem ich die Editfelder doppelt benutze?

Also Datensatz eingeben, als auch als Suchfelder?


LG

DeddyH 15. Jun 2009 19:38

Re: In Datenbank(Edit1.Txt) suchen
 
Was haben denn jetzt die Edits mit Deinem Record zu tun?

xv300 15. Jun 2009 19:54

Re: In Datenbank(Edit1.Txt) suchen
 
Naja, ich hab z.B.:

Das Edit1 für den Namen
Das Edit2 für den Vorname


Nun gebe ich im Edit1 was ein und schon wirds angezeigt.
Dafür muss ich ja das was ich eingegeben hab auch in diesem Record suchen!


Lg

DeddyH 15. Jun 2009 19:56

Re: In Datenbank(Edit1.Txt) suchen
 
Aus Anwendersicht würde ich doch annehmen, dass, wenn ich im Edit für den Nachnamen "Meier" eingebe, auch nur nach dem Nachnamen "Meier" gesucht wird und nicht z.B. in der Telefonnummer.

xv300 15. Jun 2009 20:01

Re: In Datenbank(Edit1.Txt) suchen
 
Wäre also das hier theoretisch möglich?


Delphi-Quellcode:
if Pos(AnsiUpperCase(Name), AnsiUpperCase(EdName.Text)) > 0 then
  begin
    ShowMessage('asd');
  end;

DeddyH 15. Jun 2009 20:04

Re: In Datenbank(Edit1.Txt) suchen
 
Wenn die Parameter andersherum wären, sähe das schon ganz brauchbar aus ;)

Popov 15. Jun 2009 20:11

Re: In Datenbank(Edit1.Txt) suchen
 
@xv300

Wieso mußt du in Edits suchen? Was in Edits ist das sieht der Nutzer. Du mußt in deiner Datenbank suchen, bzw. die komplett Datensatz für Datensatz laden und jedes Feld prüfen.

Aber, hast du schon was von Funktionen gehört? Du schreibst eine Funktion und benutzt sie bei jedem Feld.

xv300 15. Jun 2009 20:15

Re: In Datenbank(Edit1.Txt) suchen
 
Kenn ich, führen wir aber erst später im Unterricht ein ;)

Nur wie such ich denn jetzt speziell in dieser Datenbank? Den Fehler hab ich verstanden!


LG

Jens Hartmann 17. Jun 2009 06:15

Re: In Datenbank(Edit1.Txt) suchen
 
Hallo nochmal,

so ich habe mir jetzt mal die Funktion von Popov aus #51 angesehen. In dieser Funktion, ist alles enthalten, was Du benötigen tust.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  DBTextPath := ExtractFilePath(ParamStr(0)) + 'Datensatz1.csv';   //Datenbank in Var. laden
  Memo1.Lines.LoadFromFile(DBTextPath);                            //Datenbank in Memo anzeigen
end;
Beim Form.Create, wird die Datenbank geladen und in einem Memo zur anzeige gebracht.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
  D = ';';
var
  i: Integer;
  sl: TStringList;
begin
  sl := TStringList.Create;
  try
    sl.LoadFromFile(DBTextPath); //Der Inhalt der Datenbank, wird in eine Stringliste geladen

    for i := 0 to sl.Count - 1 do
    begin
      if AnsiContainsText(sl[i], Edit1.Text) then //Vergleich der Stringliste mit deiner Suchanfrage im Edit1
      begin
        Edit2.Text := GetTextN(sl[i], 0, D);     //Wenn suche Erfolgreich, dann wird der Datensatz über die Funktion
        Edit3.Text := GetTextN(sl[i], 1, D);     //GetTextN geladen
        Edit4.Text := GetTextN(sl[i], 2, D);
        Edit5.Text := GetTextN(sl[i], 3, D);
        Edit6.Text := GetTextN(sl[i], 4, D);     //Hier zum Beispiel, Teil 5 des Strings, bis zum nächsten ';'
        Edit7.Text := GetTextN(sl[i], 5, D);     //Hier String 6, da D=';'

        Break;
      end;
    end;
  finally
    sl.Free;
  end;
end;
Probier diese Funktion doch mal aus, und du wirst sehen, das es eigendlich ganz einfach ist.

Gruß Jens


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:47 Uhr.
Seite 7 von 7   « Erste     567   

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