Databáze > MySQL

MyDAC, ClientDataset a zracené memofieldy

(1/2) > >>

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