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
nahpets
(Gast)

n/a Beiträge
 
#1

AW: ID nicht gefunden nach last_insert_rowid()

  Alt 16. Mai 2017, 18:42
Den Fehler gibt es unter Zeos nicht.
Daher meine Behauptung: DBExpress ist für diese Aufgabe wohl nicht erste Wahl.
  Mit Zitat antworten Zitat
EdAdvokat

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

AW: ID nicht gefunden nach last_insert_rowid()

  Alt 16. Mai 2017, 19:00
Ich kann noch immer nicht erkennen, wo ich welche Klammer vergessen habe.
Das grundsätzliche Vorgehen, um mit SQLite eine DB-Anwendung zu schreiben habe ich mir von einem Youtube-Video von Andreas Hiller abgeschaut und da war immer die Rede von qMain.SQL.Clear;
qMain.Params.Clear; usw. Danke Haentschmann ich werde das ganze nochmals überarbeiten. Das connect an der bewußten Stelle hat mir so richtig auch nicht gefallen, doch es war eine Lösung für
die Darstellung nur des aktuell bearbeiteten Datensatzes ohne die anderen DS.
Nach Bearbeiten wurde nur der bearbeitete DS danach dargestellt und die vorheriigen nicht mehr. Das refresh half auch nicht.
Leider kann ich euren aha-Aufschrei nicht nachvollziehen. Was konkret habe ich falsch gemacht???
Ich habe nochmals nachgesehen und festgestellt, dass ich sowohl im Zeos-Komp. Programm als auch im dbExpress-Programm stets geschrieben habe: qMain.SQL.Text:='SELECT LAST_INSERT_ROWID() AS ID FROM KONTAKTE';
Norbert

Geändert von EdAdvokat (16. Mai 2017 um 19:04 Uhr)
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#3

AW: ID nicht gefunden nach last_insert_rowid()

  Alt 16. Mai 2017, 19:13
Es geht nicht darum, ob Du was falsch gemacht hast oder nicht, sondern darum ob es mit DBExpress geht oder nicht.

Der Fehler, der von Deine Exe geworfen wird, ist logisch nicht nachvollziehbar.

Wenn man in 'nem SQL einen Alias für 'nen Spaltennamen angibt, also select Funktion() as Spalte from Tabelle schreibt, dann muss im Ergebnis die qMain.FieldByName('SPALTE').AsString funktionieren.

Wenn man in Deinem Programm also SELECT last_insert_rowid() AS ID eingibt, dann muss es im Ergebnis die Spalte ID geben, also qMain.FieldByName('ID').AsString verfügbar sein.

Dem ist aber nicht so. Das sieht für mich jetzt erstmal nach 'nem Fehler bei DBExpress aus, zumal das Ganze mit den Zeos-Komponenten ja funktioniert.

Und dass die SQLite-Datenbank bei identischen Statements aber unterschiedlichen Komponenten unterschiedliche Ergebnisse liefert, halte ich für eher unwahrscheinlich.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

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

AW: ID nicht gefunden nach last_insert_rowid()

  Alt 16. Mai 2017, 19:23
Du hast nichts falsch gemacht. Das mit der Klammer war nur ein Hinweis.
  Mit Zitat antworten Zitat
EdAdvokat

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

AW: ID nicht gefunden nach last_insert_rowid()

  Alt 16. Mai 2017, 19:28
da fällt mir ein Stein vom Herzen. Ich dachte, ich liege wieder mal sowas von falsch. Wenn auch das Zeos-Prg. erforderlich sein sollte, bitte anmahnen. Es unterscheidet sich lediglich hinsichtlich des connect.
Alles andere ist identisch, natürlich ohne last_insert_rowId()... Es war wirklich nicht meine Absicht, Euch aufdringlich mit dem Problem zu belästigen, doch es scheint wohl was faul zu sein im Staate Delphi...
Norbert
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#6

AW: ID nicht gefunden nach last_insert_rowid()

  Alt 16. Mai 2017, 19:32
Ist denn FireDAC bei der Professional nicht dabei? Falls doch, würde ich doch lieber das benutzen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: ID nicht gefunden nach last_insert_rowid()

  Alt 16. Mai 2017, 19:42
Ich habe das mal in meinem eigenen SQLite Manager ausgeführt den ich gerade programmiere. Einmal mit Alias und einmal ohne. Ich steuere die Datenbank direkt über die SQLite3.dll an. Ohne Umweg über Zeos oder sonstige Fremdkomponenten. Folgendes kommt bei mir erwartungsgemäß dabei rum:

LastInsertRowIDWithoutAlias.png LastInsertRowIDWithAlias.png


Hier noch ein Zitat von der SQLite Homepage:
Zitat von SQLite Documenation:
last_insert_rowid()

The last_insert_rowid() function returns the ROWID of the last row insert from the database connection which invoked the function. The last_insert_rowid() SQL function is a wrapper around the sqlite3_last_insert_rowid() C/C++ interface function.

Quelle: https://www.sqlite.org/lang_corefunc...t_insert_rowid

Zusätzliche Informationen gibt es dann noch hier: Last Insert RowID
  Mit Zitat antworten Zitat
EdAdvokat

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

AW: ID nicht gefunden nach last_insert_rowid()

  Alt 16. Mai 2017, 19:43
doch das ist dabei und ich könnte es damit auch mal versuchen. Braucht ein Zeitchen.
Norbert
  Mit Zitat antworten Zitat
Antwort Antwort


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:32 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 by Thomas Breitkreuz