AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenbankeintrag wird nicht geändert
Thema durchsuchen
Ansicht
Themen-Optionen

Datenbankeintrag wird nicht geändert

Ein Thema von Mario61 · begonnen am 1. Mär 2020 · letzter Beitrag vom 2. Mär 2020
Antwort Antwort
Seite 1 von 2  1 2      
Mario61

Registriert seit: 10. Jan 2010
19 Beiträge
 
#1

Datenbankeintrag wird nicht geändert

  Alt 1. Mär 2020, 14:49
Datenbank: mysql • Version: 7.1.4 • Zugriff über: Datenbank-Tool
Hallo...

Ich bin schon ziemlich am verzweifeln, weil ein einfacher SQL-Befehl nicht ausgeführt wird.
Folgender SQL-Befehl:

UPDATE Daten Set Kategorie='Büromaterial' WHERE Kategorie = 'Bromaterial';

Ich könnte die Daten alle per Hand ändern, das würde gehen, aber es sind mir einfach zu viele. Es geht hier nur um die fehlenden Umlaute. Ich benutze ein Datenbank-Tool (SQLite-Administrator) wo ich diesen SQL-Befehl eingebe.
Es passiert aber einfach nix. Wenn ich in der WHERE-Klausel nicht Kategorie sondern ID eingebe, wird dieser eine Datensatz geändert. Deshalb kommt mir die Frage, ob MySql überhaupt als WHERE-Klausel die Selbe wie im SET nicht akzeptiert.
Gruß Mario
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: Datenbankeintrag wird nicht geändert

  Alt 1. Mär 2020, 14:54
Versuch bitte, präzise zu sein:
"Passiert nichts" bedeutet was genau?
- es geschieht gar nichts
- es werden 0 Updates durchgeführt
- es wird ein Fehler angezeigt?

Starte bitte mal das Select:
Code:
 Select * from Daten WHERE Kategorie = 'Bromaterial';
Wieviel Datensätze werden angezeigt?
Gruß, Jo
  Mit Zitat antworten Zitat
Mario61

Registriert seit: 10. Jan 2010
19 Beiträge
 
#3

AW: Datenbankeintrag wird nicht geändert

  Alt 1. Mär 2020, 15:04
Hallo...

es geschieht gar nichts
es werden 0 Updates durchgeführt

In der Dataliste wird "Bromateriel" angezeigt, als ich diese per Hand ändern wollte zeigt er mir plötzlich "B romaterial" an, ich denke daran wird es liegen. Diese blöden Umlaute... Gibt es eine Möglichkeit diese in der Datenbank zu ändern oder muss ich alle einzeln ändern ?

Mit
Select * from Daten WHERE Kategorie = 'Bromaterial';
wird natürlich auch nix angezeigt.
Mit Select * from Daten WHERE Kategorie = 'B romaterial'; (Leerzeichen)
wird mir auch nix angezeigt. Klar, irgend so ein Umlautdingens...
Gruß Mario

Geändert von Mario61 ( 1. Mär 2020 um 15:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#4

AW: Datenbankeintrag wird nicht geändert

  Alt 1. Mär 2020, 15:17
Und was passiert bei
SQL-Code:
/* jedes "falsche" Zeichen ersetzen */
UPDATE Daten Set Kategorie='BüromaterialWHERE Kategorie LIKE 'B_romaterial';
?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Mario61

Registriert seit: 10. Jan 2010
19 Beiträge
 
#5

AW: Datenbankeintrag wird nicht geändert

  Alt 1. Mär 2020, 15:25
Phu..

Also mit dem LIKE hat es funktioniert. Ich habe es ein wenig abgeändert:

Code:
UPDATE Daten Set Kategorie='Büromaterial' WHERE Kategorie LIKE 'romaterial';
Hätt ich ja auch drauf kommen können, hab den LIKE Befehl selber schon oft benutzt...

Danke für Deine Hilfe !!!
Gruß Mario
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#6

AW: Datenbankeintrag wird nicht geändert

  Alt 1. Mär 2020, 15:36
Phu..
Also mit dem LIKE hat es funktioniert. Ich habe es ein wenig abgeändert:
Code:
UPDATE Daten Set Kategorie='Büromaterial' WHERE Kategorie LIKE 'romaterial';
Das kann ja wohl kaum stimmen.
Die Nutzung von Like ohne Angabe von Wildcards macht auch wenig Sinn.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Datenbankeintrag wird nicht geändert

  Alt 1. Mär 2020, 15:38
jetzt stell dir mal vor, du hättest an den Datensätzen noch eine ID, welche du jetzt verwenden könntest,
oder wie sieht es mit anderen Spalten aus, welche man nutzen könnte, bzw. das LIKE richtig verwenden?

Man könnte auch einfach sortieren und dann die x-te Zeile bearbeiten. (LIMIT, OFFSET, ...)

Ansonsten mußt du halt mal nachsehen was wirklich in dem Feld drin steht.
Oder einfach in einem Grid die Daten anzeigen, dann den passenden Datensatz auswählen und den jeweiligen Feldinhalt als Parameter für die Änderung.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Datenbankeintrag wird nicht geändert

  Alt 1. Mär 2020, 16:30
Probleme mit Umlauten? In 2020?
Sag mal mit welchen Zugriffskomponenten/Programmen/Tools arbeitest du noch?

ich würde erstmal alles aktualisieren auf Komponenten die schon in der "Neuzeit" angekommen sind.
Ich glaube seit MySQL 4 sollte man keine Probleme mehr damit haben.

Ich würde sagen sorge erstmal dafür das all deine Connection-Verbindungen mit UTF8 laufen
(machen moderne Komponenten out of the box). Wenn du nur eine Header-Übersetzung nutzt muss du evtl. die Codierung der Verbindung explizit setzen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.211 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Datenbankeintrag wird nicht geändert

  Alt 1. Mär 2020, 17:24
Das ist ein Zeichensatz Problem. Würde ich nicht mit einem Workaround (aka Like '%') lösen, sondern grundsätzlich. Du kannst im mySql für die Datenbank, die Tabelle und das Feld den Zeichensatz festlegen. Irgendwie müssen die Umlaute ja auch in die DB gekommen sein.

https://www.peterkropff.de/allgemein...ng/mysql_1.htm
https://www.homepage-anleitung.de/20...tf8-umstellen/

HTH
  Mit Zitat antworten Zitat
Mario61

Registriert seit: 10. Jan 2010
19 Beiträge
 
#10

AW: Datenbankeintrag wird nicht geändert

  Alt 1. Mär 2020, 18:00
Also, erst einmal vielen Dank für eure Antworten.
Auflösung:

Ein Freund hat ein Haushaltsbuch unter Access geschrieben, da mir das aber nicht gefallen hat, allein schon wegen Access, habe ich selber unter Delphi ein Haushaltsbuch geschrieben. Im Access hat er eine Exportfunktion für Excel gemacht. Dementsprechend habe ich diese unter Excel als CSV gespeichert und unter dem Datenbank-Tool importiert. naja, leider ohne Umlaute... wie ich festgestellt habe, habe ich unter Excel ein falsches CSV als Export benutzt. Ich habe das ganze noch mal gemacht und darauf geachtet, das in der CSV auch Umlaute drinn sind. Diese nochmals in meine MySql-Datenbank importiert und siehe da, alls drinn mit Umlaute...

Nochmals DANKE an alle...
Gruß Mario
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 07:29 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