Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Access Tabelle durchsuchen (https://www.delphipraxis.net/103941-access-tabelle-durchsuchen.html)

Seppel 24. Nov 2007 18:34

Datenbank: Access • Zugriff über: BDE

Access Tabelle durchsuchen
 
Ich arbeite gerade mit BDE, aber nur zu test zwecken, also ich setz es dann in MYSQL um.
Ich will die DB durchsuchen und zwar, wenn in dein Editfeld z.B. 5 eingegeben wird, dann werden alle Daten mit ID 5 angezeigt.(also z.B. Name dann halt und Adresse..).
Brauch ich ein Query(ok ja^^), der SQl Code ist das schwierige, ich glaub damit muss ich mich noch ma auseinander setzten.
Dann das laden in die Editfelder, geht dann ja über den SQL COde.
Delphi-Quellcode:
edit1.text := query1.FieldByName('Name').AsString; // so oder?
Wäre nett wenn mir jemand da helfen könnte.

[edit=sakura] Titel auf Wunsch angepasst. Mfg, sakura[/edit]

Die Muhkuh 24. Nov 2007 18:37

Re: Suchen!
 
Der SQL-Code wäre:

SQL-Code:
SELECT * FROM tabellenname WHERE id = 1

Seppel 24. Nov 2007 18:39

Re: Suchen!
 
Zitat:

Zitat von Die Muhkuh
Der SQL-Code wäre:

SQL-Code:
SELECT * FROM tabellenname WHERE id = 1

also, muss ich das so machen:
SQL-Code:
'SELECT * FROM tabellenname WHERE id ='+edit1.Text
Und dann muss ich ja noch die Daten einfügen in die Editfelder.
Beim Code muss dann ja noch was dazu für die einzelnen Felder oder?

mkinzler 24. Nov 2007 18:44

Re: Suchen!
 
Oder besser mit Parameter
Wenn du dem Query die Abfrage:
SQL-Code:
SELECT * FROM tabellenname WHERE id = :suchid;
zuweist. brauchst du später, nur den Parameter mit
Delphi-Quellcode:
query1.ParamByName('suchid').assTring := Edit1.Text;
absetzen

Die Muhkuh 24. Nov 2007 18:44

Re: Suchen!
 
Hi,

ich würde das über Paramter lösen:

Delphi-Quellcode:
Query1.SQL.Text := 'SELECT * FROM tabellenname WHERE id = :id';
Query1.ParamCheck := true;
Query1.ParamByName('id').AsInteger := StrToInt(Edit1.Text);
Query1.Open;

// Auslesen wie gewohnt:
Edit2.Text := Query1.FieldByName('Feldname').AsString;

Seppel 24. Nov 2007 19:04

Re: Suchen!
 
Zitat:

Zitat von Die Muhkuh
Hi,

ich würde das über Paramter lösen:

Delphi-Quellcode:
Query1.SQL := 'SELECT * FROM tabellenname WHERE id = :id';
Query1.ParamCheck := true;
Query1.ParamByName('id').AsInteger := StrToInt(Edit1.Text);
Query1.Open;

// Auslesen wie gewohnt:
Edit2.Text := Query1.FieldByName('Feldname');

Ok Parameter sind ne gute Bereicherung für mich, allerdings funzt was net, muss ich bestimmt noch was deklarieren oder?

Fehler:
inkompatibletypen Tstrings und string.
inkompatibletypen string und Tfield.

mkinzler 24. Nov 2007 19:05

Re: Suchen!
 
Delphi-Quellcode:
Query1.SQL.Text := ...

Sharky 24. Nov 2007 19:06

Re: Suchen!
 
Hai Seppel,

da fehlt ein .Text
Code:
Query1.SQL[b].Text[/b] := 'SELECT * FROM tabellenname WHERE id = :id';
EDIT: Dieser mkinzler. Hat keine Mathematik sondern "nur" Informatik studiert und postet doch schneller als der DP-Hai :stupid:

mkinzler 24. Nov 2007 19:07

Re: Suchen!
 
Und hier:
Delphi-Quellcode:
Edit2.Text := Query1.FieldByName('Feldname').asString;

Die Muhkuh 24. Nov 2007 19:14

Re: Suchen!
 
ei ei ei, ich änder das gleich mal noch. Ist halt außen Kopf gemacht ne ;-)

quendolineDD 24. Nov 2007 19:23

Re: Suchen!
 
Da du meintest du hättest Probleme mit SQL ... schau dir mal dieses Tut zu SQL an.
http://sql.1keydata.com/de/

Seppel 24. Nov 2007 19:27

Re: Suchen!
 
Zitat:

Zitat von quendolineDD
Da du meintest du hättest Probleme mit SQL ... schau dir mal dieses Tut zu SQL an.
http://sql.1keydata.com/de/

