AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Suchergebnis aus DB ausgeben - Datensatz wählen - Wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Suchergebnis aus DB ausgeben - Datensatz wählen - Wie?

Ein Thema von stoermi · begonnen am 14. Dez 2004 · letzter Beitrag vom 14. Dez 2004
Antwort Antwort
stoermi

Registriert seit: 1. Dez 2004
Ort: im Wald von Thüringen
75 Beiträge
 
Delphi 6 Enterprise
 
#1

Suchergebnis aus DB ausgeben - Datensatz wählen - Wie?

  Alt 14. Dez 2004, 14:23
Hallo zusammen!

Ich suche ein Beispiel (Code-Schnipsel, Tuturial), wie man folgendes realisieren könnte:

Ich möchte über ein Edit etwas einlesen. Damit soll in der Tabelle gesucht werden und alle passenden Datensetze in ein Grid ausgegeben werden.
Dann soll man eine Zeile markieren können.
Klickt man dann auf einen Button, soll der entsprechende Datensatz übernommen werden.

Das dürfte doch eigentlich möglich sein.
Leider bekomme ich es nicht hin...

Habt ihr vielleicht einen Vorschlag bzw. einen Hinweis auf eine gute Quelle...?
  Mit Zitat antworten Zitat
Benutzerbild von Schuster
Schuster

Registriert seit: 21. Okt 2004
Ort: Wien
176 Beiträge
 
Delphi XE7 Architect
 
#2

Re: Suchergebnis aus DB ausgeben - Datensatz wählen - Wie?

  Alt 14. Dez 2004, 14:46
zuerst mal zur suche:

ins keypress ereigniss eines Edit Feldes:

Delphi-Quellcode:
procedure TForm1.Edt_FamNameKeyPress(Sender: TObject; var Key: Char);
var temp : string;
var pruefEingabe: integer;
begin
    pruefEingabe:=ord(key);
    if pruefEingabe=13 then //Enter-Taste gedrückt??

    begin
      with query do
        begin
          sql.clear;
          sql.add('Select * from Table where Feld= ' + quotesdstr(edit_Feld.text + '%'));
          open;
        end;
     end;
end;
Das Query muß mit dem DBGrid als Datasource verbunden sein.

Zitat:
Dann soll man eine Zeile markieren können.
Eigenschaften des DBGrid:
Options --> dgrowselect = true !!!
Zitat:
Klickt man dann auf einen Button, soll der entsprechende Datensatz übernommen werden.
Die Daten bekommst du per:

EditFeld2.text:= Query.FieldByName ('Feld').asString;
Markus Schuster
__________________
Markus
http://members.chello.at/delphi-developer
  Mit Zitat antworten Zitat
stoermi

Registriert seit: 1. Dez 2004
Ort: im Wald von Thüringen
75 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Suchergebnis aus DB ausgeben - Datensatz wählen - Wie?

  Alt 14. Dez 2004, 15:17
Danke für deine Schnelle Antwort!

Doch da hab ich noch Probleme:

Du sagts, dass das DBGrid mit dem Query verbunden werden muss.
Das geht doch aber gar nicht direkt. DataSoure verlangt doch ein TDataSource!

So hab ich noch ein TDatasource eingefügt. Und dort als DataSet den Query eingefügt.
Doch jetzt ist mein Problem: Query verlangt einen DataBaseNamen. Was muss darein?

Ich verwende keinen Alias, sondern nur Tabellen mit relativen Pfad...
  Mit Zitat antworten Zitat
Benutzerbild von Schuster
Schuster

Registriert seit: 21. Okt 2004
Ort: Wien
176 Beiträge
 
Delphi XE7 Architect
 
#4

Re: Suchergebnis aus DB ausgeben - Datensatz wählen - Wie?

  Alt 14. Dez 2004, 15:46
Datasource gehört natürlich in DBGrid eingefügt und nicht ein Query hast recht

Welche DB verwendest den
Wie verbindest du dich zur DB

Ich hab bis dato nur ein bischen mit MySql und Firebird gespielt.

Hier mal ein Beispiel für eine Verbindung zu MySql mit den Zeos-Komponenten:


Delphi-Quellcode:
with ZConnection1 do
  begin
          HostName:='90.0.0.5';
          User:='root'
          Protocol:='mysql-4.1';
          Port:=3306;
          Database:='nachrichten';
          Password:= edt_Passwort.text;
          Connected:=true;
  end;
Zitat:
Doch jetzt ist mein Problem: Query verlangt einen DataBaseNamen. Was muss darein?
Der Name der Datenbank die du angelegt hast.
Markus Schuster
__________________
Markus
http://members.chello.at/delphi-developer
  Mit Zitat antworten Zitat
stoermi

Registriert seit: 1. Dez 2004
Ort: im Wald von Thüringen
75 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Suchergebnis aus DB ausgeben - Datensatz wählen - Wie?

  Alt 14. Dez 2004, 16:02
Zitat von Schuster:
Datasource gehört natürlich in DBGrid eingefügt und nicht ein Query hast recht :-D
Welche DB verwendest den :?:
Wie verbindest du dich zur DB :?:
Mittlerweile habe ich das Problem gelöst. Man gibt bei Query gar keinen DataBaseName an.
In der SQL-Anfage gibt man dann einfach den relativen Pfad zur Tabelle an.

Ich verwende eine Delphi-Datenbank Paradox 7 für mein Projekt.

Was jedoch aus deinem Beispiel nicht klappt, ist in dem SQL-Text folgendes:
('Select * from Table where Feld= ' + quotesdstr(edit_Feld.text [b]+ '%'[/b])) Lasse ich dies weg, funktioniert die Abfrage. Jedoch muss ich dann ja immer den kompletten Suchbegriff eingeben. Das % steht ja bei SQL für fehlende Zeichen...

Müsste man nicht eigentlich dann schreiben: ...WHERE Feld LIKE 'string%'
Jedoch funktioniert das bei mir auch nicht.

Kenne das auch nur von MySQL. Kann natürlich sein, dass dieser Paradox-Interpreter das noch nicht kennt. Aber wie lösst man dann so eine ungenaue Suche?
  Mit Zitat antworten Zitat
stoermi

Registriert seit: 1. Dez 2004
Ort: im Wald von Thüringen
75 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: Suchergebnis aus DB ausgeben - Datensatz wählen - Wie?

  Alt 14. Dez 2004, 16:38
Die Lösung:

Delphi-Quellcode:
procedure btnSuchenClick(Sender: TObject);
var s: String;
begin
  with KundenQuery do
  begin
    active := false;
    sql.clear;
    s := edSuche.Text + '%';
    sql.add('SELECT Name, Vorname, PLZ, Ort, Strasse, Hausnummer as HNr FROM daten\kunden.db WHERE LOWER(Name) LIKE :suche');
    ParamCheck := true;
    ParamByName ('suche').AsString := LowerCase(s);
    active := true;
    open;
  end;
end;
  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 00:05 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