AGB  ·  Datenschutz  ·  Impressum  







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

Syntax SQL Update

Ein Thema von akio87 · begonnen am 30. Jun 2015 · letzter Beitrag vom 23. Jul 2015
Antwort Antwort
Seite 1 von 2  1 2      
akio87

Registriert seit: 18. Mär 2010
44 Beiträge
 
Delphi XE8 Architect
 
#1

AW: Syntax SQL Update

  Alt 16. Jul 2015, 16:15
Hallo,

er gibt mir zwar keine Fehlermeldung aus, aber es passiert auch kein Update in der Datenbank... ?!

Woran könnte es liegen?

Code:
  MainModule.UniMainModule.mySQLQuery1.SQL.Clear;
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('update `' + UniMainModule.SQLTabelle + '`');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('set');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('Vorname = :Vorname,');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('Name = :Name,');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('user = :user,');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('Firma = :Firma,');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('Adress1 = :Adress1,');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('Adress2 = :Adress2,');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('Straße = :Straße,');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('PLZ = :PLZ,');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('Ort = :Ort,');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('Land = :Land,');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('Telefonnummer = :Telefonnummer');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('where');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('Vorname = :OLD_Vorname and');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('Name = :OLD_Name');

  MainModule.UniMainModule.mySQLQuery1.ParamByName('Vorname').AsString := UniEdit8.Text;
  MainModule.UniMainModule.mySQLQuery1.ParamByName('Name').AsString := UniEdit12.Text;
  MainModule.UniMainModule.mySQLQuery1.ParamByName('user').AsString := lowercase(UniEdit13.Text);
  MainModule.UniMainModule.mySQLQuery1.ParamByName('Firma').AsString := UniEdit1.Text;
  MainModule.UniMainModule.mySQLQuery1.ParamByName('Adress1').AsString := UniEdit2.Text;
  MainModule.UniMainModule.mySQLQuery1.ParamByName('Adress2').AsString := UniEdit3.Text;
  MainModule.UniMainModule.mySQLQuery1.ParamByName('Straße').AsString := UniEdit4.Text;
  MainModule.UniMainModule.mySQLQuery1.ParamByName('PLZ').AsString := UniEdit5.Text;
  MainModule.UniMainModule.mySQLQuery1.ParamByName('Ort').AsString := UniEdit6.Text;
  MainModule.UniMainModule.mySQLQuery1.ParamByName('Land').AsString := UniEdit7.Text;
  MainModule.UniMainModule.mySQLQuery1.ParamByName('Telefonnummer').AsString := UniEdit14.Text;

 MainModule.UniMainModule.mySQLQuery1.ExecSQL;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.874 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Syntax SQL Update

  Alt 16. Jul 2015, 16:21
Hier fehlte schon mal das Leerzeichen am Ende:
MainModule.UniMainModule.mySQLQuery1.SQL.Add('Vorname = :OLD_Vorname and '); Und hier der Strichpunkt (wenn dies meist tleriert wird):
MainModule.UniMainModule.mySQLQuery1.SQL.Add('Name = :OLD_Name;');
Markus Kinzler
  Mit Zitat antworten Zitat
akio87

Registriert seit: 18. Mär 2010
44 Beiträge
 
Delphi XE8 Architect
 
#3

AW: Syntax SQL Update

  Alt 16. Jul 2015, 16:31
Hey,

leider wird immernoch nichts in der DB akualisiert:/

Code:
  MainModule.UniMainModule.mySQLQuery1.SQL.Clear;
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('update ' + UniMainModule.SQLTabelle);
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('set ');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('Vorname = :Vorname, ');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('Name = :Name, ');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('user = :user, ');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('Firma = :Firma, ');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('Adress1 = :Adress1, ');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('Adress2 = :Adress2, ');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('Straße = :Straße, ');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('PLZ = :PLZ, ');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('Ort = :Ort, ');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('Land = :Land, ');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('Telefonnummer = :Telefonnummer ');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('where ');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('Vorname = :OLD_Vorname and ');
  MainModule.UniMainModule.mySQLQuery1.SQL.Add('Name = :OLD_Name;');

  MainModule.UniMainModule.mySQLQuery1.ParamByName('Vorname').AsString := UniEdit8.Text;
  MainModule.UniMainModule.mySQLQuery1.ParamByName('Name').AsString := UniEdit12.Text;
  MainModule.UniMainModule.mySQLQuery1.ParamByName('user').AsString := lowercase(UniEdit13.Text);
  MainModule.UniMainModule.mySQLQuery1.ParamByName('Firma').AsString := UniEdit1.Text;
  MainModule.UniMainModule.mySQLQuery1.ParamByName('Adress1').AsString := UniEdit2.Text;
  MainModule.UniMainModule.mySQLQuery1.ParamByName('Adress2').AsString := UniEdit3.Text;
  MainModule.UniMainModule.mySQLQuery1.ParamByName('Straße').AsString := UniEdit4.Text;
  MainModule.UniMainModule.mySQLQuery1.ParamByName('PLZ').AsString := UniEdit5.Text;
  MainModule.UniMainModule.mySQLQuery1.ParamByName('Ort').AsString := UniEdit6.Text;
  MainModule.UniMainModule.mySQLQuery1.ParamByName('Land').AsString := UniEdit7.Text;
  MainModule.UniMainModule.mySQLQuery1.ParamByName('Telefonnummer').AsString := UniEdit14.Text;

  MainModule.UniMainModule.mySQLQuery1.ExecSQL;
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#4

