AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi '\'AUTO' in ein Textfeld einer mySQL-DB schreiben

'\'AUTO' in ein Textfeld einer mySQL-DB schreiben

Ein Thema von Steffen · begonnen am 24. Mär 2004 · letzter Beitrag vom 22. Feb 2005
Antwort Antwort
Steffen

Registriert seit: 19. Mär 2003
Ort: Hamburg
111 Beiträge
 
Delphi 7 Enterprise
 
#1

'\'AUTO' in ein Textfeld einer mySQL-DB schreiben

  Alt 24. Mär 2004, 14:34
Hallo!

bei mir liegt folgendes Problem vor:

Ich habe eine Anwendung geschrieben, die Text-Datein ausliest und den Inhalt in eine mySQL-Datenbank schreibt.
In den Text-Datein sind E-Mails abgelegt...
Die Anwendung funktoniert eigentlich ganz gut, bis auf eine Sache:

In einer Textdatei steht in einigen Zeilen: '\'AUTO'
Diesen String kann ich nicht in die DB übernehmen...

Delphi-Quellcode:
function TDataBaseModule.ExecuteQuery(strQuery : String) : Boolean;
//------------------------------------------------------------------------------
// Sendet eine Anfrage an die Datenbank
// ---------------------------------------------------------------------------
// Rückgabewert(out) : konnte die Anfrage ausgeführt werden?
// true = ja / false = nein
// ---------------------------------------------------------------------------
// ruft auf :
// mysql_real_query() : Anfrage an die DB senden
// ---------------------------------------------------------------------------
// Vorbedingung :
// Bevor Anfrage an die DB gesendet werden kann, muss eine Verbindung zum
// Datenbank-Server bestehen und eine Datenbank ausgewählt worden sein
//------------------------------------------------------------------------------
begin
  if not Connected then
    begin
      Result := False;
      ShowMessage(C_ERRORMESSAGEDBNOTCONN)
    end
  else
    if mysql_real_query(DataBaseSocket,
                        PAnsiChar(strQuery),
                        Length(strQuery)) <> 0 then
      begin
        Result := False;
        ShowMessage(mysql_error(DataBaseSocket))
      end
    else
      Result := True
end;

function TDataBaseModule.InsertConvertEMail(const EMail : TConverterEMail) :
  Boolean;
//------------------------------------------------------------------------------
// Fügt eine EMail in die Datenbank ein
// ---------------------------------------------------------------------------
// Parameter :
// EMail (in) : EMail die eingefügt werden soll
// ---------------------------------------------------------------------------
// Rückgabewert(out) : Konnte die EMail in die DB eingefügt werden?
// true = ja / false = nein
// ---------------------------------------------------------------------------
// globale Zugriffe :
// self.DataChanged : globales Flag, zum Speichern, ob sich Daten geändert haben
// ---------------------------------------------------------------------------
// ruft auf :
// self.ExecuteQuery : Anfrage an den Datenbank-Server senden
// FormatDateTime : Formatierung eines TDateTime-Wertes in einen String, der im
// Datenbank-konformen-Format vorliegt
// ---------------------------------------------------------------------------
// Vorbedingung :
// Bevor eine EMail in die DB eingefügt werden kann, muss eine Verbindung
// zum Datenbank-Server bestehen und eine Datenbank ausgewählt worden sein
//------------------------------------------------------------------------------
begin
    Result := ExecuteQuery('INSERT INTO '+ C_TMPMAILTABLENAME + ' ' +
                           '(TrackingId, Recipient, Sender, Date, ' +
                           'Subject, MsgText, Attachment) VALUES (' +
                              QuotedStr(EMail.TrackingId) + ',' +
                              QuotedStr(EMail.Recipient) + ',' +
                              QuotedStr(EMail.Sender) + ',' +
                              '''' +
                              FormatDateTime(C_SQLDATETIMEFORMAT,EMail.Date) +
                              ''''+ ',' +
                              QuotedStr(EMail.Subject) + ',' +
                              QuotedStr(EMail.MsgText) + ',' + // Hier entsteht der Einfügefehler
                              QuotedStr(EMail.Attachment) + // Wenn MsgText := '\'AUTO'
                           ')');

  if Result then // Wenn EMail erfolgreich eingefügt wurde, haben sich Daten in
    DataChanged := True // der DB geändert
end;
(Ich greife über die C-API auf die mySQL-Datenbank zu...)

Wie soll ich das Quoten???

Gruß,
Steffen
Wie soll ich wissen was ich denke, bevor ich höre was ich sage?
  Mit Zitat antworten Zitat
Matt

Registriert seit: 13. Nov 2003
Ort: Hamburg
212 Beiträge
 
#2

Re: '\'AUTO' in ein Textfeld einer mySQL-DB schreiben

  Alt 25. Mär 2004, 11:59
Mach aus dem \Auto einfach ein \\Auto, dann klappt es!
Habe immer die gleichen Probs, wenn ich Verzeichnisse speichern will.
Liegt an dem \, ist glaube ich ein Steuerzeichen oder sowas!

Gruß Matt
  Mit Zitat antworten Zitat
BorlanDelphiUser

Registriert seit: 10. Mär 2003
Ort: Waltersdorf
91 Beiträge
 
Delphi 5 Professional
 
#3

Re: '\'AUTO' in ein Textfeld einer mySQL-DB schreiben

  Alt 22. Feb 2005, 14:31
Zitat von Matt:
Mach aus dem \Auto einfach ein \\Auto, dann klappt es!
Habe immer die gleichen Probs, wenn ich Verzeichnisse speichern will.
Liegt an dem \, ist glaube ich ein Steuerzeichen oder sowas!

Gruß Matt
Ich hab auch gerade dieses Problem wie macht man aus \Auto -> \\Auto?
Ich glaube aber auch das es mit den ' Zeichen zusammenhängt.
Besucht auch mal meine Homepage www.r-kersten.de. Es wäre schön wenn ihr mir einen Gästebucheintrag hinterlasst.
  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 18:10 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