0
一直在苦苦挣扎。我们有一个包含图像类型数据的旧表(SQL Server)。我想获得文本。将RTF图像数据转换为纯文本(SQL Server和Dephi BDS 2006)
到目前为止,这是我所做的。
- 尝试转换或调用SP投它(不允许)
- 尝试将在数据进入德尔福(我到具有被分配给一个变体的数据点)
- 看着到一个RTF文本函数(在这里找到的东西,如果我可以将图像数据转换为一个字符串)。
这是我到目前为止的代码。它现在附加到按钮点击(将在服务中运行)。我认为报告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;
数据存储为二进制图像类型。它实际上是一个RTF数据文件。我似乎记得尝试过AsString并没有取得太大的成功。我会再看看。谢谢! – Rob 2011-03-14 05:46:06
Delphi为它创建了什么类型的字段? (检查ADOStoredProc1.FieldByName('Report')。ClassName)如果它创建了一个TBlobField,你可以获取BlobStream并使用LoadFromStream直接将其添加到TRichEdit;在我的答案中提供的同一个Delphi新闻链接中有代码。 – 2011-03-14 06:04:22
是的,这在一定程度上起作用!还有一个剩余的问题,我会另外问。谢谢。一旦我得到解决,我会发布完整的代码。问题在于,MSSQL在将二进制数据插入数据库时会做某些事情。需要弄清楚如何将其翻译回来。 – Rob 2011-03-14 13:41:47