AW: Syntax SQL Update

  Alt 16. Jul 2015, 16:36
Logisch. Du läßt ja Old_Vorname und Old_Name leer. Somit wird auch kein Datensatz gefunden, auf den die Where-Bedingung zutrifft. Aber nochmal siehe meinen Post vorher.

Füg man diese Zeilen hinzu:
Code:
  MainModule.UniMainModule.mySQLQuery1.ParamByName('Old_Vorname).AsString := ichmussmirdenvornamenirgendwiemerken;
  MainModule.UniMainModule.mySQLQuery1.ParamByName('Old_Name).AsString := jetztmussichmirdennachnamenauchnochirgendwiemerken;
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo

Geändert von Captnemo (16. Jul 2015 um 16:41 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#5

AW: Syntax SQL Update

  Alt 16. Jul 2015, 16:44
Hier fehlte schon mal das Leerzeichen am Ende:
MainModule.UniMainModule.mySQLQuery1.SQL.Add('Vorname = :OLD_Vorname and '); Und hier der Strichpunkt (wenn dies meist tleriert wird):
MainModule.UniMainModule.mySQLQuery1.SQL.Add('Name = :OLD_Name;');
Ich weiß nicht, was der TE bei der "Zugriff über" mit ka meint, aber bei den Zugriffskomponenten, die ich benutze hat ein fehlendes ; im SQL-String noch nie zu einem Fehler geführt. Und wenn ich mich nicht irre, wenn ich mit .add arbeiten auch kein fehlendes Leerzeichen (aber da bin ich mir jetzt nicht ganz sicher).
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
akio87

Registriert seit: 18. Mär 2010
44 Beiträge
 
Delphi XE8 Architect
 
#6

AW: Syntax SQL Update

  Alt 16. Jul 2015, 16:58
@Captnemo

nun geht es! Vielen Dank.

Das mit der ID in der Tabelle, um eine eindeutige Zuordnung des Datensatzes zubekommen, ist bei mir auf der Uhr, dazu muss ich später dann die Tabellen alle anpassen und brauche dann nur WHERE ID=XX eintragen im Code (is natürlich einfacher^^), dann sollte das erledigt sein...

Erst einmal vielen Dank!

Gerne Abschluss.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.874 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Syntax SQL Update

  Alt 16. Jul 2015, 19:06
Ich weiß nicht, was der TE bei der "Zugriff über" mit ka meint, aber bei den Zugriffskomponenten, die ich benutze hat ein fehlendes ; im SQL-String noch nie zu einem Fehler geführt. Und wenn ich mich nicht irre, wenn ich mit .add arbeiten auch kein fehlendes Leerzeichen (aber da bin ich mir jetzt nicht ganz sicher).
Sorry, dass ich Helfen wollte. Diesen Fehler werde ich nicht mehr machen.
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Syntax SQL Update

  Alt 16. Jul 2015, 22:15
Hallo,
zumindestens der SQL-Server hatte mal Probleme mit fehlendem Semikolon,
also mkinzler immer mit anführen.


Heiko
Heiko
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#9

AW: Syntax SQL Update

  Alt 23. Jul 2015, 17:04
Hallo,
zumindestens der SQL-Server hatte mal Probleme mit fehlendem Semikolon,
Aber auch nur, wenn Du mehrere Befehle in einer Zeile unterbringen willst. Sonst nicht.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Syntax SQL Update

  Alt 23. Jul 2015, 16:13
Ich weiß nicht, was der TE bei der "Zugriff über" mit ka meint, aber bei den Zugriffskomponenten, die ich benutze hat ein fehlendes ; im SQL-String noch nie zu einem Fehler geführt. Und wenn ich mich nicht irre, wenn ich mit .add arbeiten auch kein fehlendes Leerzeichen (aber da bin ich mir jetzt nicht ganz sicher).
Sorry, dass ich Helfen wollte. Diesen Fehler werde ich nicht mehr machen.
Hallo,
zumindestens der SQL-Server hatte mal Probleme mit fehlendem Semikolon,
also mkinzler immer mit anführen.


Heiko
Oracle meckert das Semikolon am Ende "select..... order by 2;" immer als ungültiges Zeichen an.
Jedes .Add schreibt gleichzeitig auch einen Zeilentrenner in den .Text, von daher kann man sich die "TrennerBlanks" am Zeilenende sparen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  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 21:09 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