AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL UPDATE funzt nicht. Finde den Fehler nicht
Thema durchsuchen
Ansicht
Themen-Optionen

SQL UPDATE funzt nicht. Finde den Fehler nicht

Ein Thema von hubertus223 · begonnen am 13. Aug 2004 · letzter Beitrag vom 16. Aug 2004
Antwort Antwort
hubertus223

Registriert seit: 31. Jul 2004
4 Beiträge
 
#1

SQL UPDATE funzt nicht. Finde den Fehler nicht

  Alt 13. Aug 2004, 16:12
HAllo Leute,

habe folgende SQL-Query:

query := Pchar('UPDATE firmen SET lzumin = '+inttostr(vergmin)+'WHERE firmenname ="+firmenname+"');


wenn ich alles ab WHERE weg lasse, funzt das Update, jedoch eben alle Datensätze.
Sobald ich mit Where einen bestimmten Datensat anwählen möchte, werden die Daten nicht mehr eingetragen.
Ich vermute es liegt an der Schreibweise der " oder ' bei der variablen firmenname.
Wer kannmir helfen
  Mit Zitat antworten Zitat
teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#2

Re: SQL UPDATE funzt nicht. Finde den Fehler nicht

  Alt 13. Aug 2004, 16:14
Verwende 'QuotedStr()',

Gruß, teebee
  Mit Zitat antworten Zitat
Benutzerbild von Bowler
Bowler

Registriert seit: 8. Sep 2003
Ort: Bochum
148 Beiträge
 
Delphi XE7 Enterprise
 
#3

Re: SQL UPDATE funzt nicht. Finde den Fehler nicht

  Alt 13. Aug 2004, 16:15
Bei mir hilf es grundsätzlich, wenn ich mir den String ausgeben lasse, anstelle ihn direkt an die DB zu schicken. Dann kann ich gucken, ob mein Programm den String korrekt zusammen gebaut hat.

Bei Deinem SQL-Statement würde ich spontan sagen, dass vor dem WHERE ein Leerzeichen fehlt. Wenn das noch nicht reicht, dann lass dir das Statement zum Debuggen einmal mit ShowMessage ausgeben, und prüfe, ob die ' alle richtig gesetzt werden.

Gruß
Christian
Christian Rüsken
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: SQL UPDATE funzt nicht. Finde den Fehler nicht

  Alt 13. Aug 2004, 16:15
Stimmt. Statt " wird in SQL auch '-Verwendet:
Delphi-Quellcode:
str := Format('UPDATE firmen SET lzumin = %d WHERE firmenname = ''%s'')', [vergmin, firmenname]);
query := Pchar(str)
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
hubertus223

Registriert seit: 31. Jul 2004
4 Beiträge
 
#5

Re: SQL UPDATE funzt nicht. Finde den Fehler nicht

  Alt 13. Aug 2004, 16:32
ich glaub ich bin zu doof. funzt alle snicht oder ich mach irgenbdwas falsch.
  Mit Zitat antworten Zitat
Markus
(Gast)

n/a Beiträge
 
#6

Re: SQL UPDATE funzt nicht. Finde den Fehler nicht

  Alt 13. Aug 2004, 16:59
So müsste es gehen:

query := Pchar('UPDATE firmen SET lzumin = "'+inttostr(vergmin)+'" WHERE firmenname ="'+firmenname+'";');
  Mit Zitat antworten Zitat
Benutzerbild von Bowler
Bowler

Registriert seit: 8. Sep 2003
Ort: Bochum
148 Beiträge
 
Delphi XE7 Enterprise
 
#7

Re: SQL UPDATE funzt nicht. Finde den Fehler nicht

  Alt 13. Aug 2004, 17:13
Der Vollständigkeit halber:
Wir haben es gerade gelöst.

Es war zu Beginn im Grunde alles richtig, es fehlten um +firmenname+ nur jeweils nochmal die Hochkommata. In der Form oben hat Delphi die Variable firmenname nicht als Variable erkannt, sondern ganz normal als String. Deshalb hat die Datenbank versucht, alle Datensätze mit der Firma +firmenname+ zu bearbeiten.

Also müsste es komplett heissen (mit Delphi-Tags, der Lesbarkeit halber):

query := Pchar('UPDATE firmen SET lzumin = '+inttostr(vergmin)+' WHERE firmenname ='''+firmenname+''''); @Markus: wieso das Semikolon im SQL-Statement?

Gruß
Christian
Christian Rüsken
  Mit Zitat antworten Zitat
Markus
(Gast)

n/a Beiträge
 
#8

Re: SQL UPDATE funzt nicht. Finde den Fehler nicht

  Alt 13. Aug 2004, 18:04
Naja, ich hab nur Delphi 7 Personal und benutze MySQL direct, da müssen die mit rein
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#9

Re: SQL UPDATE funzt nicht. Finde den Fehler nicht

  Alt 13. Aug 2004, 19:16
[KlugscheissModeOn]
Nach einer mehr oder minder langen Reihe derartiger "Erfolgserlebnisse" gewöhnt man sich die Nummer mit den Fest in QueryTexte eingebauten Übergabewerten ab und steigt auf Parameter um, auch wenn es ein paar Zeilen Code mehr werden - richtig lustig wird es nämlich erst mit Datumswerten und unterschiedlichen DatumsFormatEinstellungen zwischen Client und Server...
[KlugscheissModeOff]

Gruß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
Benutzerbild von Bowler
Bowler

Registriert seit: 8. Sep 2003
Ort: Bochum
148 Beiträge
 
Delphi XE7 Enterprise
 
#10

Re: SQL UPDATE funzt nicht. Finde den Fehler nicht

  Alt 16. Aug 2004, 09:48
Gut gemacht.
Hast Du normalerweise auch recht. Aber hubertus223 verwendet die MySQL-Direct-Sachen, ich bin mir nicht sicher, ob die Parameter können. Ich habe die mal in FreePascal eingesetzt, und da funktionierte das nicht. Wenn ich DB-Sachen schreibe, dann kommen auch immer Parameter vor, ist übersichtlicher und sicherer, und abgesehen von den paar Zeilen extra, nicht wirklich schwierig.
Christian Rüsken
  Mit Zitat antworten Zitat
Antwort Antwort


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:33 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