Hallo,
ich benutze folgenden Code, um ein TRichEdit in eine
DB zu schreiben. Die Funktion wird ohne Fehler durchlaufen, in der Datenbank bleibt das Feld
Memo aber auf nil.
Delphi-Quellcode:
//...
const
SQLNewMsgSend = '
insert into MsgSend values(default,now(),:User,'#39'
inactive'#39'
,:User,:User,default,:Name,:Memo,:Reciep);';
// ...
function TCommon.SendMsg(Subject:
string; Memo: TObject; SenderID,ReciepID: Integer;
AttachedList: TIntegerList):boolean;
var
i:integer;
LastIndex:integer;
Stream: TMemoryStream;
begin
result:=false;
Stream:=TMemoryStream.Create;
try
with QryMessage
do
begin
// in "Gesendet" eintragen
SQL.Text:=SQLNewMsgSend;
Params.ParamByName('
User').Value:=SenderID;
Params.ParamByName('
Reciep').Value:=ReciepID;
Params.ParamByName('
Name').Value:=Subject;
if TRichEdit(Memo).lines.Count>0
then
begin
Stream.Clear;
TRichEdit(Memo).Lines.SaveToStream(Stream);
Stream.Position := 0;
Params.ParamByName('
Memo').LoadFromStream(Stream,ftFmtMemo);
end;
ExecSQL;
//...
Das Datenbankfeld
Memo ist vom Typ
Text und ist in anderen Forms der Anwendung an TDBRichEdit gebunden und das funktioniert wunderbar. Auch das Übertragen von RichEdit-Inhalten über Streams funktioniert wie gewünscht.
Nur mit der Übergabe an einen
SQL-Parameter gehts bei mir nicht.
Wer hat ne Idee?
Gruß Andreas