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