Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Such Funktion für eine dB (https://www.delphipraxis.net/179623-such-funktion-fuer-eine-db.html)

floppybe 20. Mär 2014 11:31

Such Funktion für eine dB
 
Liebe DP Gemeinde,

ich möchte für mein Datenbank Programm eine Suche einbinden.
Die Suche im Forum wahr leider nicht so erfolgreich, so Poste ich diesen Beitrag, wenn es dazu schon was Gibt, sorry.

Ich habe die Funktion so aufgebaut nur passiert nichts:

Delphi-Quellcode:
database1.Find(Edit1.Text);
Ich verwende die TurbodB Engine von dataweb.

Nun weis ich leider nicht wie ich denn das machen soll, die Hilfe von Delphi war auch
nicht gerade sehr ergibig.

Für Hilfe bin ich Dankbar.

Chris

Jumpy 20. Mär 2014 11:40

AW: Such Funktion für eine dB
 
Es gibt hier einen Extra Bereich für Datenbankfragen. Da hast du vllt. mit der Frage mehr Erfolg und kannst vllt. auch noch detailiertere Angaben machen: Welches DBMS, was willst du eigentlich suchen, usw.?

Perlsau 20. Mär 2014 11:47

AW: Such Funktion für eine dB
 
Zitat:

Zitat von floppybe (Beitrag 1252718)
Ich habe die Funktion so aufgebaut nur passiert nichts:
Delphi-Quellcode:
database1.Find(Edit1.Text);

Welche Funktion hast du aufgebaut? Was soll deiner Meinung nach passieren? Welche DB-Komponenten verwendest du?

Zitat:

Zitat von floppybe (Beitrag 1252718)
Nun weis ich leider nicht wie ich denn das machen soll, die Hilfe von Delphi war auch nicht gerade sehr ergibig.

Datenbank-Grundlagen erlernen.

floppybe 20. Mär 2014 12:05

AW: Such Funktion für eine dB
 
Hallo Jumpy,

sorry, dass ich im Falschen Bereich hin getan habe.

Es ist die Datenbank Engiene von dataweb die Nennt sich TurbodB, ich habe die mal gewählt da ich mit der "Firebird", glaube heist die, und mit SQL nicht zurecht
gekommen bin. Ich habe einfach nicht verstanden wie ich bei "FireBird" eine anbindung an den "Portablen" Server bekomme.
Bei mir hatte es einfach nicht geklappt. :cry:

Ich habe leider bei meiner Lieblings Informatik Bücherei kein Buch zu SQL Datenbanken und Firebird Datenbanken gefunden.

TurbodB kann auch mit SQL Befehlen angesprochen werden wenn ich das korrekt verstanden habe.


Ich will mal zuerst eine Lokale ( ohne Datenbank Server ) Datenbank Anwendung erstellen, bevor ich auf eine Server Basierte Variante wechsle.


Gruss Chris

Zitat:

Zitat von Jumpy (Beitrag 1252723)
Es gibt hier einen Extra Bereich für Datenbankfragen. Da hast du vllt. mit der Frage mehr Erfolg und kannst vllt. auch noch detailiertere Angaben machen: Welches DBMS, was willst du eigentlich suchen, usw.?


floppybe 20. Mär 2014 12:13

AW: Such Funktion für eine dB
 
Hallo Perlsau,

Ich habe einfach beim Button diesen Befehl hinterlegt, dass er ausgeführt würde beim Click.

Ich verwende eine TdbDatabase, TdbTable und ein DataSource für die Anbindung an das DBGrid
und die verschiedenen DBEdit Felder.

Daten Erstellen in der Datenbank Funktioert auch Löschen und Aktualisieren.
Da aber die Datenbank mit dem Wachsen der Daten unübersichtlich wird würde ich gerne eine
Such Funktion einbinden, welche mir eintweder zum Datensatz Springt oder lieber die Datensätze Filter
welche diese Parameter aufweisen die ich suche.

Ich hoffe ich habe Deine Frage richtig verstanden und konnte Sie auch korrekt wiedergeben.

Gruss

Chris

Zitat:

Zitat von Perlsau (Beitrag 1252724)
Zitat:

Zitat von floppybe (Beitrag 1252718)
Ich habe die Funktion so aufgebaut nur passiert nichts:
Delphi-Quellcode:
database1.Find(Edit1.Text);

Welche Funktion hast du aufgebaut? Was soll deiner Meinung nach passieren? Welche DB-Komponenten verwendest du?

Zitat:

Zitat von floppybe (Beitrag 1252718)
Nun weis ich leider nicht wie ich denn das machen soll, die Hilfe von Delphi war auch nicht gerade sehr ergibig.

Datenbank-Grundlagen erlernen.


baumina 20. Mär 2014 12:27

AW: Such Funktion für eine dB
 
Vielleicht hilft dir folgendes etwas weiter : Suchen in einer Datenbank

Sir Rufo 20. Mär 2014 13:01

AW: Such Funktion für eine dB
 
Zitat:

Zitat von floppybe (Beitrag 1252727)
... da ich mit der "Firebird", glaube heist die ...

TurbodB kann auch mit SQL Befehlen angesprochen werden wenn ich das korrekt verstanden habe.

Du scheinst dich ja hervorragend in so ein Thema einzuarbeiten. :roll:

Nimm dir einen beliebigen SQL-Gedöns (Server, Lokal) mit einer Management-Konsole vor und arbeite dich dort in das Thema SQL ein.
Wenn du das dann beherrschst, dann kannst du auch mit Delphi da ran.

Perlsau 20. Mär 2014 13:15

AW: Such Funktion für eine dB
 
Zitat:

Zitat von floppybe (Beitrag 1252728)
Ich habe einfach beim Button diesen Befehl hinterlegt, dass er ausgeführt würde beim Click.

Schon klar, aber die Ereignisbehandlung des Buttons ist keine Function, sondern eine Procedure. Was hast du denn erwartet, daß mit dem Befehl (den ich nicht kenne) passieren soll?

Zitat:

Zitat von floppybe (Beitrag 1252728)
Ich verwende eine TdbDatabase, TdbTable und ein DataSource für die Anbindung an das DBGrid und die verschiedenen DBEdit Felder.

Auch das ist Standard, liefert aber keinerlei Information darüber, wonach du suchen möchtest, denn danach würde sich die zu implementierende Suchmethode richten müssen.

Zitat:

Zitat von floppybe (Beitrag 1252728)
Daten Erstellen in der Datenbank Funktioert auch Löschen und Aktualisieren.


Zitat:

Zitat von floppybe (Beitrag 1252728)
Da aber die Datenbank mit dem Wachsen der Daten unübersichtlich wird würde ich gerne eine Such Funktion einbinden, welche mir eintweder zum Datensatz Springt oder lieber die Datensätze Filter welche diese Parameter aufweisen die ich suche.

Aha, da haben wir endlich einen Hinweis: "zum Datensatz springt". Das heißt, du möchtest aus einer bestimmten Tabelle (keine Ahnung, wieviele du hast) einen ganz bestimmten Datensatz "anspringen", was man auch lokalisieren nennt und daher, welche Überraschung, die Locate-Methode des jeweiligen Datasets zum Ziel führt. Schau dir die Parameter von Locate genau an, damit du z.B. auch Teilstrings findest und nicht nur einen vollständigen korrekten String.

Daneben existiert noch das Filter-Property, das in Zusammenhang mit dem Filtered-Property eine Datenmenge nach einem oder mehreren Feldern filtern kann. Wie das funktioniert, steht ebenfalls sehr gut in der Online-Hilfe beschrieben.

Zuletzt sei noch die Where-Klauses beim Select-Befehl (SQL) erwähnt, die in jeden guten SQL-Handbuch (wovon sich etliche im Freien Internet tummeln) erkärt wird.

Zitat:

Zitat von floppybe (Beitrag 1252728)
Ich hoffe ich habe Deine Frage richtig verstanden und konnte Sie auch korrekt wiedergeben.

Knapp vorbei ist auch daneben :stupid:

floppybe 21. Mär 2014 02:43

AW: Such Funktion für eine dB
 
Hallo baumina

vielen Dank für Deinen Link, war genau das was ich Suchte.
gibt’s auch etwas wo ich filtern kann ?, oder wie das geht ?

Herzlichen Dank und Grüsse aus der Schweiz

Chris

Zitat:

Zitat von baumina (Beitrag 1252729)
Vielleicht hilft dir folgendes etwas weiter : Suchen in einer Datenbank


floppybe 21. Mär 2014 02:45

AW: Such Funktion für eine dB
 
Sehr geehrter Sir Rufo,

das habe ich ja schon geschrieben, ich wollte, aber ich habe leider keine Lektüre bekommen zu dem Thema.
Und ohne finde ich es halt recht übel etwas zu Lehrnen.

So frage ich halt nach, so als Unnwissender.

Danke aber für die Info...

Chris

Zitat:

Zitat von Sir Rufo (Beitrag 1252731)
Zitat:

Zitat von floppybe (Beitrag 1252727)
... da ich mit der "Firebird", glaube heist die ...

TurbodB kann auch mit SQL Befehlen angesprochen werden wenn ich das korrekt verstanden habe.

Du scheinst dich ja hervorragend in so ein Thema einzuarbeiten. :roll:

Nimm dir einen beliebigen SQL-Gedöns (Server, Lokal) mit einer Management-Konsole vor und arbeite dich dort in das Thema SQL ein.
Wenn du das dann beherrschst, dann kannst du auch mit Delphi da ran.


Perlsau 21. Mär 2014 02:48

AW: Such Funktion für eine dB
 
Zitat:

Zitat von floppybe (Beitrag 1252822)
gibt’s auch etwas wo ich filtern kann ?, oder wie das geht ?

Die Frage, wie man filtert, habe ich dir doch bereits beantwortet: Daneben existiert noch das Filter-Property, das in Zusammenhang mit dem Filtered-Property eine Datenmenge nach einem oder mehreren Feldern filtern kann. Wie das funktioniert, steht ebenfalls sehr gut in der Online-Hilfe beschrieben.

Wieso ignorierst du hilfreiche und gutgemeinte Ratschläge und fragst nochmal, obwohl dir die Antwort bereits gegeben wurde?

Zitat:

Zitat von floppybe (Beitrag 1252823)
... aber ich habe leider keine Lektüre bekommen zu dem Thema. Und ohne finde ich es halt recht übel etwas zu Lehrnen.

Das halte ich für eine billige Ausrede: Du hast einen Internetzugang, du kannst Google aufrufen, und du kannst lesen. Mehr braucht man doch wirklich nicht, um z.B. Tutorials und Handbücher über SQL zu finden. Ich bekomme auch keine Lektüre, ich besorge sie mir.

floppybe 21. Mär 2014 03:00

AW: Such Funktion für eine dB
 
Hallo Perlau,

das mit dem Suchen habe ich nun hin bekommen, ich habe diesen Lösungs Ansatz genommen, der klappt auch so weit so Gut.

Delphi-Quellcode:
TdbTable1.First;
  while not TdbTable1.Eof do begin
    if TdbTable1.FieldByName('Software').AsString=Edit2.Text then
      break
    else TdbTable1.Next;
end;
Ich habe nun auch gesehen dass es eine "table.Filter" gibt. ich vermute mal, dass dieser zur Anwendung kommt wenn mann Filtern will, wie der Name schon sagt.
Nun kann ich es leider nicht adaptieren mit dem Delphi Befehl dass er mir Filtert.

Kennst Du eventuell einen Lösungs Ansatz ?

Nur wenn es Dir nicht zu blöd ist mir etwas zu Helfen.

Mein Problem ist aber dass ICH nie Englisch gelehrnt habe, ich kann kein Englisch Lesen, nur ein paar Brocken um mich zu Unterhalten aber Lektüre geht nicht.
Die meisten TUT's die ich gefunden habe sind in Englisch, und das verstehe ich beim besten Willen nicht mehr.

Also komme ich wieder darauf zurück, dass ich halt in einem Forum Frage. Nicht weil ich zu faul bin, sondern weil ich die Thematik dann nicht verstehe.


Gruss

Chris


Zitat:

Zitat von Perlsau (Beitrag 1252733)
Zitat:

Zitat von floppybe (Beitrag 1252728)
Ich habe einfach beim Button diesen Befehl hinterlegt, dass er ausgeführt würde beim Click.

Schon klar, aber die Ereignisbehandlung des Buttons ist keine Function, sondern eine Procedure. Was hast du denn erwartet, daß mit dem Befehl (den ich nicht kenne) passieren soll?



Zitat:

Zitat von floppybe (Beitrag 1252728)
Da aber die Datenbank mit dem Wachsen der Daten unübersichtlich wird würde ich gerne eine Such Funktion einbinden, welche mir eintweder zum Datensatz Springt oder lieber die Datensätze Filter welche diese Parameter aufweisen die ich suche.

Aha, da haben wir endlich einen Hinweis: "zum Datensatz springt". Das heißt, du möchtest aus einer bestimmten Tabelle (keine Ahnung, wieviele du hast) einen ganz bestimmten Datensatz "anspringen", was man auch lokalisieren nennt und daher, welche Überraschung, die Locate-Methode des jeweiligen Datasets zum Ziel führt. Schau dir die Parameter von Locate genau an, damit du z.B. auch Teilstrings findest und nicht nur einen vollständigen korrekten String.

Daneben existiert noch das Filter-Property, das in Zusammenhang mit dem Filtered-Property eine Datenmenge nach einem oder mehreren Feldern filtern kann. Wie das funktioniert, steht ebenfalls sehr gut in der Online-Hilfe beschrieben.

Zuletzt sei noch die Where-Klauses beim Select-Befehl (SQL) erwähnt, die in jeden guten SQL-Handbuch (wovon sich etliche im Freien Internet tummeln) erkärt wird.

Zitat:

Zitat von floppybe (Beitrag 1252728)
Ich hoffe ich habe Deine Frage richtig verstanden und konnte Sie auch korrekt wiedergeben.

Knapp vorbei ist auch daneben :stupid:


Perlsau 21. Mär 2014 03:22

AW: Such Funktion für eine dB
 
Zitat:

Zitat von floppybe (Beitrag 1252825)
das mit dem Suchen habe ich nun hin bekommen, ich habe diesen Lösungs Ansatz genommen, der klappt auch so weit so Gut.

Wieso ignorierst du wertvolle Hinweise? Ich hatte dir doch bereits geschrieben, daß man hierfür die Locate-Methode verwendet. Natürlich steht es dir frei, auch um dreißig Ecken herumzuprogrammieren. Aber du fragst doch nach einfachen Lösungen, nicht wahr? Und ignorierst sie dann, wenn man sie dir liefert!

Zitat:

Zitat von floppybe (Beitrag 1252825)
Ich habe nun auch gesehen dass es eine "table.Filter" gibt.

Darauf hatte ich dich oben ja bereits hingewiesen.

Zitat:

Zitat von floppybe (Beitrag 1252825)
ich vermute mal, dass dieser zur Anwendung kommt wenn mann Filtern will, wie der Name schon sagt.

So ist es. Auch das hatte ich dir bereits übermittelt.

Zitat:

Zitat von floppybe (Beitrag 1252825)
Nun kann ich es leider nicht adaptieren mit dem Delphi Befehl dass er mir Filtert.

Was steht denn in deiner Online-Hilfe zu Filter und Filtered?

Zitat:

Zitat von floppybe (Beitrag 1252825)
Kennst Du eventuell einen Lösungs Ansatz ?

1. Du schaltest den Filter aus mit
Delphi-Quellcode:
MyDataset.Filtered := False;
:thumb:
2. Du setzt den Filter, indem du dem Filter-Property einen String zuweist:
Delphi-Quellcode:
MyDataset.Filter := 'Vorname = Hans';
:thumb:
3. Du schaltest den Filter wieder ein mit
Delphi-Quellcode:
MyDataset.Filtered := True;
:thumb:

Zitat:

Zitat von floppybe (Beitrag 1252825)
Nur wenn es Dir nicht zu blöd ist mir etwas zu Helfen.

Man kann sich schon ein wenig blöd vorkommen, wenn man einem Menschen öffentlich zugängliche Quellen quasi vorlesen muß.

Zitat:

Zitat von floppybe (Beitrag 1252825)
Mein Problem ist aber dass ICH nie Englisch gelehrnt habe, ich kann kein Englisch Lesen, nur ein paar Brocken um mich zu Unterhalten aber Lektüre geht nicht. Die meisten TUT's die ich gefunden habe sind in Englisch, und das verstehe ich beim besten Willen nicht mehr.

Dann filterst du eben deine Google-Suchergebnisse nach der deutschen Sprache. Da gibt's noch immer genug zum Lernen. So hättest du z.B. auch die Tutorials im Delphi-Treff gefunden. Du erweckst jedoch den Eindruck, daß du nicht selber zu suchen bereit bist, sondern das lieber andere machen läßt. Und das verärgert die Leute.

Zitat:

Zitat von floppybe (Beitrag 1252825)
Also komme ich wieder darauf zurück, dass ich halt in einem Forum Frage. Nicht weil ich zu faul bin, sondern weil ich die Thematik dann nicht verstehe.

Die Thematik ist auch schwer zu verstehen, wenn man Antworten und Hinweise ignoriert und stattdessen stur weiter nach einer Lösung fragt.

Das Studium einer Programmiersprache bzw. einer hochkomplexen modernen Entwicklungsumgebung erfordert Engagement, Ausdauer und Lernbereitschaft. Da erschließt sich nicht mal schnell was intuitiv, weil es um zu erlernende Regeln geht, die man nachlesen, sich aneignen, üben und dann anwenden muß, um weiterzukommen. Dabei ist es äußerst wichtig, nicht die Treppe hinaufzufallen, weil man's eilig hat und deshalb die vierte Stufe vor der zweiten nimmt. Mit anderen Worten: Wenn du Datenbank-Anwendungen entwickeln willst, mußt du dich erst einmal mit Datenbanken und deren Sprache, die da heißt SQL, auseinandersetzen. Ohne diese Kenntnisse wirst du nicht weiterkommen. Das kann dir auch keiner abnehmen.

Nachträgliche Bitte: Laß doch bitte dieses unnötige vollständige Zitieren am Ende deines Beitrags. Wenn du schon zitieren willst, dann ausschnittweise mit deiner Antwort direkt unter dem entsprechenden Zitat, auf das du antwortest.

floppybe 22. Mär 2014 17:48

AW: Such Funktion für eine dB
 
Hallo Persau,

Zitat:

Zitat von Perlsau (Beitrag 1252827)
Zitat:

Zitat von floppybe (Beitrag 1252825)
das mit dem Suchen habe ich nun hin bekommen, ich habe diesen Lösungs Ansatz genommen, der klappt auch so weit so Gut.

Wieso ignorierst du wertvolle Hinweise? Ich hatte dir doch bereits geschrieben, daß man hierfür die Locate-Methode verwendet. Natürlich steht es dir frei, auch um dreißig Ecken herumzuprogrammieren. Aber du fragst doch nach einfachen Lösungen, nicht wahr? Und ignorierst sie dann, wenn man sie dir liefert!

Sorry, das ist nicht absicht, sondern Unverständnis, und ich Suche ja auch dann in der Hilfe von Delphi danach nur verwirrt es mich dann meistens sttatt dass ich etwas verstehe.

Zitat:

Zitat von Perlsau (Beitrag 1252827)
Zitat:

Zitat von floppybe (Beitrag 1252825)
Ich habe nun auch gesehen dass es eine "table.Filter" gibt.

Darauf hatte ich dich oben ja bereits hingewiesen.

Habe ich leider erst danach gesehen alsich mein Post schon geschrieben hatte. Du bist mir zuvor gekommen.

Zitat:

Zitat von Perlsau (Beitrag 1252827)
Zitat:

Zitat von floppybe (Beitrag 1252825)
Kennst Du eventuell einen Lösungs Ansatz ?

1. Du schaltest den Filter aus mit
Delphi-Quellcode:
MyDataset.Filtered := False;
:thumb:
2. Du setzt den Filter, indem du dem Filter-Property einen String zuweist:
Delphi-Quellcode:
MyDataset.Filter := 'Vorname = Hans';
:thumb:
3. Du schaltest den Filter wieder ein mit
Delphi-Quellcode:
MyDataset.Filtered := True;
:thumb:

Da habe ich es nun hin bekommen, das hat mir geholfen, Danke.

Zitat:

Zitat von Perlsau (Beitrag 1252827)
Zitat:

Zitat von floppybe (Beitrag 1252825)
Nur wenn es Dir nicht zu blöd ist mir etwas zu Helfen.

Man kann sich schon ein wenig blöd vorkommen, wenn man einem Menschen öffentlich zugängliche Quellen quasi vorlesen muß.

Das war aber nicht die absicht, sodern nicht wissen (OK schützt vor torheit nicht) und unverständdnis.

Zitat:

Zitat von Perlsau (Beitrag 1252827)
Zitat:

Zitat von floppybe (Beitrag 1252825)
Mein Problem ist aber dass ICH nie Englisch gelehrnt habe, ich kann kein Englisch Lesen, nur ein paar Brocken um mich zu Unterhalten aber Lektüre geht nicht. Die meisten TUT's die ich gefunden habe sind in Englisch, und das verstehe ich beim besten Willen nicht mehr.

Dann filterst du eben deine Google-Suchergebnisse nach der deutschen Sprache. Da gibt's noch immer genug zum Lernen. So hättest du z.B. auch die Tutorials im Delphi-Treff gefunden. Du erweckst jedoch den Eindruck, daß du nicht selber zu suchen bereit bist, sondern das lieber andere machen läßt. Und das verärgert die Leute.

Nein, das will ich doch nicht, ich versuche es ja, komme einfach sehr oft an meine Grenzen. Ich will doch niemanden Verärgern, ich frage vielleicht zu sehr Schweizerisch.
Das ist nun mal um 27 Ecken rum.

Zitat:

Zitat von Perlsau (Beitrag 1252827)
Zitat:

Zitat von floppybe (Beitrag 1252825)
Also komme ich wieder darauf zurück, dass ich halt in einem Forum Frage. Nicht weil ich zu faul bin, sondern weil ich die Thematik dann nicht verstehe.

Die Thematik ist auch schwer zu verstehen, wenn man Antworten und Hinweise ignoriert und stattdessen stur weiter nach einer Lösung fragt.

Danke, das habe ich bemerken müssen...

Zitat:

Zitat von Perlsau (Beitrag 1252827)
Das Studium einer Programmiersprache bzw. einer hochkomplexen modernen Entwicklungsumgebung erfordert Engagement, Ausdauer und Lernbereitschaft. Da erschließt sich nicht mal schnell was intuitiv, weil es um zu erlernende Regeln geht, die man nachlesen, sich aneignen, üben und dann anwenden muß, um weiterzukommen. Dabei ist es äußerst wichtig, nicht die Treppe hinaufzufallen, weil man's eilig hat und deshalb die vierte Stufe vor der zweiten nimmt. Mit anderen Worten: Wenn du Datenbank-Anwendungen entwickeln willst, mußt du dich erst einmal mit Datenbanken und deren Sprache, die da heißt SQL, auseinandersetzen. Ohne diese Kenntnisse wirst du nicht weiterkommen. Das kann dir auch keiner abnehmen.

Ich versuche leider offt 2 Tritte auf ein mal zu nehmen, das gebe ich Dir zu, und recht. deshalb habe ich vielleicht auch mal eine zu missverständliche Frage.
Oder drücke mich falsch aus.

Mit freundlichem Dank und Grüssen

Chris


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:13 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-2025 by Thomas Breitkreuz