AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken ID nicht gefunden nach last_insert_rowid()
Thema durchsuchen
Ansicht
Themen-Optionen

ID nicht gefunden nach last_insert_rowid()

Ein Thema von EdAdvokat · begonnen am 13. Mai 2017 · letzter Beitrag vom 16. Mai 2017
Antwort Antwort
Seite 4 von 8   « Erste     234 56     Letzte »    
nahpets
(Gast)

n/a Beiträge
 
#31

AW: ID nicht gefunden nach last_insert_rowid()

  Alt 14. Mai 2017, 14:51
Ich schrieb nicht ganz umsonst:SELECT MAX(ID) AS ID FROM KONTAKTE Wenn Du dann SELECT MAX(ID) FROM KONTAKTE nimmst, ist das natürlich was anderes.

Bitte übernimm bei Vorschlägen den ganzen Quelltext und nicht nur irgendwelche Teilmengen. Das kann bei der Fehlersuche deutlich hilfreich sein.

Wenn man MAX(ID) in 'nem SQL hat, dann heißt das nicht zwingend, dass die Spalte im Ergebnis dann auch Max heißt. Bei SQLite und FireBird mag das so sein.
Andere Datenbanken liefern dann auch schonmal Expr_1 oder, je nach Anzahl der verwendeten Funktionen Expr_1 bis Expr_n.

Man sollte bei Funktionen immer ein AS Spaltenname machen, damit man weiß, wie die Spalte im Ergebnis heißen wird.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#32

AW: ID nicht gefunden nach last_insert_rowid()

  Alt 14. Mai 2017, 15:04
Wenn's ums Lernen geht:

Bezüglich SQL: Einführung in die SQL Grundlagen

Auf der Seite wird auch beschrieben, was es mit dem AS auf sich hat: Daten abfragen

Viel mehr zum Thema: Grundlagen SQL

Bevor man sich da datenbankspezifisch auf die Besonderheiten der einzelnen System "stürzt", lieber erstmal allgemein informieren.
  Mit Zitat antworten Zitat
EdAdvokat

Registriert seit: 1. Mai 2016
Ort: Berlin
419 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#33

AW: ID nicht gefunden nach last_insert_rowid()

  Alt 14. Mai 2017, 15:13
Hallo Stephan, in #27 habe ich bereits dein Lösungsvorschlag beschrieben und leider erfolglos geprüft und gepostet. qMain.SQL.Text:='SELECT MAX(ID) AS ID FROM KONTAKTE'; erfolglos probiert. Ebenfalls die bekannte Exception. Ich bemühe mich durchaus exakt die Vorschläge aufzugreifen und zu prüfen.
Ich habe mir bezüglich SQL-Tutorials schon einiges angesehen und werde die Tipps natürlich auch aufgreifen.
Norbert

