![]() |
AW: [FMX] FDQuery.FieldByName leifert falschen String
Open/Close und Active sind gleichwertig. Auch die TFDQuery routet das Open auf Active:=True um.
|
AW: [FMX] FDQuery.FieldByName leifert falschen String
Zitat:
Eine unterwürfige und demütige Haltung ist hier völlig fehl am Platz und hilft niemandem. Von daher hat @TigerLilly alles richtig gemacht. |
AW: [FMX] FDQuery.FieldByName leifert falschen String
Zitat:
SQLite macht es einfach anders, mit dynamischen Typen, und hat es auch dokumentiert: Zitat:
![]() "..Dinge, die in traditionellen System nicht möglich sind.." Dazu gehören natürlich auch ungewöhnliche Fehlerkonstellationen. Es gibt hier schon einige Threads, die auf diesem unerwarteten Verhalten beruhen, also den Auswirkungen dieses dynamic typing. Wenn man mit SQLite arbeitet und im weitesten Sinne Probleme Wertzuweisung und Rückgabe/Darstellung/Abfrage hat, sollte man spätestens an diese Besonderheit denken. "Lustig", dass gerade in Delph respektive Pascal mit der exakten Typen Ideologie auch diese Schieflage auftritt. Was nochmal im Kontrast dazu steht, dass selbst unter "Delphianern" offenbar intuitiv gern Datumswerte als Text/String bearbeitet werden, um dann mit den Folgen zu kämpfen. Nagut, das ist der "Blinde Fleck" in der Datentypenbrille. Dynamic Typing von SQLite ist dagegen einfach ein vollkommen ungewohntes "Feature". Ohne die Kenntnis oder Idee seiner Existenz ist es einfach tückisch, besonders in Kombination mit einer irrtümlichen Spaltentypisierung. |
AW: [FMX] FDQuery.FieldByName leifert falschen String
Zitat:
Deshalb macht es wohl Sinn 2 gleichwertige Wege anzubieten, das macht durchaus Sinn. |
AW: [FMX] FDQuery.FieldByName leifert falschen String
An der gezeigten Implementierung kann man nur erkennen, dass "Open" zumindest in der Theorie mehr ist. Besser oder schlechter oder anders wäre vielleicht eine Spekulation auf die Zukunft, in der die Open Methode noch weitere Zeilen enthalten könnte, neben active := true.
Ich könnte mir auch vorstellen, dass die Problematik irgendwie mit
Code:
vermischt wird, was jedenfalls nicht so ratsam ist.
If dataset.active = true ..
Im Sinne von Klarheit und Lesbarkeit stellen Open für Datenmengen und ein Execute für Befehle für mich auch die bessere Alternative dar. |
AW: [FMX] FDQuery.FieldByName leifert falschen String
Solange wie die Eigenschaft
Delphi-Quellcode:
anzeigt ob die Verbindung aktiv ist (oder eben nicht) und diese Eigenschaft nicht read-only ist, solange wird diese das Gleiche auslösen müssen, wie ein Aufruf von
Active
Delphi-Quellcode:
, wo die Verbindung geöffnet und damit aktiv wird, was dann durch die Eigenschaft
Open
Delphi-Quellcode:
entsprechend angezeigt wird.
Active
|
AW: [FMX] FDQuery.FieldByName leifert falschen String
Ich gehe mal davon aus, dass ein Standard angeboten wird.
Bei
Delphi-Quellcode:
gibt es ja noch die Möglichkeit, einen SQL-String anzugeben (mit oder ohne Parameter)
FDQuery1.Open
Delphi-Quellcode:
.
FDQuery1.Open('SELECT ID, Bezeichnung FROM Tabelle1 WHERE ID = :ID', [1], [ftInteger]);
Wahrscheinlich gibt es deshalb zusätzlich den Standard
Delphi-Quellcode:
um den Code einheitlich gestalten zu können.
Open;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:07 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