Letzten Datensatz einer Abfrage ermitteln?

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Letzten Datensatz einer Abfrage ermitteln?

von Kalinka » Di, 25.07.2006 15:31

Geht natürlich auch, ist aber eher das Modell 'Brechstange' :wink:
Rado

von chrdz » Di, 25.07.2006 15:08

Hallo Rado,

danke für den Tip. Nachdem ich lange keine Antwort auf mein Problem gefunden habe, bin ich selbst auf einen anderen Workaround gekommen. Wobei ich sagen muss, dass Deiner mehr Charme hat. Für Interessierte:

Code: Alles auswählen

	while ResultSet1.next
		I = I+1
	Wend
Statement = Connection.createStatement()
ResultSet1 = Statement.executeQuery(query)
oText = ""
while ResultSet1.Next
	J=J+1
		wait(150)
		if J < I then
			oText = oText+Right(ResultSet1.getString(1),2)+"."+Mid(ResultSet1.getString(1),6,2)+"."+Mid(ResultSet1.getString(1),3,2)+chr(13)
			wait(150)
		else
			oText = oText+Right(ResultSet1.getString(1),2)+"."+Mid(ResultSet1.getString(1),6,2)+"."+Mid(ResultSet1.getString(1),3,2)+chr(13)+ResultSet1.getString(2)+" Uhr"
		end if
Wend
CellCursor.String = oText
Das heißt, ich zähle vorab die Datensätze und weiß dann welcher der letzte ist. Leider muss ich die Abfrage wiederholen.

Grüße
Christian

von Kalinka » Di, 25.07.2006 13:48

Hallo,

die Arbeit mit ResultSets birgt nach meinen bisherigen Erfahrungen so manche Wunderlichkeiten in sich...
Ich habe mir deshalb angewöhnt, möglichst drumherum zu programmieren.
In Deinem Fall würde ich einfach zuerst eine Abfrage nach dem letzten Datensatz starten, z.B.:

Code: Alles auswählen

query = "SELECT FIRST ID from `termin` where ( `DATUM` >= '"+von+"' AND `DATUM` <= '"+bis+_
       "') AND (`termin`.`ORGID` = "+orga+" ) AND (`termin`.`STAENDIG` = 1) order by Datum DESC"
ResultSet = Statement.executeQuery(query)
If not isNULL(ResultSet) and ResultSet.Next() then
  iID = ResultSet.getInt(1)
End If
...
Falls ID Dein Primärschlüsselfeld ist, hättest Du so die Datensatz-ID und könntest Deine If-Abfrage damit gestalten.

Rado

Letzten Datensatz einer Abfrage ermitteln?

von chrdz » Di, 18.07.2006 15:51

Hallo,

folgenden Code möchte ich benutzen, um in einem Textdokument den letzten Datensatz einer Abfrage (als resultset) anders zu behandeln als die anderen.

Code: Alles auswählen

query = "SELECT DATUM from `termin` where ( `DATUM` >= '"+von+"' AND `DATUM` <= '"+bis+_
	    "') AND (`termin`.`ORGID` = "+orga+" ) AND (`termin`.`STAENDIG` = 1) order by Datum ASC"
Statement = Connection.createStatement()
ResultSet1 = Statement.executeQuery(query)
'{...
'Table und Cells formatieren

'...}while ResultSet1.next
wait(100)
if not ResultSet1.islast then
oText = oText+Right(ResultSet1.getString(1),2)+"."+Mid(ResultSet1.getString(1),6,2)+"."+Mid(ResultSet1.getString(1),3,2)+chr(13)
msgBox oText
else
oText = oText+Right(ResultSet1.getString(1),2)+"."+Mid(ResultSet1.getString(1),6,2)+"."+Mid(ResultSet1.getString(1),3,2)
msgBox oText+chr(13)+"Ich bin der letzte Datensatz"
end if
Wend

CellCursor.String = oText
Leider funktioniert das nicht.

resultset.isfirst funktioniert jedoch.

Wer weiß was?

Grüße

Christian

Nach oben