AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TFDMemtable und ftvariant
Thema durchsuchen
Ansicht
Themen-Optionen

TFDMemtable und ftvariant

Ein Thema von Ghostwalker · begonnen am 26. Dez 2018 · letzter Beitrag vom 27. Dez 2018
Antwort Antwort
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#1

TFDMemtable und ftvariant

  Alt 26. Dez 2018, 08:19
Datenbank: Memory • Version: 10.3 • Zugriff über: FireDAC
Moinmoin und ein friedliches Weihnachten euch allen

Problembeschreibung:

Ich steh mal wieder vor dem Problem, Konfigurationsdaten zu speichern. Durch die letzte Coderage (en) bin ich auf TFDMemtable im FireDAC gestoßen und ich dachte mir mal, ja warum nicht mal ausprobieren.

Dabei will ich folgende Struktur verwenden:

cfgCatpath String (ftString)
cfgName String (ftString)
cfgValue Variant (ftVariant)

Soweit so gut, in der Componente die FieldDefs angegeben, und......mööök

Er meckert, das cfgValue einen unbekannten Datentyp hat und er das nicht handeln kann.


Die Frage:

Wie handelt man ftVariant ? Ich dachte eigentlich, das das letztlich so etwas wie der Variablentyp Variant ist und man letztlich beliebige Datentypen reinschieben kann.

Hoffe mal das mir da jemand weiterhelfen kann


Gruß

Uwe
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
MichaelT

Registriert seit: 14. Sep 2005
Ort: 4020 Linz
555 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: TFDMemtable und ftvariant

  Alt 26. Dez 2018, 11:05
Vergiss meine Antwort. War zu schnell geschossen.

Geändert von MichaelT (26. Dez 2018 um 12:03 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#3

AW: TFDMemtable und ftvariant

  Alt 26. Dez 2018, 11:52
FireDAC behandelt ftVariant immer als unbekannten Datentyp. Kann man nachsehen in TFDFormatOptions.FieldDef2ColumnDef (FireDAC.Stan.Options.pas).

Ursache wird wohl sein, daß es nur wenige Datenbanken gibt, die mit so einem Feldtyp klar kommen würden.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: TFDMemtable und ftvariant

  Alt 27. Dez 2018, 11:34
Hmmm...schade. Das wär die Ideale Möglichkeit für Programmoptionen gewesen.
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#5

AW: TFDMemtable und ftvariant

  Alt 27. Dez 2018, 12:24
Das wär die Ideale Möglichkeit für Programmoptionen gewesen.
Andernorts werden ja INI-Dateien für sowas verwendet. Dort wird am Ende alles auf Strings runtergebrochen. Einen ähnlichen Ansatz könntest du mit dem MemTable ja auch verfolgen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
MichaelT

Registriert seit: 14. Sep 2005
Ort: 4020 Linz
555 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: TFDMemtable und ftvariant

  Alt 27. Dez 2018, 14:03
Der 'Feldtyp' wird von ADO erkannt. Devart kann damit auch umgehen. Es stellt sich aber die Frage ob man im Fall von bspw. Datum eine Datum will oder ein OLE Datum zurückbekommt usw...

Düster, deswegen auch die Verwirrung zuvor, hatte ich mich erinnert, dass zu Zeiten von AnyDAC der Typ Verwirrung stiftete. Der Dmitry hat den Feldtyp glaube ich als Typ 'für alles andere' verwendet zu einer Zeit 'alles andere' noch überschaubar war. Will ihm jetzt nichts unterstellen, allein da ich mich nur düster erinnere.

Nicht in der MS Welt sondern bspw. auch in 4D gibt es einen Modus in dem der Datentyp selbst in der Datenbank nicht fixiert ist.

Die Speicherung von Programmoptionen mache ich mit einer Tabelle

Name für die Option | Typ | Wert als String

Damit war für mich das Thema relativ hurtig erledigt. Ala Windows Registry.

---

Alternativ kann man soviel ich weiß noch immer eine Structured Storage bemühen. Ist ein eigenes File (möglw. pro User) und kann man genauso in einer DB verräumen. Ein Kollege (lang, lang ist's her) von mir generiert aus Settings gespeichert in Betrieve diese Files und die liegen dann lokal bei der Applikation. In Delphi geht soviel ich weiß die OLE Variante. Ob ein Lösung mit nur In-memory Stream funktioniert muss man gucken.



Hmmm...schade. Das wär die Ideale Möglichkeit für Programmoptionen gewesen.
  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 04:32 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