AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi FireDac asString definiert unterschiedlichen Datentyp in SQLite je nach OS
Thema durchsuchen
Ansicht
Themen-Optionen

FireDac asString definiert unterschiedlichen Datentyp in SQLite je nach OS

Ein Thema von fisipjm · begonnen am 17. Apr 2024 · letzter Beitrag vom 17. Apr 2024
Antwort Antwort
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.091 Beiträge
 
Delphi 12 Athens
 
#1

AW: FireDac asString definiert unterschiedlichen Datentyp in SQLite je nach OS

  Alt 17. Apr 2024, 21:12
Hm? Liefert AsString keinen Unicode String?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: FireDac asString definiert unterschiedlichen Datentyp in SQLite je nach OS

  Alt 17. Apr 2024, 21:59
Der TStringField hat das AsString überladen/verdeckt und gibt .... [edit] ok, dachte war beim AsString, aber es mehrere Überladungen, wo der eigentliche Property überschrieben verdeckt wird.

Delphi-Quellcode:
  TStringField = class(TField)
    ...
{$IFNDEF NEXTGEN}
    function GetValue(var Value: AnsiString): Boolean;
{$ELSE}
    function GetValue(var Value: string): Boolean;
{$ENDIF !NEXTGEN}
    ...
{$IFNDEF NEXTGEN}
    property Value: AnsiString read GetAsAnsiString write SetAsAnsiString;
{$ENDIF !NEXTGEN}
  end;

  TWideStringField = class(TStringField)
    ...
    property Value: string read GetAsWideString write SetAsWideString;
  end;
Da kommt es dann auch noch drauf an, ob du direkt eine Variable/FormField vom "richtigen" TField-Nachfahren oder eine Variable/Result, z.B. vom FieldByName, als allgemeines TField verwendest, wo du plötzlich unterschiedliche Property und somit auch ein anderes Verhalten nutzt.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (17. Apr 2024 um 22:04 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: FireDac asString definiert unterschiedlichen Datentyp in SQLite je nach OS

  Alt 17. Apr 2024, 23:31
Liefert AsString keinen Unicode String?
Schon, aber ftString resp. TStringField repräsentieren AnsiStrings, das erkennt man am Property Value. Das hat man damals bei der Unicode-Umstellung bewusst so gemacht, damit das kompatibel zu den bestehenden DB-Daten bleibt.

Warum das bei FireDAC auch auf TFDParam ausgedehnt wurde ist mir nicht ganz klar (insbesondere die unterschiedliche Behandlung nach Plattform). Bei TParam ist das zumindest nicht so - da wird bei AsString ein ftWideString draus.

Vermutlich wird nur Dmitry Arefiew das wirklich beurteilen können.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 10:46 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