AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Update in MySQL

Ein Thema von youuu · begonnen am 29. Jul 2009 · letzter Beitrag vom 30. Jul 2009
Antwort Antwort
Seite 1 von 2  1 2      
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#1

Update in MySQL

  Alt 29. Jul 2009, 19:35
Datenbank: MySQL • Zugriff über: Devarts
Hi,

ich Update meine Mysql in dieser form:

[delphi]Query.SQL.Text:='UPDATE `Tabelle` Set ....[delphi]

Und es gibt Datensätze die als Unique definiert sind.

Wie kann ich nun Daten Updaten ohne das ein Fehler auftritt.

Das Heiß:

Datensatz1: Name=Test
nun will ich diesen Datensatz Updaten aber belasse den Namen= Test, so bekomm ich die Fehlermeldung keine doppelten Datensätze, obwohl ich nur diesen einen Datensatz Update.
Steven
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Update in MySQL

  Alt 29. Jul 2009, 19:40
Stimmt die WHERE-Bedingung evtl. nicht? Ansonsten sieht das OK aus.
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
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Update in MySQL

  Alt 29. Jul 2009, 19:43
Das einfügen an sich ist ja kein Problem, nur da manche Datensätze als Unique definiert sind sagt Mysql Halt Stop der Datensatz existiert schon den möchte ich nciht nochmal drin stehen haben

Jedoch möchte ich nur den einen Datensatz updaten.

Nochmal kleines Beispiel:

Wert: Name = Testname (Unique in DB)
Preis = TestPreis
Anzahl = TestAnzahl

Nun möchte ich diesen Datensatz lediglich Updaten in:
Wert: Name = Testname (Unique in DB)
Preis = TestPreisXYZ
Anzahl = TestAnzahlXYZ

Dann sagt mir DB Stop Testname eistiert schon.
Steven
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Update in MySQL

  Alt 29. Jul 2009, 19:45
Zeig doch mal das komplette Update-Statement.
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
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Update in MySQL

  Alt 29. Jul 2009, 19:47
Delphi-Quellcode:
FormMain.QueryCustomer.SQL.Text:='UPDATE `'+Tabelle.Customer+'` Set '+
      '`anrede`='''+FormKunden.ComboBoxAnrede.Items[FormKunden.ComboBoxAnrede.ItemIndex]+''','+
      '`company_name`='''+FormKunden.EditCompany.Text+''','+
      '`company_description`='''+FormKunden.EditDescription.Text+''';'+
      'WHERE `Customer_Number`='''+Customer.Customer_number+''';';
    FormMain.QueryCustomer.Execute; //SQL-Statement ausführen
Steven
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Update in MySQL

  Alt 29. Jul 2009, 19:50
Ich vermute mal, Customer_Number ist der PK. Was ist der UNIQUE KEY?

[edit] Mit SQL-Parametern wärst Du übrigens besser bedient. [/edit]
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
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Update in MySQL

  Alt 29. Jul 2009, 20:00
Zitat von DeddyH:
Ich vermute mal, Customer_Number ist der PK. Was ist der UNIQUE KEY?

[edit] Mit SQL-Parametern wärst Du übrigens besser bedient. [/edit]
Ja das weiß ich, bin gerade alles umzubauen mit Parametern.

Firmenname und Kundennummer sind Unique
Steven
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Update in MySQL

  Alt 29. Jul 2009, 20:02
Dann scheint es so, als sei der Firmenname bereits in einem anderen Datensatz vorhanden.
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
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#9

Re: Update in MySQL

  Alt 29. Jul 2009, 20:22
Ist er allerdings nicht. Nur in seinen eigenen Datensatz. Nur DB nimmt an das ich Ihn doppelt eintragen möchte bei den Update.

Wäre er doppelt drin, hät ich es ja nicht als Unique definieren dürfen udn Mysql hätte gemeckert.


Als einzigsten Weg den ich sehe, muss ich die Exception abfangen und dann den Datensatz ohne den Unique Wert speichern, da er ja sowieso schon in der DB steht und nicht wirklich geupdatet werdne muss oder seh ich as falsch?

Allerdings wie fange ich diese Exception korrekt ab?

Erste Gelegenheit für Exception bei $773842EB. Exception-Klasse EMySqlException mit Meldung '
#23000Duplicate entry 'Test Firma' for key 2'. Prozess Verwaltungs_Manager.exe (4524)

Delphi-Quellcode:
 
Except
  on e: ???? do
  Begin
    .....
  end;
end;
Steven
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Update in MySQL

  Alt 29. Jul 2009, 22:10
Zitat von youuu:
Ist er allerdings nicht. Nur in seinen eigenen Datensatz. Nur DB nimmt an das ich Ihn doppelt eintragen möchte bei den Update.
Ein kleines Beispiel wäre hilfreich ... Treffe ich mit der folgenden Beschreibung die Situation?
  • Eine Firma mit dem Namen 'Tröt' ist bereits in der Datenbank
  • Eine bereits vorhandene Firma 'Tüt' soll über ein UPDATE Statement umbenannt werden in (ebenfalls!) 'Tröt'

Viele Grüße,
Michael Justin
habarisoft.com
  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 10:21 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