Geändert von EdAdvokat (14. Mai 2017 um 15:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#34

AW: ID nicht gefunden nach last_insert_rowid()

  Alt 14. Mai 2017, 15:21
Einen Tipp hast du vergessen.

* SQL-Tools verwenden
* oder dir selber einen SQL-Betrachter basteln.
Also ein DBGrid, was das gesamte Ergebnis einer SQL-Abfrage anzeigt und am Besten auch den Typ der Felder erkenntlich macht.
$2B or not $2B

Geändert von himitsu (14. Mai 2017 um 16:02 Uhr)
  Mit Zitat antworten Zitat
EdAdvokat

Registriert seit: 1. Mai 2016
Ort: Berlin
419 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#35

AW: ID nicht gefunden nach last_insert_rowid()

  Alt 14. Mai 2017, 15:28
Himitsu, doch durchaus habe ich mir einen DBBrowser installiert und mit einem SQL-Tutorial praktischBeispiele probiert. Natürlich bin ich noch nicht in alle Untiefen der SQL-Sprache eingedrungen.

Noch an Wort zu Stephans Kritik: Das von mir erwähnte Beispiel war ein Vorschlag von himitsu aus dem Post #26. Das leider nicht funktioniert hat. Ich habe nicht dein SQL-Select gemeint. Kommt sicher schon mal vor, bei den Häufungen an Versuchen.
Norbert
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#36

AW: ID nicht gefunden nach last_insert_rowid()

  Alt 14. Mai 2017, 16:32
Zitat:
doch durchaus habe ich mir einen DBBrowser installiert
Aber da fällt dann auch auf, wie die Spalte bei SELECT MAX(ID) FROM KONTAKTE heißt.
$2B or not $2B
  Mit Zitat antworten Zitat
EdAdvokat

Registriert seit: 1. Mai 2016
Ort: Berlin
419 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#37

AW: ID nicht gefunden nach last_insert_rowid()

  Alt 14. Mai 2017, 16:58
ja die heißt MAX(ID) und nicht ID, wie sie heißen sollte. Noch eine kurze Erklärung von mir: Ich habe überhaupt nicht in die Richtung gedacht, da es mit ROWID und den Zeos-Komp. wunderbar geklappt hat, dass es an einem nicht exakten SQL-Statement liegen könnte und in diese Richtung weiter gedacht werden muss. Jetzt nach Eurer Erklärung sind mir die Augen geöffnet worden - so ein wenig zumindest. Das was ich zur Funktion rowID... gefunden habe, war für mich nicht so erhellend, obwohl ich doch einiges leider überwiegend engl. auf der SQLite-Seite gelesen habe. Ich war der Auffassung, dass es an etwas anderem liegen muss, als an dem bewußten SQL-Statement mit der Funktion RowID...
Das Darstellungsproblem nach Bearbeiten habe ich zwischenzeitlich auch gelöst. Jetzt läuft alles vermutlich exakt.
Ich suche noch immer vergeblich nach Quelltexten zu einfachen Datenbankanwendungen, die ich als Beispiel zum lernen verwenden könnte. Ähnlich wie dieses einfache Adressprogramm zu SQLite. Gibt es da einen Tipp, wo ich suchen könnte ggf. auch zu anderen Datenbankanwendungen.
Danke nochmals für die Unterstützung.
Norbert

Geändert von EdAdvokat (14. Mai 2017 um 17:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#38

AW: ID nicht gefunden nach last_insert_rowid()

  Alt 14. Mai 2017, 17:04
Moin...
Was ich nicht verstehe...warum du einmal mit Zeos und das andere Mal mit DBExpress arbeitest? Du bist noch in der Lernphase...da reicht eigentlich Zeos Dicke aus.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#39

AW: ID nicht gefunden nach last_insert_rowid()

  Alt 14. Mai 2017, 17:07
Naja, die Methode ist doch ganz einfach:

Zuerst wird ein Statement außerhalb des Quelltextes, also mit 'ner Datenbankoberfläche, ausprobiert. Und erst dann, wenn es da fehlerfrei funktioniert, wird es ins Programm übernommen.

Und die Vergabe der Spaltennamen überlässt man weder der Datenbank noch der Datenbankoberfläche, sondern macht sie immer selbst.

Wird 'ne Spalte "einfach so" abgefragt, stimmt er im Abfrageergebnis mit dem in der Datenbanktabelle überein.

Sobald man eine Funktion, eine Case-Statement, 'nen Cast ... nutzt, gibt man den Namen mit as Spaltenname an. Dann weiß man, was man als Ergebnis bekommt.
  Mit Zitat antworten Zitat
EdAdvokat

Registriert seit: 1. Mai 2016
Ort: Berlin
419 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#40

AW: ID nicht gefunden nach last_insert_rowid()

  Alt 14. Mai 2017, 18:20
Hallo Haentschmann, zur Erklärung: Ich wollte das Programm mit dbExpress-Komp. für mich als Übung und Muster schreiben und bin dann an der bewußten Stelle auf Schwierigkeiten gestoßen, die ich mir nicht erklären konnte. Als Mittel der Wahl dachte ich, versuche es doch mal mit den Zeos-Komp. mit denen ich bislang gute Erfahrungen gemacht habe und siehe da da es ging wunderbar. Doch ich will langsam meinen Horizont erweitern und auch mit den dbExpress-Komp. arbeiten. Das war einzig und allein der Grund und wie sich gezeigt hat kann man dabei auch noch was lernen, was mir bei den Zeos-Komp. entgangen wäre.
Zum post von Stephan:
Zitat:
Zuerst wird ein Statement außerhalb des Quelltextes, also mit 'ner Datenbankoberfläche, ausprobiert. Und erst dann, wenn es da fehlerfrei funktioniert, wird es ins Programm übernommen.

Und die Vergabe der Spaltennamen überlässt man weder der Datenbank noch der Datenbankoberfläche, sondern macht sie immer selbst.
Ich gebe bei der Erstellung der DB die Spaltennamen an und im Programm arbeite ich damit. Wenn eine Abfrage durchgeführt wird, gebe ich diese Spaltennamen an. Dass das Problem an dem nicht exakten SQL-Statement liegt habe ich wie zuvor erklärt dazumal nicht erkannt. Künftig greife ich natürlich darauf zurück, SQL-Statements auszuprobieren und erst dann einzusetzen. Habe ich da was falsch verstanden?
Norbert
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 8   « Erste     234 56     Letzte »    


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 16:49 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