Thx.
@all: Thx, too.
Habt mir sehr geholfen.

Seppel 26. Nov 2007 19:17

Re: Suchen!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hab ma ein Problem und zwar Suchen klappt ja jetzt, aber wenn ich dann die Navibenutze um z.B was neues zu erstellen, dann bekomme ich eine Meldung, ich glaub es leigt an dem Feld ID.
Ich poste ma alles rein.

Ich benutze ADOkomponente, also auch eine Access datenbank.
Der Primärschlüssel is STUID und wird nicht automatisch festgelegt(ein Felher?)
Also kann die ID(STUID) auch ma 1000 statt 1 sein. Ich glaube das ist der Felher, vlt. probiere ich esm a mit ner id und der STUID an sich, aber dann kann ich net mehr nach der STUID suchen oder?

Delphi-Quellcode:
begin
Query1.SQL.Text := 'SELECT * FROM apezdb WHERE STUID ='+id.Text;
//Parameter hab ich weggleassen, haben bei ADO komponente net gefunzt.
Query1.Open;

id.Clear;
name.Clear;
Rasse.clear;p1.Clear;p2.Clear;p3.Clear;m1.Clear;
m2.Clear;m3.Clear;komm.Clear;

id.text := Query1.FieldByName('STUID').asString;
name.Text := Query1.FieldByName('Name').asString;
Rasse.Text := Query1.FieldByName('Rasse').asString;
p1.Text := Query1.FieldByName('Planet1').asString;
p2.Text := Query1.FieldByName('Planet2').asString;
p3.Text := Query1.FieldByName('Planet3').asString;
m1.Text := Query1.FieldByName('Mond1').asString;
m2.Text := Query1.FieldByName('Mond2').asString;
m3.Text := Query1.FieldByName('Mond3').asString;
komm.Text := Query1.FieldByName('Kommentar').asString;

end;

mkinzler 26. Nov 2007 19:21

Re: Suchen!
 
Sorge dafür, das die ID automatisch vergeben wird.

Seppel 26. Nov 2007 19:21

Re: Suchen!
 
Zitat:

Zitat von mkinzler
Sorge dafür, das die ID automatisch vergeben wird.

Funzt es dann noch wenn ich nach der STUID suche und dass dann alles nach ihr aufgelistet wird??

Seppel 26. Nov 2007 19:29

Re: Suchen!
 
Also, ich will ja jetzt nach ner STUID suchen z.B 2000, die richtige ID(Primärschlüssel) davon ist 3.

Suchen klappt auch, nur wenn ich dann vorwärts gehen will, dann kommt halt ne Fehlermeldung und da steht Fled ID kann nicht verändert werden.
Muss ich vlt. nach der Suche noch was freigeben, bzw. der DB mitteilen??

mkinzler 26. Nov 2007 19:32

Re: Suchen!
 
Was für Typen haben id und Co?

Seppel 26. Nov 2007 19:34

Re: Suchen!
 
Liste der Anhänge anzeigen (Anzahl: 1)
ID ist Autowert, ich lad die DB einfach ma hoch^^
STUID is glaub ich Zahl oder so.

Seppel 27. Nov 2007 13:48

Re: Suchen!
 
