Einzelnen Beitrag anzeigen

Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#1

EDBError: "Typ für Feld 'relative' unbekannt"

  Alt 30. Sep 2005, 09:53
Datenbank: MySQL • Version: 3.51 • Zugriff über: MySQL ODBC Driver 3.51
hi ihr,

ich hab ein problem mit mySQL. zugreifen tu ich über TDatabase/TQuery.
mein code sieht so aus:

Delphi-Quellcode:
try
      Query.SQL.Clear();
      Query.SQL.Add('start transaction;');
      Query.ExecSQL();

      Query.SQL.Clear();
      Query.SQL.Add('TRUNCATE table greeting');
      Query.ExecSQL();

      Query.SQL.Clear();

      Query.SQL.Add('INSERT INTO `greeting` (`topic`, `message`, `simple`) VALUES (" ", "'+AdvGreetingHTMLPreview.Caption+'", "0")');

      Query.ExecSQL();

      Query.SQL.Clear();
      Query.SQL.Add('commit;');
      Query.ExecSQL();
    except
      Query.SQL.Clear();
      Query.SQL.Add('rollback;');
      Query.ExecSQL();
    end;
beim ausführen des INSERT-befehls bekomme ich unter bestimmten voraussetzungen den fehler:
Code:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt WebAdmin.exe ist eine Exception der Klasse EDatabaseError aufgetreten. Meldung: 'Typ für Feld 'relative' ist unbekannt'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK  Hilfe  
---------------------------
der fehler kommt nur, wenn innerhalb des SQL-statements folgendes vorkommt:

Zitat:
"foo:bar"
sprich: ein doppeltes anführungszeichen, dann irgendein string und dann ein doppelpunkt.
sobald dies innerhalb meines TQuery.SQL steht, bekomm ich diesen fehler an den kopf geworfen.
an der mysql kanns eigentlich nicht liegen, da ich mir das vom code genrierte statement kopiert und in phpMyAdmin getestet habe - klappt einwandfrei.

irgendwie muss der ODBC-treiber die angabe "foo:bar" als eine art feld interpretieren, dass er nicht kennt.

das problem an der sache ist, dass ich HTML-code in die tabelle einfügen muss. ich habe schon versucht, anführungszeichen zu escapen etc., aber das einzige, was hilft, ist den doppelpunkt aus dem string zu entfernen - was aber den informationsgehalt zerstört

könnt ihr mir helfen?

danke schonmal,
aenogym
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat