Varchar Eintrag mit NULL
-
Salü
Vor einiger Zeit habe ich eine Datenbank-Applikation entwickelt und diese Dank der Hilfe aus diesem Forum auch zum laufen gebracht. Besten Dank an dieser Stelle dafür.
Bei einer meiner Erweiterungen stehe ich jedoch vor einem Problem:
Ich habe eine Tabelle mit Revisionsständen für jede Baugruppe. Wenn nun ein Revisionsstand ändert, möchte ich dass all die Einträge aus den verschiedenen Feldern zusammen in ein Archivfeld eingetragen werden. Dieses ist ein Varchar und hat eine Länge von 10000 Zeichen.Nur: Wenn ich aus meinem Ansistring in den Varchar schreiben will, bekomme ich Fehler, und zwar nur, wenn die Strings zusammengesetzt sind.
MYSQL meldet folgendes: You have an error in your SQL syntax; check the manual that ... ... near '.2010 08NULL Name ReasonNULL verification ClearanceNULL J DescriptionNULL on' at line 1
Ich vermute dass SQL keine Mehrfach-Einträge mit dem AnsiString Endzeichen NULL mitten im String verarbeiten kann... Wie seht ihr das?
Wie könnte man so etwas realisieren?
funktioniert: (keine zusammengesetzten Strings)
Form1->ADOQuery1->SQL->Clear(); Form1->ADOQuery1->SQL->Add("UPDATE `trace_03`.`assembly_approval` SET `history` = ('"+AnsiString(apr_assy)+"') where `Assembly`=('"+AnsiString(apr_assy)+"')"); Form1->ADOQuery1->ExecSQL();
funktioniert nicht:
history_plus_old=history+Form1->ADOQuery1->FieldByName("history")->AsString; Form1->ADOQuery1->SQL->Clear(); Form1->ADOQuery1->SQL->Add("UPDATE `trace_03`.`assembly_approval` SET `history` = "+history_plus_old+" WHERE `assembly`=('"+AnsiString(apr_assy)+"')"); Form1->ADOQuery1->ExecSQL();
-
Zeig dochmal das komplette zur Laufzeit erstellte SQL-Statement.
-
Hallo,
ich weiß nicht,was das für eine Datenbank ist, aber vermutlich mußt Du auch im 2.Fall den String in einfache Anführungszeichen setzen.
Gruß Udo
-
Da fällts mir gleich wie Schuppen von den Augen... Unglaublich, dass ich das übersehen konnte... da sah ich wohl vor lauter Bäumen den Wald nicht mehr.
Danke!