Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MySQL Problem bei Insert und Edit (https://www.delphipraxis.net/63126-mysql-problem-bei-insert-und-edit.html)

devacs 14. Feb 2006 11:06

Datenbank: MySQL • Version: 5 • Zugriff über: DbExpress (von Core Lab)

MySQL Problem bei Insert und Edit
 
Hallo Forum,

habe ein etwas kurioses Problem mit Delphi 7 und MySQL 5 (per dbexpress).
Meine Anwendung besteht aus mittlerweile 14 Tabellen. Daten
werden eingefügt, gelöscht, editiert und selektiert. Alles
klappt einwandfrei. Habe jetzt eine neue Tabelle hinzugefügt
und will die gleichen Funktionen programmieren. Wenn ich die
Tabelle in den EDIT-Modus setzte und gleich POST (mit ApplyUpdates(0))
ausführe, kein Problem.
Wenn ich im EDIT-Modus Feldwerte ändere und dann POST starte kommt
folgende Fehlermeldung: "Datensatz nicht gefunden oder von einem
anderen Benutzer geändert". Ich bin aber momentan der einzige
Benutzer.
Habe diese Tabelle gelöscht und neu angelegt, gleicher Fehler.
Habe dann alle Felder bis auf 2 gelöscht, dann geht's. Drittes
Feld hinzugefügt, dann wieder obiger Fehler.
Kennt jemand das Problem ? :gruebel:

mkinzler 14. Feb 2006 11:08

Re: MySQL Problem bei Insert und Edit
 
Poste mal die Tabelle ( mind. Spalte 1-3) und den Sourcecode der Fehler verursacht.

devacs 14. Feb 2006 11:37

Re: MySQL Problem bei Insert und Edit
 
Hallo mkinzler,

ich habe mir zum Testen nur den Minimalcode erstellt, der bei
allen anderen Tabellen funktioniert. Hier ist er:

Delphi-Quellcode:
procedure TfahrzeugeWnd.ToolButton6Click(Sender: TObject);
begin
  dModule.sds_vehicles.Insert;
end;

procedure TfahrzeugeWnd.ToolButton7Click(Sender: TObject);
begin
  dModule.sds_vehicles.Delete;
  dmodule.sds_vehicles.ApplyUpdates(0);
end;

procedure TfahrzeugeWnd.ToolButton12Click(Sender: TObject);
begin
  dModule.sds_vehicles.Edit;
end;

procedure TfahrzeugeWnd.ToolButton9Click(Sender: TObject);
begin
  with dModule.sds_vehicles do begin
    Post;
    ApplyUpdates(0);
  end;
end;

procedure TfahrzeugeWnd.ToolButton10Click(Sender: TObject);
begin
  dModule.sds_vehicles.Cancel;
end;
... und hier die volle Tabelle (wie gesagt mit 2 Spalten geht alles):

CREATE TABLE `vehicles` (
`veno` int(11) NOT NULL default '0',
`FzNr` varchar(100) default '',
`FzTyp` varchar(100) default '',
`FzBeschreibung` varchar(150) default '',
`FzKennzeichen` varchar(100) default '',
`FzFahrgestellNr` varchar(100) default '',
`FzZulassung` date default '0000-00-00',
`FzMotorNr` varchar(100) default '',
`FzRadioNr` varchar(100) default '',
`FzReifenNr` varchar(100) default '',
`FzGetriebeNr` varchar(100) default '',
`FzMotorTyp` varchar(100) default '',
`FzKipperstempelNr` varchar(100) default '',
`FzKipperstempelTyp` varchar(100) default '',
`FzAchsTyp` varchar(100) default '',
`FzAchsNr` varchar(100) default '',
`FzGrundTyp` varchar(100) default '',
`FzHoehe` varchar(100) default '',
`FzGewicht` varchar(100) default '',
`FzNutzlast` varchar(100) default '',
`FzAufmass` varchar(100) default '',
`FzNutzlastZug` varchar(100) default '',
`FzKennzeichenHaenger` varchar(100) default '',
`FzErsatzteileNr` varchar(100) default '',
`FzBemerkung` mediumtext,
`FzUpstedt` varchar(100) default '',
`FzUpstedtZug` varchar(100) default '',
`FzPinCode` varchar(100) default '',
`FzGetriebeTyp` varchar(100) default '',
`ZeigeInListe` tinyint(1) default '0',
`FzZullGesGewicht` varchar(100) default '',
`FzKm` int(11) default '0',
`FzKosten1` int(11) default '0',
`FzKosten2` int(11) default '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

mkinzler 14. Feb 2006 11:45

Re: MySQL Problem bei Insert und Edit
 
Mich hätte eigentlich auch interessiert wie die einzufügenden Daten aussehen.

Der Ablauf:
Zuerst wird ToolButton12 geklickt und damit der Datensatz in den Editmodus versetzt.
Dann werden die Datenfelder verändert. Diese Änderungen sollen mit ToolButton9 zurückgeschrieben werden.
Ist dies korrekt?

devacs 14. Feb 2006 11:52

Re: MySQL Problem bei Insert und Edit
 
... der Ablauf ist richtig.

Noch ein Hinweis zum Fehler:

Einen neuen Datensatz einfügen und speichern geht. Wenn
ich dann auf diesem neuen Datensatz in den EDIT-Modus gehe taucht der Fehler ebenfalls
auf, auch nach Neustart von MySQL und Delphi.

Auch bei DELETE auf dem neuen Datensatz gibt es diesen Fehler.

Die Bearbeitung dieses Datensatzes über die MySQL-GUI-Tools funkt.
aber einwandfrei.

... die Art der Daten (nur Zeichenketten und Zahlen) gleicht den
restlichen 14 Tabellen, die mit gleichem Code nicht diesen Fehler
produzieren.


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