Weil ein Blob meistens etwas Grösseres oder Binärdaten sind.
Wenn du einen Text-Blob anzeigen willst, dann mach einfach ein TDBMemo auf das Formular, setze Eigenschaft DataSource auf die Vorhandene und DataField auf den Namen des Feldes. Dann müsste dort beim ausgewählten Eintrag der Text erscheinen und auch editierbar sein.
Wenn du weisst, was du tust, kannst du alternativ auch versuchen, im PHP bei
Code: Alles auswählen
$mysql_data_type_hash = array (
...
252 => 'varchar', //statt blob
...
Dann in den Options des DBGrid1 "dgDisplayMemoText" auf True.
Und noch in XMLMySQLDataSet.pas ftMemo hinzufügen (oder wahlweise von git updaten https://github.com/theo222/lazarus_xmlmysqldataset)
Code: Alles auswählen
84: if Fields[i].OldValue <> Fields[i].NewValue then
85: case Fields[i].DataType of
86: ftString, ftBlob, ftMemo: SQL := //hier ftMemo ergänzen.
Das ist bei XMLMySQLDataSet nicht das Thema, ist ja nur eine Komponente.
Das kannst du mit einer PHP Session / Cookies etc. und TFPHttpClient lösen.
XMLMySQLDataSet gibt nur einen Key mit, damit man nicht "gratis" auf das PHP zugreifen kann.
Wichtig ist schon mal "HTTPS" zu verwenden.
Man kann XMLMySQLDataSet wie ein anderes TDataSet verwenden.
Das basiert auf dem xmldatapacketreader von fcl-db
https://gitlab.com/freepascal.org/fpc/s ... treader.pp