AGB  ·  Datenschutz  ·  Impressum  







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

Sonderzeichen / UPDATE

Offene Frage von "Richie1103"
Ein Thema von Richie1103 · begonnen am 23. Mai 2009 · letzter Beitrag vom 24. Mär 2010
Antwort Antwort
Seite 1 von 2  1 2      
Richie1103

Registriert seit: 2. Feb 2009
20 Beiträge
 
#1

Sonderzeichen / UPDATE

  Alt 23. Mai 2009, 16:51
Datenbank: Mysql • Version: weiß ich nicht • Zugriff über: Direct
Hi ich bräuchte nochmal hilfe bei SQL
Also ich möchte gerne folgende Sachen in einer Tabelle ändern.

UPDATE tabelle SET spalte1="wert1", spalte2="wert2",spalte3="Blabla \204 blub "hallo"" WHERE (spalte4="wert4"AND spalte5="wert5" ); Wie man vieleicht sieht möchte ich sodnerzeichen in der Tabelle mit z.B. \204 stehen haben.
Allerdings streicht der mir bei sql den Backslash.

Das 2. ist das "Wort". Wie kann ich in sql diese so einbinden das sie nicht den Wert beenden sondern als Zeichen in die Tabelle geschrieben werden? [also " als Zeichen in die Tabelle]

Hoffe ihr habt die Frage verstanden.

Schonmal vielen Dank im vorraus. (Und nochmal vielen Dank für die letzten beantworteten Fragen von mir)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Sonderzeichen / UPDATE

  Alt 23. Mai 2009, 16:53
Verdopple mal den Slash
Markus Kinzler
  Mit Zitat antworten Zitat
Richie1103

Registriert seit: 2. Feb 2009
20 Beiträge
 
#3

Re: Sonderzeichen / UPDATE

  Alt 23. Mai 2009, 16:57
Ok probiere ich aus moment bitte
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

Re: Sonderzeichen / UPDATE

  Alt 23. Mai 2009, 17:01
Nimm parametrisierte Abfragen!

Ansonsten der Tipp: MySQL erfordert ein ähnliches Escapen wie man es bei C/C++ gewohnt ist bei "\" muss dieser je nach Art von Abfrage sogar doppelt escaped werden "\\\\"
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Richie1103

Registriert seit: 2. Feb 2009
20 Beiträge
 
#5

Re: Sonderzeichen / UPDATE

  Alt 23. Mai 2009, 17:07
Werde dann in ner Stunde sehen ob es funktioniert.
Die " wie bekomme ich die rein?
mit \"?

Von parametrisierte Abfragen habe ich keine Ahnung wie geht sowas?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Sonderzeichen / UPDATE

  Alt 23. Mai 2009, 17:10
Verwende wie gesagt parameter, dann hast du die ganzen Probleme nicht.

UPDATE tabelle SET spalte1=:wert1, spalte2=:wert2, spalte3=:wert3 WHERE spalte4=:wert4 AND spalte5=:wert5;
Markus Kinzler
  Mit Zitat antworten Zitat
Richie1103

Registriert seit: 2. Feb 2009
20 Beiträge
 
#7

Re: Sonderzeichen / UPDATE

  Alt 23. Mai 2009, 19:23
Und wo ahbe ich da Parameter verwandt? Ist in meinen Augen das Gleiche wie oben....
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#8

Re: Sonderzeichen / UPDATE

  Alt 23. Mai 2009, 19:30
Zitat von Richie1103:
Und wo ahbe ich da Parameter verwandt?
Du hast eben keine verwendet, sondern die Werte direkt in den SQL-String eingebaut. Das ist immer schlecht wegen dieser Konvertierungsprobleme und wegen Sql-Injection.

Zitat:
Ist in meinen Augen das Gleiche wie oben....
Ganz und gar nicht. Mit den Gänsefüßchen fügst die Werte direkt in den SQL-String ein; mit der Formulierung mit :wert1 (der Doppelpunkt kennzeichnet Parameter unter MySql, bei anderen DBMS geht es anders) wird auf Parameter verwiesen, die separat eingetragen werden.

Für genaueren Code müsstest du die Frage "Zugriff über" konkret beantworten.

Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Sonderzeichen / UPDATE

  Alt 23. Mai 2009, 19:30
:wert1, :wert2 usw. sind Parameter, welche man später durch die werte ersetzen kann. Dadurch erspart man sich das Quoten und casrten in String.
Markus Kinzler
  Mit Zitat antworten Zitat
rakekniven

Registriert seit: 4. Apr 2008
Ort: Franken
82 Beiträge
 
Delphi XE5 Professional
 
#10

Re: Sonderzeichen / UPDATE

  Alt 24. Mär 2010, 08:40
Ich nutze Parameter mit Begeisterung, stolperte gestern jedoch über ein Problem.

Verwende die Zeos-Libs und MySQL.

Delphi-Quellcode:
DM_Database.qMessage.SQL.Add ('update messages set ');
DM_Database.qMessage.SQL.Add ('Text=:Text1, ');
DM_Database.qMessage.SQL.Add ('Comment=:Comment1');
DM_Database.qMessage.SQL.Add (' where Section_ID = ' + IntToStr(Message_To_Edit.section_id_old) + ' and' +
            ' Message_ID = ' + IntToStr(Message_To_Edit.message_id_old) + ' and' +
            ' Lang_ID = ' + IntToStr(Message_To_Edit.lang_id));

DM_Database.qMessage.ParamByName('Text1').AsString      :=   Message_To_Edit.text_new;
DM_Database.qMessage.ParamByName('Comment1').AsString   :=   Message_To_Edit.comment_new;
Wenn ein Parameter am Ende ein '\' enthält, dann schlägt die Funktion fehl und ich bekomme die Exception 'Incorrect token followed by ":"'

Wie kann man das umschiffen?
Liegt das an den Zeos-Libs?

Gruß
Frag google
  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 08:38 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