暂时挣扎着这个。我们有一个旧表(SQL Server)具有图像类型数据。我想得到文字。
到目前为止,这就是我所做的。
这是我到目前为止的代码。它现在附加到按钮单击(将在服务中运行)。我认为报告var的赋值不正确,SetString可能也不正确。我甚至不确定我是否正确地采用这种方式。
var
report: array of byte;
s: string;
begin
ADOStoredProc1.Parameters.ParamByName('@EncounterID').Value := '7';
ADOStoredProc1.Open;
while not ADOStoredProc1.EOF do
begin
report := ADOStoredProc1.FieldByName('Report').Value;
SetString(s, PAnsiChar(@report[0]), length(report));
Memo1.Lines.Add(s);
ADOStoredProc1.Next;
end;
答案 0 :(得分:1)
我对" RTF图像"感到有些困惑。你的意思是RTF文字吗?还是图像(图片)?从代码中,我怀疑前者......
我不确定你为什么要使用一个字节数组然后立即将它放入一个字符串中。
这应该同样有效(实际上,更好,因为它不使用Value
(这是变体转换)并避免SetString
函数调用):
while not ADOStoredProc.Eof do
begin
Memo1.Lines.Add(ADOStoredProc1.FieldByName('Report').AsString;
ADOStoredProc1.Next;
end;
但是,您可能会以这种方式在备忘录中获得RTF格式。如果您尝试删除格式,则需要使用TRichEdit
,并使用EM_STREAMIN
消息添加内容,然后使用{{1}属性。这是here的一个例子。