es soll ja pro Thread nur 1 Frage gestellt werden, deshalb nun dieser weitere Beitrag.
Er schließt sich an dieses Thema an:
viewtopic.php?f=17&t=14196&p=127482#p127482
Wie ich schon geschrieben habe, funktioniert dieser Code recht gut:
Code: Alles auswählen
procedure TF_TSV.Button1Click(Sender: TObject);
var
sss , mmm : string;
begin
Ffufe.DB_Alle_zeigen_Sort_Titel_Fundus_2_Liste;
if Ffufe.ZQueryFundus2.RecordCount = 0 then exit;
Ffufe.ZQueryFundus2.First;
sss := Ffufe.ZQueryFundus2.FieldByName('PLId').AsString;
Form_Start.ZConneu.ExecuteDirect( 'UPDATE MyPL SET Cyyy2 = (SELECT GROUP_CONCAT(CTitelB, ", " ) FROM MyPL) Where PLId = '+ sss ) ;
Ffufe.ZQueryFundus2.Refresh;
mmm := Ffufe.ZQueryFundus2.FieldByName('Cyyy2').AsString ;
Showmessage(mmm);
end;
Es ergibt sich aber ein weiteres Problem:
Wenn man diesen Befehl: "SELECT GROUP_CONCAT(CTitelB, ", " ) FROM MyPL" in einen SQL-Editor eingibt, dann funktioniert alles prima; das Ergebnis wird vollständig und richtig im Editor ausgegeben.
Bei der Übergabe aber in einen String ( hier: mmm := Ffufe.ZQueryFundus2.FieldByName('Cyyy2').AsString ; ) wird nur ein relativ kleiner Teil des Strings in die Variable "mmm" übertragen, ca. grob geschätzt 100 Buchstaben.
Zunächst dachte ich, das liegt an der Spaltendefinition:
"Cyyy2" VARCHAR(200),
aber auch nach dem Ändern der Definition zu
"Cyyy2" TEXT,
wird nur der 1. Teil des Gesamtstrings in die Variable "mmm" übernommen.
Woran könnte das liegen?
Gruß
Aliobaba