Einzelnen Beitrag anzeigen

mfahs

Registriert seit: 18. Jul 2012
10 Beiträge
 
#1

LocalSQL mit "DELETE" produziert einen Fehler mit FDMemTable

  Alt 4. Jul 2016, 11:43
Datenbank: FireDAC • Version: 10.1 Berlin • Zugriff über: -
Hallo zusammen!

Vielleicht hat ja jemand eine gute Idee parat
Ich habe in der Vergangenheit schon oft nach einer Möglichkeit gesucht, eine MemTable per SQL-Befehl bearbeiten zu können. Normalerweise arbeite ich mit SDAC von DevArt, auch in der dort mitgelieferten Virtuellen Tabelle kann man keine SQL-Statements in einer Query nutzen.

Nun habe ich gerade (...und siehe, das Gute liegt so nah'...) mit Freunden festgestellt, dass die FireDac Memtable per LocalSQL tatsächlich ganz prima mit einer FDQuery bearbeitet werden kann. Ich habe diverse Tests gemacht und nun in einem aktiven Projekt alle "VirtualTables" von DevArt gegen die FDMemTable ausgetauscht. Eigentlich lief alles gut, bis ich per "DELETE FROM memTable WHERE..." einige Daten löschen wollte. Das ging mit der Exception "VTab: Angegebene Zeile ist nicht vorhanden" daneben. Ich habe nun stundenlang nach der Ursache gesucht, denn in meiner Testumgebung klappte es problemlos.

Ursache für den Fehler ist ein Memofeld! In meinem Projekt enthält die MemTable ein Memofeld - und damit geht der DELETE-Befehl schief. Wenn ich eine MemTable OHNE Memofeld verwende, klappt es.

Was zum Geier ist da in meinem Delphi 10.1 Berlin los? Ein Bug? Oder habe ich da etwas übersehen?
Hat jemand von euch eine Idee?

Schon mal herzlichen Dank vorab!

Gruß,
Martin
  Mit Zitat antworten Zitat