Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#1

[SQL] Feldwert bei Insert wird als Spalte interpretiert

  Alt 1. Jul 2011, 12:05
Datenbank: MySQL • Version: 4.1.9 • Zugriff über: UniDAC
Mahlzeit!

Ich hab hier ein arg seltsames Phänomen. Folgede einfache Sache:
Delphi-Quellcode:
  Qry.SQL.Text := 'INSERT IGNORE INTO bild_dyn SET ElementName = "'+Components[i].Name+'"';
  Qry.Execute;
führt zu diesem Fehler:
Code:
---------------------------
Anwendungsfehler
---------------------------
Exception EUniError in Modul MC_ZusatzZwenkau.exe bei 0011F9E0.
#42S22Unknown column 'T1Max' in 'field list'.
---------------------------
OK  
---------------------------
Der Inhalt von SQL.Text ist zum Zeitpunkt des Executes:
'INSERT IGNORE INTO bild_dyn SET ElementName = "T1Max"'
Also nichts spannendes. Die "Qry" ist eine einfache TUniQuery, die an anderen Stellen auch ihren Dienst tut, und die Tabelle nutzen wir in dieser Form auch schon einige Zeit (ElementName ist das einzige NOT NULL Feld darin, und auch der einzige Index). Das trat erst jetzt auf, wo ich die alten Zeos-Kompos gegen UniDAC getauscht habe, mit Zeos ging das bisher.
Aber wie kommt UniDAC hier auf den Trichter, den einer Spalte zugewiesenen WERT als Spaltennamen zu interpretieren?

Der selbe Fehler tritt auch auf, wenn ich das Statement so schreibe:
'INSERT IGNORE INTO bild_dyn (ElementName) VALUES ("T1Max")'
Beide gehen aus einem anderen SQL Client heraus auch ohne Murren.

Ich bin etwas ratlos Hat da wer eine spannende Idee parat? Dankschö schonmal!
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat