AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi In der DB suchen und eine Bedingung erfüllen?
Thema durchsuchen
Ansicht
Themen-Optionen

In der DB suchen und eine Bedingung erfüllen?

Ein Thema von OrNEC · begonnen am 1. Feb 2014 · letzter Beitrag vom 1. Feb 2014
Antwort Antwort
OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#1

In der DB suchen und eine Bedingung erfüllen?

  Alt 1. Feb 2014, 12:03
Datenbank: SQLite • Version: 3 • Zugriff über: SQLiteSimpleDelphi-Wrappers von Tim Anderson
Hallo Jungs,

ich habe folgendes Problem. Ich möchte in der DB nach einem Benutzerdefiniertem String suchen und dabei eine Bedingung erfüllen, nämlich, dass es nur Favorisierte Stationen angezeigt werden. Die Bedingung heißt "WHERE allStations.aFavorite=1", aber wie mache ich das, dass sie erfüllt wird sowie nur die Stationen angezeigt werden wo str gefunden wurde? Irgendwie komme ich nicht weiter... Danke euch!

Hier mein Code:

Delphi-Quellcode:
procedure TForm1.LoadallStationsFromDB();
var dbFile: String;
    db: TSQLiteDatabase;
    tb: TSQLIteTable;
    MyItem: TListItem;
    str, str1: String;
begin
  // ListView Eintraege loeschen
  allStationsListView.Clear;
  FavoriteListView.Clear;


  dbFile := ExtractFilePath(Application.ExeName) + 'Stations.db';
  db := TSQLiteDatabase.Create(dbFile);
  try
    str1:='';
    if SearchBEdit.Text=_('Search') then str:= '''%' + '' + str1+ '' + '%'''
    else str:= '''%' + '' + SearchBEdit.Text+ '' + '%''';

    // Datensaetze der allStations Tabelle in den StationsTab einlesen
    tb := db.GetTable('SELECT allStations.aId,'
    + 'allStations.aName, '
    + 'allStations.aStreamURL, '
    + 'allStations.aWebsiteURL, '
    + 'allStations.aScheduleURL, '
    + 'allStations.aFavorite, '
    + 'allStations.aFixed, '
    + 'allStations.aInfo, '
    + 'language.lName, '
    + 'category.cName '
    + 'FROM allStations '
    + 'LEFT JOIN language ON allStations.fk_language_id=language.lId '
    + 'LEFT JOIN category ON allStations.fk_category_id=category.cId '
    + 'WHERE allStations.aName LIKE '+str+' '
    + 'OR allStations.aStreamURL LIKE '+str+' '
    + 'OR allStations.aWebsiteURL LIKE '+str+' '
    + 'OR allStations.aScheduleURL LIKE '+str+' '
    // + 'OR allStations.aFavorite LIKE '+str+' '
    + 'OR allStations.aFixed LIKE '+str+' '
    + 'OR allStations.aInfo LIKE '+str+' '
    + 'OR language.lName LIKE '+str+' '
    + 'OR category.cName LIKE '+str+' ORDER BY allStations.aName ASC'); <- hier muss wohl die Where-Bedingung "WHERE allStations.aFavorite=1" hin, aber wie?
    try
      // Alle Datensaetze in die ListView einlesen
      if tb.Count > 0 then
      begin
        while not tb.EOF do
        begin
          MyItem := allStationsListView.Items.Add;
          MyItem.Data := Pointer(tb.FieldAsInteger(tb.FieldIndex['aId'])); // Data mit Ids fuellen
          MyItem.Caption := tb.FieldAsString(tb.FieldIndex['aName']);
          MyItem.SubItems.Add(tb.FieldAsString(tb.FieldIndex['aFavorite']));
          MyItem.SubItems.Add(tb.FieldAsString(tb.FieldIndex['lName']));
          MyItem.SubItems.Add(tb.FieldAsString(tb.FieldIndex['cName']));
          tb.Next;
        end;
      end;

    finally
      tb.Free;
    end;


  finally
    db.Free;
  end;

end;

Geändert von OrNEC ( 1. Feb 2014 um 12:12 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: In der DB suchen und eine Bedingung erfüllen?

  Alt 1. Feb 2014, 12:20
Delphi-Quellcode:
 + 'WHERE allStations.aFavorite=1 AND '+
    (allStations.aName LIKE '+str+' '
+
'OR allStations.aStreamURL LIKE '+str+' '
+
'OR allStations.aWebsiteURL LIKE '+str+' '
+
'OR allStations.aScheduleURL LIKE '+str+' '
// +
'OR allStations.aFavorite LIKE '+str+' '
+
'OR allStations.aFixed LIKE '+str+' '
+
'OR allStations.aInfo LIKE '+str+' '
+
'OR language.lName LIKE '+str+' '
+
'OR category.cName LIKE '+str+') ORDER BY allStations.aName ASC'); <- hier muss wohl die Where-Bedingung "WHERE allStations.aFavorite=1" hin, aber wie?
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#3

AW: In der DB suchen und eine Bedingung erfüllen?

  Alt 1. Feb 2014, 13:21
Danke Dir, eigentlich könnte ich selber drauf kommen. Musste einfach das Problem etwas lockerer angehen.
  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 03:20 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