![]() |
Datenbank: MS SQL • Version: SQL Server 2005 • Zugriff über: ADOConnection
Wie finde ich den vorherigen und nachfolgenden Record
Hallo Datenbankspezialisten,
ich suche Daten in einer MS SQL Datenbank in einer Tabelle mit momentan 20 exemplarischen Records. Ich finde über ein TADOQuery den gewünschten Record. Ich muß aber vom gefundenen Record aus den vorherigen Record in der Tabelle auch einlesen. Wie finde ich diesen ? Wenn ich die RecNo des Queries auslese bekomme ich inmmer eine 1, tatsächlich ist jedoch die gefundene Zeile in der Originaltabelle die 14. Zeile und ich muß die 13. ebenfalls auslesen. Wird jemand aus meiner Frage schlau und weiß Rat ? Danke |
AW: Wie finde ich den vorherigen und nachfolgenden Record
In deiner Abfrage scheint es aber nur einen Datensatz zu geben, deshalb hat der die Nr. 1.
Wie sieht Deine Abfrage aus? |
AW: Wie finde ich den vorherigen und nachfolgenden Record
Zitat:
Code:
oder auch dafür sorgen, dass alle Daten in der gewünschten Reihenfolge erscheinen:
select * from MeineTabelle where MeinNummernFeld = 13
Code:
Dann kannst du dich auch mit Prior/Next in der Datenmenge bewegen.
select * from MeineTabelle order by MeinNummernFeld
|
AW: Wie finde ich den vorherigen und nachfolgenden Record
Richtig, die Abfrage ergibt nur einen einzigen Datensatz. Aber ich benötige auch die Daten des vorherigen Records, dieser beinhaltet aber nicht den gesuchten Suchbegriff.
Die Abfrage lautet in etwa qstring := 'SELECT [Time_ms],[MsgProc]'+ ',[StateAfter]' + ',[MsgClass]' + ',[MsgNumber]' + ',[Var1]' + ',[Var2]' + ',[Var3]' + ',[Var4]' + ',[Var5]' + ',[Var6]' + ',[Var7]' + ',[Var8]' + ',[TimeString]' + ',[MsgText]' + ',[PLC]'; s := ' FROM [' + NameArchiv + inttostr(k) + '] '; sub1 := 'Where var1 like ''%' + Edit3.Text + '%''' qstring := qstring + sub1; ADOQuery1.SQL.SetText(PWideChar(qstring)); ADOQuery1.Active := TRUE; |
AW: Wie finde ich den vorherigen und nachfolgenden Record
Was ist denn das Kriterium für den "vorherigen" Record?
|
AW: Wie finde ich den vorherigen und nachfolgenden Record
Ein Kriterium für den vorherigen Record ist der gleiche TimeString bzw gleiches Time_ms wie bei der gefundenen Zeile. Mmh... ich könnte natürlich eine zweite Suche danach starten, aber das ist mir irgendwie nicht elegant genug 8-), aber wenns nicht anders geht....
|
AW: Wie finde ich den vorherigen und nachfolgenden Record
So richtig habe ich die Struktur zwar nicht verstanden, aber vielleicht hilft eine Subquery weiter in der Art
SQL-Code:
SELECT
<FeldListe> FROM <Tabelle> WHERE TimeString = ( SELECT TimeString FROM <Tabelle> WHERE var1 LIKE 'Wasweißich' ) |
AW: Wie finde ich den vorherigen und nachfolgenden Record
Hat die Tabelle einen Primärschlüssel?
|
AW: Wie finde ich den vorherigen und nachfolgenden Record
Die Tabelle wird von einem Siemens-Programm angelegt und hat keinen Primärschlüssel. Ich versuche gerade die Sache mit dem SubQuery, mal sehen ....
|
AW: Wie finde ich den vorherigen und nachfolgenden Record
Das mit dem SubQuery hilft schon mal weiter, gute Idee, vielen Dank für die Hilfe. :-D:-D:-D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 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