AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Letzten oder bestimmten Datensatz finden
Thema durchsuchen
Ansicht
Themen-Optionen

Letzten oder bestimmten Datensatz finden

Ein Thema von Gambit · begonnen am 16. Jun 2003 · letzter Beitrag vom 17. Jun 2003
Antwort Antwort
Seite 1 von 3  1 23      
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#1

Letzten oder bestimmten Datensatz finden

  Alt 16. Jun 2003, 13:59
Moinsen,

ich möchte in meiner Datenbank einen bestimmten letzten Datensatz finden, dort den Wert eines bestimmten Feldes abfragen und das noch in Abhängigkeit eines anderen Feldes.

Mal klarer: Es gibt ein Feld "Regalnummer" Die soll incrementiert werden bzw. eingetragen werden, wenn ich einen neuen Datensatz anlege. Nun gibts es aber zwei verschiedene Arten von Regalnummern, einmal die, die noch ein "E" hinten dran haben und die, die ein "K" hinten dran haben. Ob E oder K hängt von einem anderen Feld ab.

Ich möchte nun: zb nach E abgrenzen, dann dort den letzten Datensatz finden und ein Feld dieses Datensatzes abfragen.

Wie mach ich das, vor allen Dingen, ohne die Anzeige der Daten in meinem DBGrid zu verändern(FindLast würde also nicht in Frage kommen)

Geht das vielleicht irgendwie mit SQL?

Gruß Gambit

P.S Hoffe, ich hab das einigermaßen klar machen können, irgendwie raucht mir der Kopp bei dem schwülen Wetter...
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2
  Alt 16. Jun 2003, 16:02
Hallo Gambit,

die Abfrage mittels SQL wäre mit dem like operator möglich:

SELECT Max(regalNr) as letzterMitE FROM regale WHERE regalNr LIKE '%E'
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#3
  Alt 16. Jun 2003, 21:27
Ja, Danke! Aber würde das Ergebnis dann nicht auch sofort in meinem DBGrid angezeigt? Das Ergebnis soll ja nur intern verarbeitet werden.

Engage!

Gambit
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#4
  Alt 17. Jun 2003, 06:53
Hallo Gambit,

nein, das Ergebnis steht nur in der TQuery Komponente. Um es anzuzeigen müsstest du erst noch ein Grid und eine TDataSource Komponente mit DIESER Query verknüpfen.

Das Ergebnis liest du mit:

letzter := qryRegale.FieldByName('letzterMitE').AsString; aus. Je nach verwendeter Datenbank kannst du auch noch die Funktion SubString im SQL Statement benutzen, falls gewünscht.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#5
  Alt 17. Jun 2003, 09:29
Das hört sich gut an! Allerdings scheine ich wieder ein Tüddelchen-Problem zu haben:

Habe geschrieben:

Query2.SQL.Add('Select Max(Regalnummer) as letzterMitE FROM DVDBank WHERE Regalnummer LIKE ''%E'''); wenn ich nun:

letzter := Query2.FieldByName('letzterMitE').AsString; schreibe, bekomm ich die Fehlermeldung: Feld 'letzterMitE' nicht gefunden.

Ist das nun ein Tüddelchen-Problem oder was mach ich falsch?

Ist mir ja schon fast peinlich...

Gambit
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#6
  Alt 17. Jun 2003, 09:29
Hallo Gambit 8)

TDataSet.Lookup

Delphi F1-Taste drücken:

"Die virtuelle Methode Lookup gibt die Feldwerte eines Datensatzes zurück, der mit den angegebenen Suchwerten übereinstimmt."

Von mir:

Im gegensatz zu Locate macht Lookup den gefundenen Datensatz NICHT zu
dem aktuellen Datensatz...

Alternative:

Du musst eine zusätzliche Query benutzen und so die Werte herausfinden

Gruß

Paul Jr.
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#7
  Alt 17. Jun 2003, 09:35
Query2 ist bereits eine zusätzliche.

Gruß

Gambit
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#8
  Alt 17. Jun 2003, 09:43
Also wo liegt Dein Problem?

Gruß

Paul Jr.
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#9
  Alt 17. Jun 2003, 09:45
Hab ich doch oben geschrieben: Es wird das Feld letzterMitE nicht erkannt. Ich dachte dieses Alias könnte ich wie einen ganz normalen Feldnamen benutzen.

Gambit
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#10
  Alt 17. Jun 2003, 09:47
Mal so aus'm Bauch heraus. Versuche doch mal zur Design-Zeit dieses SELECT inzutragen, und anschließend in der Query die Felder hinzuzufügen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 07:47 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