AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Falsche Anfrage [gelöst]
Thema durchsuchen
Ansicht
Themen-Optionen

Falsche Anfrage [gelöst]

Ein Thema von Synonym · begonnen am 22. Mär 2004 · letzter Beitrag vom 22. Mär 2004
Antwort Antwort
Synonym
(Gast)

n/a Beiträge
 
#1

Falsche Anfrage [gelöst]

  Alt 22. Mär 2004, 21:22
Hi,

um einen Datensatz zu ändern nutze ich folgenden Code;

Delphi-Quellcode:
 
Form1.qrMain.SQL.Text:='UPDATE `gaestebuch` Set `user`='''+Edit1.Text+''','+
                             '`password`='''+Edit2.Text+''','+
                             '`topic`='''+Edit4.Text+''','+
                             '`text`='''+synmemo1.text+''','+
                             'WHERE `id`='''+edit3.text+''';';
    Form1.qrMain.ExecSql; //SQL-Statement ausführen
leider sagt er mir das dies falsch oder unbekannter syntax ist...Where `id`=1!


Woran kanns liegen? habs so aus nem tutorial!

Gruß

Synonym
  Mit Zitat antworten Zitat
gekmihesg
(Gast)

n/a Beiträge
 
#2

Re: Falsche Anfrage

  Alt 22. Mär 2004, 21:40
ich würd mal versuchen den strichpunkt hinter id und die anführungszeichen um den idwert wegzulassenn
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#3

Re: Falsche Anfrage

  Alt 22. Mär 2004, 21:41
  • Warum packst du alle Wörter in ein "`" ???
  • Das ";" hat in normalem SQL nix zu suchen
  • Rate mal was passiert, wenn der User ein ' (#39) in einem der Editfelder eingibt.
  • zusammengebastelte Statements (Die Werte in den Statement string konkatinieren), machen den Cursor- & Statement Cache deiner DB witzlos (das Statement ändert sich ja jedesmal)
    Die letzten beiden Punkte lassen sich durch Parameter ganz einfach umgehen. (Und die Lesbarkeit steigt!)
Delphi-Quellcode:
Var
  ProcessedRecs :Integer;
  ...
BEGIN
  ...
  With ADOQuery Do
  Begin
    SQL.Text :=
      'UPDATE GaesteBuch' + #10 +
      'SET USER = :i_USER' + #10 +
      ' ,Password = :i_Password' + #10 +
      ' ,Topic = :i_Topic' + #10 +
      ' ,Text = :i_Text' + #10 +
      'WHERE ID = :i_ID';
    // Parsen des Statements um Query Parameter zu finden...
    Prepared := True;
    // Werte an Query Parameter übergeben...
    With Parameters Do
      ParamByName('i_USER').Value := Edit1.Text;
      ParamByName('i_Password').Value := Edit2.Text;
      ParamByName('i_Topic').Value := Edit4.Text;
      ParamByName('i_Text').Value := SynMemo1.Text;
      ParamByName('i_ID').Value := Edit3.Text;
    End
    ProcessedRecs := ExecSQL;
  End;
  MessageDlg(IntToStr(ProcessedRecs)+ ' rows updated...', mtInformation, [mbOK], 0);
  ...
END;
Edit: Ich hatte die Doppelpunkte vergessen!
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Falsche Anfrage

  Alt 22. Mär 2004, 21:41
Und das Komma hinter dem Wert von 'text' dürfte zuviel sein.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Synonym
(Gast)

n/a Beiträge
 
#5

Re: Falsche Anfrage

  Alt 22. Mär 2004, 21:46
funktioniert beides leider nicht...


exception in blabla bla where id=1 = falscher Syntax!

In PHPMyAdmin funktionierts mit dem Vefehl: UPDATE `Gaestebuch` SET `user` = 'test1' WHERE `id` = '1'

gruß

Synonym
  Mit Zitat antworten Zitat
Synonym
(Gast)

n/a Beiträge
 
#6

Re: Falsche Anfrage

  Alt 22. Mär 2004, 21:56
Zitat von Daniel:
Und das Komma hinter dem Wert von 'text' dürfte zuviel sein.
habe dein posting erst gerade gesehen...genau das wars!!!

Danke
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#7

Re: Falsche Anfrage

  Alt 22. Mär 2004, 21:57
Du schmeißt es doch alles in eine Zeile und da steht dann:
UPDATE gaestebuch SET USER = '...' ,Password = '...' ,Topic = '...' ,Text = '...' ,{hier ist der Fehler} WHERE id = '1' Nachtrag: Wo hast du denn das Tutorial her?
Wie kann man schon in einem Tutorial den Leser zu solchen Fehlern verleiten?
Unnötig veränderliche Statements sind der beste Weg um aus einer schnellen DB ein Access/Paradox,... zu machen!
  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 00:35 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