AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Apostrophe in SQL Statement ersetzen

Apostrophe in SQL Statement ersetzen

Ein Thema von Andidreas · begonnen am 19. Jun 2006 · letzter Beitrag vom 19. Jun 2006
Antwort Antwort
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

Apostrophe in SQL Statement ersetzen

  Alt 19. Jun 2006, 11:26
Datenbank: MySQL • Version: 4.0.19 • Zugriff über: MySqlDac
hi @ all,

ich hab grad folgendes problem:

im moment erstell ich aus einem .txt file eine db datei...
in denn datensätzen die ich aus dem .txt file einlese kann es sein, das auch apostrophe vorhanden sind die ich mit in die db datei übernehmen muss...

wenn ich denn string (bzw. die .txt zeile) einfach so in mein sql statment übernehme, dann krieg ich nen fehler...

denn fehler beheb ich dadurch, dass ich ein ' durch zwei ' ersetze
bsp. Rock'n'Roll ergibt Rock''n''Roll

um die apostrophe in meine string zu ersetzen hab ich mir folgende funktion gebastelt:

Delphi-Quellcode:
function TMain_Form.fnapostrophe(sRow : String) : String;

var
arPos : Array[1..10] of String;
i, i2, iAnz, iLen, iPos : Integer;


begin

  iLen := Length(sRow);
  iAnz := 0;

  For i := 0 To iLen Do
  Begin
    If sRow[i] = #39 Then
    Begin
      Inc(iAnz);
      arPos[iAnz] := IntToStr(i);
    End;
  End;

  For i2 := iAnz DownTo 1 Do
  Begin
    iPos := StrToInt(arPos[i2]);
    Insert(#39, sRow, iPos);
  End;

  fnapostrophe := sRow;

end;
jetzt meine frage:
weiß jemand ob es für meine funktion auch schon eine funktion von delphi gibt die genau das macht???
hat jemand vielleicht noch nen vorschlag wies noch einfacher geht???
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Apostrophe in SQL Statement ersetzen

  Alt 19. Jun 2006, 11:29
Schau Dir mal die Funktion Delphi-Referenz durchsuchenQuotedStr (ing ) an.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Apostrophe in SQL Statement ersetzen

  Alt 19. Jun 2006, 11:33
Oder Verwende Parameter.
Markus Kinzler
  Mit Zitat antworten Zitat
Andy U

Registriert seit: 14. Jun 2006
17 Beiträge
 
#4

Re: Apostrophe in SQL Statement ersetzen

  Alt 19. Jun 2006, 12:12
Hallo Andidreas,

versuch's doch mit "AnsiReplaceString".

Delphi-Quellcode:
...
var
  SRow : String;
begin
  SRow:= AnsiReplaceStr(SRow, #39, #39+#39);
...
vgl:
www.delphibasics.co.uk

Ich hoffe, das ist das was du suchst und dass das mit dem "#39" und "#39+#39" klappt !


mfG

Andy
  Mit Zitat antworten Zitat
markusl

Registriert seit: 25. Apr 2006
Ort: Rotkreuz
21 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: Apostrophe in SQL Statement ersetzen

  Alt 19. Jun 2006, 12:50
Hallo Andidreas,

wie schon mkinzler sagte kann ich Dir auch wirklich nur empfehlen, Parameter zu nutzen.
Damit brauchst Du dich nicht mit dem Quoting zu beschäftigen, sondern
überlässt das ganze der Datenbankkomponente.
Da du ja wie angegeben mit MyDAC von CoreLabs arbeitest sollte das
auch kein Problem sein.

Delphi-Quellcode:
with query do
begin
   SQL.Add('INSERT INTO tab(id,wert) VALUES (:id,:wert)');
   ParamByName('ID').AsInteger :=xyz;
   ParamByName('WERT').AsString := sFromFile;
end;

HTH

Markus
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Apostrophe in SQL Statement ersetzen

  Alt 19. Jun 2006, 13:27
Also ich nehm immer " oder zweimal ' also ''
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

Re: Apostrophe in SQL Statement ersetzen

  Alt 19. Jun 2006, 14:35
danke für eure tipps

@sakura
QuotedStr(String) war en guter tipp, bloss hab ich da das problem, dass er mir da meinen kompletten String auch nochmal in Apostrophe setzt, der macht also aus rock'n'roll --> 'rock''n''roll' und da hab ich dann das problem, das die ich die apostrophe am anfang und am ende von meinem sql statment net gebrauchen kann....
aber trotzdem ises gut zu wissen das es so ne funktion gibt...

@Andy U
sRow := AnsiReplaceStr(sRow, #39, #39+#39); des war en sehr guter tipp, durch die funktion kann ich meine funktion wieder komplett rausnehmen

@mkinzler & markusl
was bringt mir das arbeiten mit parametern in diesem fall???
wenn ich meine daten in einem parameter feld in mein sql statement übergeb, hab ich aber trotzdem noch das problem mit denn apostrophen???!!!
oder lieg ich da falsch???
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:56 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