Databáze > MySQL
MyDAC, ClientDataset a zracené memofieldy
jbd:
Mám ClientDataset připojený přes DatasetProvider a MyQuery do MySQL.
Select je jenom na jeden řádek tabulky, podle id záznamu:
"select id, jmeno, poznamka from tabulka where id=:id".
Pokud v záznamu opravím "jmeno" a na poznámku nešáhnu, po ApplyUpdates mám v tabulce nulovou poznámku.
Pokud však opravím i poznámku, ApplyUpdates vše pošle do databáze bez problémů.
Zatím to obcházím zapamatováním poznámky v proměnné a opětovnou editací poznámky. dbMonitor ukazuje při zápisu parametr "poznamka" = <null>, DatasetProvider.DeltaDS.FieldByName('poznamka') je při BeforeUpdateRecord taky nulový.
Netuším co mám nastaveno špatně...
:-[
Jan Fiala:
Jakeho typu je poznamka?
Pokud na poznamku nesahnes, posilas ji v update take?
jbd:
Poznamka je v Mysql Text a v ClientDatasetu TMemoField.
V myquery mám vygenerované příkazy na Update k aktualizaci všech sloupců. Bez update příkazu myquery na Mysql4.1 neprojde ApplyUpdate (i když dbMonitor ukazuje vše OK), na vyšší mysql (10.1.16-MariaDB) to bez update příkazu projde - Myquery vygneruje vlastní a aktualizuje jenom změněné sloupce a poznámku nevymaže.
Jan Fiala:
Text je blob field a podle toho se k nemu musis chovat.
jbd:
Ptal jsem se, co dělám špatně. Nevím jakým jiným způsobem bych to měl dělat. Teda vím, zálohuji poznámku, a pokud se po ApplyUpdate neshoduje , zapíši zálohu. Ale je to určitě náročnější pro server.
Poradíš mi něco lepšího?
Navigace
[0] Seznam témat
[#] Další strana
Přejít na plnou verzi