Habt ihr mich vergessen. :(
edit:
Könnt ihr mir net helfen??
Mein Problem ist wenn ich suche und was finde und dann etwas neues hinzufügen will oder vorwärts gehen will, dass eine Fehlermeldung kommt, ID falsch...

Seppel 27. Nov 2007 16:33

Re: Suchen!
 
Das Problem liegt bestimmt darin, dass ich nicht nach der ID suche, sondern nach einem anderen Feld oder?

Seppel 28. Nov 2007 13:36

Re: Suchen!
 
*up*

DeddyH 28. Nov 2007 13:40

Re: Suchen!
 
Jetzt erklär mir noch mal Deine Tabellenstruktur und was bzw. wie Du suchst. Primärschlüssel ist Id? Und STUID ist einfach eine (nicht eindeutige) Zahl?

Seppel 28. Nov 2007 13:43

Re: Suchen!
 
Zitat:

Zitat von DeddyH
Jetzt erklär mir noch mal Deine Tabellenstruktur und was bzw. wie Du suchst. Primärschlüssel ist Id? Und STUID ist einfach eine (nicht eindeutige) Zahl?

jo hab oben sogar die Datenbank angehängt.(Access)
Soll ich vlt. ma alles uppen??
Datenbank und momentanen Code??

DeddyH 28. Nov 2007 13:45

Re: Suchen!
 
Schaden kann es nicht.

Seppel 28. Nov 2007 13:55

Re: Suchen!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ok hier is alles.

DeddyH 28. Nov 2007 13:58

Re: Suchen!
 
Ist das Access 2003 oder gar 2007? Auf jeden Fall bekomme ich die DB nicht geöffnet.

Seppel 28. Nov 2007 14:00

Re: Suchen!
 
Zitat:

Zitat von DeddyH
Ist das Access 2003 oder gar 2007? Auf jeden Fall bekomme ich die DB nicht geöffnet.

2003, kann ich das irgendwie konvertieren??

sakura 28. Nov 2007 14:00

Re: Suchen!
 
Etwas zum Titel, da wir inzwischen mehrere Beschwerden dazu haben - diesen kannst Du nicht mehr ändern, aber in Zukunft wähle bitte aussagekräftigere Titel für Deine Fragen - alle werden es Dir danken :zwinker:

...:cat:...
Danke vom Team im Voraus

DeddyH 28. Nov 2007 14:02

Re: Suchen!
 
Eigentlich ist es nicht nötig, die DB nun zu konvertieren, poste doch einfach mal die Metadaten hier.

Seppel 28. Nov 2007 14:07

Re: Suchen!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von sakura
Etwas zum Titel, da wir inzwischen mehrere Beschwerden dazu haben - diesen kannst Du nicht mehr ändern, aber in Zukunft wähle bitte aussagekräftigere Titel für Deine Fragen - alle werden es Dir danken :zwinker:

...:cat:...
Danke vom Team im Voraus

ok.
Im Anhang is ein Screen^^

DeddyH 28. Nov 2007 14:10

Re: Suchen!
 
Mich wundert, dass die Datasource mit der Table verbunden ist und nicht mit der Query.

Seppel 28. Nov 2007 14:57

Re: Suchen!
 
Zitat:

Zitat von DeddyH
Mich wundert, dass die Datasource mit der Table verbunden ist und nicht mit der Query.

hmm...
^^
Dann muss ich auch zu beginn abfragen oder?
also Select from apezdb
weil ja dann alles manuell gemacht wird und die Tabelle macht ja das für mich.
Oder sehe ich das falsch?

DeddyH 28. Nov 2007 15:12

Re: Suchen!
 
Ich würde es so machen. Dann kannst Du Dir die Table komplett sparen.

P.S.: Es heißt SELECT * FROM Tabelle ;)

Sharky 28. Nov 2007 15:12

Re: Suchen!
 
Zitat:

Zitat von Seppel
.... Im Anhang is ein Screen^^

Hai Seppel,

dein Bild im Anhang hat aber nichts mit dem Titel des Threads zu tun.

Schreibe Sakura doch eine PN und bitte ihn den Titel zu ändern!

Seppel 28. Nov 2007 15:19

Re: Suchen!
 
Ok es funzt einigermaßen.
Jetzt ist zumindest keine Fehlermeldung.
Aber ich kann nicht vor oder zurück gehen.
Wie kann man das jetzt machen.

DeddyH 28. Nov 2007 15:38

Re: Access Tabelle durchsuchen
 
In welcher Datenmenge denn? Die initial im Query steht?

Seppel 28. Nov 2007 15:50

Re: Access Tabelle durchsuchen
 
Zitat:

Zitat von DeddyH
In welcher Datenmenge denn? Die initial im Query steht?

Also ich suche dann jetzt, vorher werden die Daten durchs Query geladen.
Select * from tabelle
So dann suche ich, Select from tabelle where STUID =....
so ich hab dann was gefunden und wenn ich dann auf weiter gehen will kennt er keinen Datensatz mehr.
Das leigt auch daran, dass es ja eigentlich keinen mehr gibt, also muss ich ja irgendwie die anderen Datensätz wieder reinladen.
Das is denke ich das Problem.

DeddyH 28. Nov 2007 15:53

Re: Access Tabelle durchsuchen
 
Du filterst mit Deiner Query. Zur Suche kannst Du Dir mal Locate ansehen.

Seppel 28. Nov 2007 15:54

Re: Access Tabelle durchsuchen
 
Zitat:

Zitat von DeddyH
Du filterst mit Deiner Query. Zur Suche kannst Du Dir mal Locate ansehen.

Ja genau, das mim filtern is mir jetzt auch klar^^
Ich schau ma was es da gibt, wegen dem Locate.

edit:
Delphi-Quellcode:
Query1.Locate()// was muss man da jetzt eingeben etwa : STUID=+id.Text

Seppel 28. Nov 2007 18:10

Re: Access Tabelle durchsuchen
 
Zitat:

Zitat von DeddyH
Du filterst mit Deiner Query. Zur Suche kannst Du Dir mal Locate ansehen.

Was muss man denn bei Locate eingeben?(welche Parameter)


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:12 Uhr.
Seite 1 von 2  1 2      

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