Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   TFDTable und das "€" Zeichen (https://www.delphipraxis.net/217103-tfdtable-und-das-%80-zeichen.html)

Edelfix 28. Apr 2025 14:33

Datenbank: MariaDB • Version: 10.5.11 • Zugriff über: FireDac

TFDTable und das "€" Zeichen
 
Komme hier irgendwie nicht weiter.

Bekomme die Fehlermeldung: "[FireDac][DatS]-15. Doppelte Zeile für eindeutigen Index gefunden. Einschränkung [PRIMARY]".

In der Datenbank Tabelle sind nur zwei Datensätze mit je einem Feld. Im ersten steht "CHF" und im zweiten Datensatz "€".

Wenn ich folgendes versuche bekomme ich die Fehlermeldung:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Table.Open;
  Table.First;
  while Not Table.Eof do
  begin
    iRecNo := Table.RecNo;
    Table.Next; // hier kommt die Fehlermeldung beim letzten Durchlauf.
  end;
  Table.Close;
end;
Ich habe den CharacterSet im Verdacht. In der Datenbank ist "utf8_general_ci" eingestellt.

Jemand eine Idee?

Edelfix 28. Apr 2025 15:26

AW: TFDTable und das "€" Zeichen
 
Habe den Fehler gefunden. Lag an der Datenbank.

ALTER TABLE Table_Name MODIFY Field_Name VARCHAR(3) COLLATE utf8mb4_unicode_ci;

Und danach war der Fehler weg. Es war aber ein langer Weg dahin.

Lasse den Beitrag drin falls jemand nach dieser Fehlermeldung sucht.

himitsu 28. Apr 2025 16:00

AW: TFDTable und das "€" Zeichen
 
Und zusätzlich auch die Codierung der Datenbankverbindung (Connection-Komponente) prüfen.

haentschman 29. Apr 2025 05:26

AW: TFDTable und das "€" Zeichen
 
Moin...8-)
Zitat:

In der Datenbank Tabelle sind nur zwei Datensätze mit je einem Feld
...eine Datenbank Tabelle sollte IMMER ein ID Feld haben und damit einen primary Key. Oder interpretiere ich "mit je einem Feld" falsch? :gruebel:

PS: Warum wird immer noch TTable benutzt? :gruebel: Eine Tabelle wird IMMER komplett geladen! Je mehr Daten...wird es immer "langsamer"! Mit einer Query holt man sich NUR das, was benötigt wird. :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:38 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