Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Suche (SQL) nach neuen Datensätzen funktioniert nicht (https://www.delphipraxis.net/41174-suche-sql-nach-neuen-datensaetzen-funktioniert-nicht.html)

chrissy 27. Feb 2005 13:21

Datenbank: Paradox • Zugriff über: BDE

Suche (SQL) nach neuen Datensätzen funktioniert nicht
 
Hi!

Ich habe mir eine Paradox Datenbank angelegt und will nach eingetragenen Datensätzen suchen. Die Datensätze sind vorhanden, werden mir auch angezeigt, nur bei der SQL abfrage, gibt er mir immer nur die Möglichkeit nach den ersten 3 der insgesamt 7 Datensätze zu suchen (Diese 3 habe ich ganz zu beginn eingetragen).

Könnte das eventuell an nicht korrekten IndexFiles liegen?! Wenn ja, wie behebe ich das und beuge ein weiteres Auftreten dieses Problems vor, wenn nein, jemand ne andere Idee, wie ich das Problem lösen kann?!

schon mal besten Dank.

Gruß
Chrissy

r_kerber 27. Feb 2005 13:27

Re: Suche (SQL) nach neuen Datensätzen funktioniert nicht
 
Du solltest vielleicht näher beschreiben, wie die Daten und das SQL-Statement aussehen.

chrissy 27. Feb 2005 13:48

Re: Suche (SQL) nach neuen Datensätzen funktioniert nicht
 
Ok, tschuldige....

Die Daten Stehen in mehreren Tabellen, wobei ich eigentlich nur in einer Suche, wo ich einen Auto-Inc Schlüssel habe und Name und Vorname, sowie Adresse, Telefonnummer, etc.

Mit einer SQL-Abfrage müchte ich nach Schlüssel (also einer Nummer) bzw. nach dem Namen, unterschieden in Name/Vorname oder Nur Name suchen.

Hier mal meine SQL-Statements:
Delphi-Quellcode:
   if (EdNummer.Text = '') then exit  // Also, wenn nix zum Suchen da ist, kann man ja gleich Abbrechen
         else begin
             if (TryStrToInt(EdNummer.Text, nummer)) then //Kann schlecht nach ner Nummer suchen, wenn jemand n Wort eintippt   ;)
                 begin
                   nummer:=StrToInt(EdNummer.Text);
                   with Daten.QSucheNummer do begin
                      close;
                      SQL.Clear;
                      SQL.Add('SELECT L.Id, A.Anrede, L.Name, L.Vorname, L.Geburtsdatum, L.Strasse, {u.s.w.} FROM "'+pfad+'Daten\anrede.DB" A INNER JOIN "'+pfad+'Daten\lehrer.db" L ON (A.Id = L.Anrede) {USW. bis alle Tabellen drin sind} WEHERE L.Id = :PNummer');
                      ParamByName('PNummer').AsInteger = nummer;
                      ExecSQL;
                      Open;
                   end;  
                    DBAnzeige.Visible := false;
                    DBAnzeige.DataSource:=Daten.DSSucheNummer;
                    DBAnzeige.Visible:=true;
                 end
                  else exit;
         end;

Wie gesagt, die Abfrage Funktioniert bei den 1. 3 Datensätzen und bei den Restlichen bekomme ich ein leeres Fenster.... Aber mit den Richtigen Feldbezeichnungen, als wenn eben kein Datensatz mit der Nummer da wäre.....

kiar 27. Feb 2005 14:14

Re: Suche (SQL) nach neuen Datensätzen funktioniert nicht
 
hallo,

so mal überflogen
Delphi-Quellcode:
ParamByName('PNummer').AsInteger = nummer;
// hier dein sql
raik

chrissy 27. Feb 2005 14:33

Re: Suche (SQL) nach neuen Datensätzen funktioniert nicht
 
Habs Ausprobiert, gibt ein Laufzeitfehler, und zwar: Parameter PNummer nicht gefunden.

Ich glaube das wars wohl doch eher nicht.....

Das Problem ist ja nicht, dass der AQL befehl gar nicht funktioniert, sondern dass er nicht auf allen Datensätzen funktioniert.

Aber dennoch danke für den Tipp

r_kerber 27. Feb 2005 14:43

Re: Suche (SQL) nach neuen Datensätzen funktioniert nicht
 
Zunächst erst mal ein Hinweis: Verwende möglichst BDE-Aliasnamen und keine Pfade.
Zitat:

L ON (A.Id = L.Anrede)
Ist L.Anrede tatsächlich auch Integer? Beschreibe doch bitte mal Deine Tabellenstruktur. Und erkläre mal, was Du angezeigt beommen möchtest (vielleicht mit Beispiel).

chrissy 27. Feb 2005 14:53

Re: Suche (SQL) nach neuen Datensätzen funktioniert nicht
 
Also, ich habe eine Tabelle Anrede:
Schlüssel Id (Autoinc)
Anrede (Text)

Dann eine Tabelle Lehrer mit:
Schlüssel Id (AutoInc)
Fremdschlüssel Anrede (Integer)
Name, Vorname, etc. (Text)
Fremdschlüssel Ort (Integer)

Dann ebenso eine Tabelle Ort, mit Schlüssel als AutoInc und Ort und Vorwahl als Textfeld.


Angezeigt bekommen möchte ich die Person mit bestimmter schlüsselnummer oder bestimmten namen. Und zwar in einem Grid.

Also, wenn ich einen Lehrer mit

Id 1, Anrede 1 (also Herr), Name Test, Vorname Testus, ...... habe möchte ich, wenn ich nach Nummer 1 suche genau den Datensatz in dem Grid dargestellt bekommen.

chrissy 27. Feb 2005 15:40

Re: Suche (SQL) nach neuen Datensätzen funktioniert nicht
 
In der Tabelle Lehrer sind 7 Datensätze mit Schlüssel 1 bis 7

wenn ich nach Datensatz 1 bis 3 Suche, bekomme ich meine Ergebnisse, so wies sein sollte, richtig Angezeigt,.... was mich vermuten lässt, dass der SQL Befehl nicht ganz falsch sein kann.

Wenn ich nach Datensatz 4 bis 7 suche, seis nach Nummer oder nach Name, ich bekomme nichts angezeigt, außer die Struktur mit leeren spalten, als wenn der Datensatz nicht vorhanden wäre...
Unter dem, dass ich mir alle anzeigen lasse, stehen diese in der Suche nicht gefundenen Datensätze aber drin.

Jelly 27. Feb 2005 16:28

Re: Suche (SQL) nach neuen Datensätzen funktioniert nicht
 
Gibts denn auch in der Tabelle "Anrede" die Datensaätz mit Schlüssel 4,5,6,7... Sonst kannst du mit einen Inner Join nichts geliefert kriegen.

chrissy 27. Feb 2005 17:09

Re: Suche (SQL) nach neuen Datensätzen funktioniert nicht
 
nein, nur mit 1 und 2, aber wie gesagt, bei 3 funktioniert es ja auch noch.....


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:30 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