ZEOS Mysql kein Update möglich [gelöst]

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

ZEOS Mysql kein Update möglich [gelöst]

Beitrag von MacWomble »

Hallo,

ich habe mal weder ein Problem, welches sich mir nicht offenbaren möchte.
Ich habe eine MYSQL-Datenbank mit einer Tabelle. (ID als Integer Autoincrement, sonst nur varchars und text)
Auf der Form habe ich nur TZConnection, TZQuery, TDataset und ein TDBGrid.
Alles funktioniert soweit, Daten werden angezeigt. Wenn ich jedoch irgend etwas an den Daten ändere und speichern möchte erhalte ich eine Access Violation:

Error: Projekt varta hat Exception-Klasse »External: SIGSEGV« ausgelöst.

In Datei 'source/core/ZSysUtils.pas' in Zeile 3562

Code: Alles auswählen

procedure ZBinToHex(Buffer, Text: PAnsiChar; const Len: LengthInt);
var
  PEnd: PAnsiChar;
begin
  PEnd := Buffer+Len-8;
  while Buffer < PEnd do //try to convert 8Byte per loop
  begin
    PWord(Text)^ := TwoDigitLookupHexW[Ord(Buffer^)];                    // Hier bleibt er hängen !
    PWord(Text+2)^ := TwoDigitLookupHexW[Ord((Buffer+1)^)];
    PWord(Text+4)^ := TwoDigitLookupHexW[Ord((Buffer+2)^)];
    PWord(Text+6)^ := TwoDigitLookupHexW[Ord((Buffer+3)^)];
    PWord(Text+8)^ := TwoDigitLookupHexW[Ord((Buffer+4)^)];
    PWord(Text+10)^ := TwoDigitLookupHexW[Ord((Buffer+5)^)];
    PWord(Text+12)^ := TwoDigitLookupHexW[Ord((Buffer+6)^)];
    PWord(Text+14)^ := TwoDigitLookupHexW[Ord((Buffer+7)^)];
    Inc(Buffer, 8);
    Inc(Text, 16);
  end;
  Inc(PEnd, 8);
  while Buffer < PEnd do
  begin
    PWord(Text)^ := TwoDigitLookupHexW[Ord(Buffer^)];
    Inc(Buffer);
    Inc(Text, 2);
  end;
end;                           


Was bitte soll hier umgewandelt werden? Hat eventuell jemand einen Tipp?
Zuletzt geändert von MacWomble am Di 14. Feb 2017, 23:18, insgesamt 2-mal geändert.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

MmVisual
Beiträge: 1445
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: ZEOS Mysql kein Update möglich

Beitrag von MmVisual »

An diesem Code liegt es sicher nicht. Vermutlich ist entweder irgend ein Feld oder Query auf ReadOnly gesetzt oder Du hast keine Schreibrechte auf die Datenbank oder was anderes ist nicht OK. Ich nutze Zeos und MySQL schon seit vielen Jahren. Die aktuelle "Stable" Version macht keine Probleme.
EleLa - Elektronik Lagerverwaltung - www.elela.de

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: ZEOS Mysql kein Update möglich

Beitrag von MacWomble »

Das ist auch nicht die erste DB-Anwendung.
Eine andere, wesentlich komplexere Anwendung läuft auf der selben Datenbank, allerdings auf anderen Tabellen, mit exakt den selben Einstellungen.

Felder sind keine readonly.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: ZEOS Mysql kein Update möglich

Beitrag von MacWomble »

Keine Ahnung warum das so war, aber die Collation für die mit 'Text' definierten Felder war in der Tabelle auf utf8_bin.
Vermutlich habe ich einen Fehler beim Import der CSV-Datei gemacht, mit welcher ich die Tabelle generiert habe.

=> Nach Umstellung auf utf8_generel_ci funktioniert es nun wie gewohnt.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

Antworten