mikrocontroller.net

Forum: PC-Programmierung Verständnisfrage SQLite/letzter Eintrag suchen


Autor: DSausW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich hätte zu folgendem Problem gerne eine Bestätigung,
oder einen Tip:
In einer SQLite-Datenbank benötige ich immer den Inhalt (Zähler) einer
bestimmten Spalte der letzten Zeile beim Start einer Session.
Programmiert wird in C#.
So wie ich das in den Foren gelesen und scheinbar verstanden habe,
muss man, nach dem Öffnen der Datenbank erst einmal mit "insert"
eine Zeile einfügen, um dann mit "last_row_id" die letzte Zeile
zu identifizieren (minus 1)- dann hätte ich den Wert (ausgelesen).

Gibt es da vielleicht eine bessere Methode ??

Vielen Dank für Eure Anregungen !

Dietmar

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wär's damit:
SELECT id FROM table ORDER BY id DESC LIMIT 1;

Wenn id ein Index ist sollte es eigentlich kein Problem für SQLite sein 
das effizient umzusetzen.

Aber: willst du wirklich nach der ID sortieren, oder zweckentfremdest du 
die id als Erstellungsdatum? Kann man schon machen, man sollte sich aber 
darüber im Klaren sein dass IDs von gelöschten Zeilen u.U. 
wiederverwendet werden können. Je nach Anwendung könnte ein Timestamp 
also sinnvoller (und mit Index auch nicht langsamer) sein.

Autor: DSausW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Andreas,

besten Dank erst einmal.
Ich habe mich da wohl noch nicht ganz klar ausgedrückt.
Nicht Sortieren steht im Vordergrund, sondern die Ermittlung des 
MaxWertes
der betreffenden Spalte, der in der letzten Zeile stehen muss.
Dieser Wert wird aufsteigend von einer anderen Applikation in die
Datenbank hineingeschrieben (komplette Zeile mit Messwerten).
Die Werte dürfen nie verändert werden. Diese Applikation kann aber
beim Start nicht den letzten Wert ermitteln, so soll mein C#-Programm
dies erledigen und den nächsten Wert übergeben.

Hoffentlich ist das annähernd verständlich.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ermittlung des Maximalwertes erreicht man doch durch Sortieren.

Autor: Dietmar Sch. (dsausw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Logisch--
ist wohl ein wenig zu heiss für mich !

Autor: PS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wie wär's damit:
> SELECT id FROM table ORDER BY id DESC LIMIT 1;

Das geht noch einfacher:
SELECT MAX(id) FROM table;

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann braucht man allerdings noch eine zweite Abfrage um die eigentlichen 
Daten der Zeile zu bekommen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.