之前没用过delphi开发
现在碰到个问题
s_sql:='SELECT * FROM table ';
ADOl.Close();
ADOl.SQL.Clear();
ADOl.SQL.Add(s_sql);
ADOl.Open;
表有一个字段1,字段1类型为image,试问ADOdzbl.FieldByName('字段1).Value为什么取不出值。
现在碰到个问题
s_sql:='SELECT * FROM table ';
ADOl.Close();
ADOl.SQL.Clear();
ADOl.SQL.Add(s_sql);
ADOl.Open;
表有一个字段1,字段1类型为image,试问ADOdzbl.FieldByName('字段1).Value为什么取不出值。
ms:=TMemoryStream(ADOdzbl.CreateBlobStream(ADOdzbl.FieldByName('病历内容'),bmRead));
ms.SaveToFile('c:\ddd1.xml');
差不多,把二进制流保存成文件了,我现在是要用这个二进制流,把取出来的二进制流赋值给一个变量,传给另外一个函数,保存成文件就复杂了。这个二进制流怎么赋值给变量,再以参数形式传给别的函数(参数类型为OleVariant)
var
ms: TMemoryStream;
begin
TBlobField(ADOdzbl.FieldbyName('字段1')).SaveToStream(ms);
end;
function TForm1.StreamToVariant(Stream: TStream): OleVariant;
var
p: Pointer;
begin
Result := VarArrayCreate([0, Stream.Size - 1], varByte);
p := VarArrayLock(Result);
try
Stream.Position := 0;
Stream.Read(p^, Stream.Size);
finally
VarArrayUnlock(Result);
end;
end;
试下上面的函数:StreamToVariant