这是我存储的代码,我要取出来显示,如何做呢 大侠帮忙啊 能不能提供完整点的代码,问别人都说用流,然后给一点代码,我知道用流了,但是自己实在做不出来。郁闷好多天了FileName:='D:\200711126293700.jpg';
ADOQuery := TADOQuery.Create(Nil);
ADOQuery.ConnectionString :=CstrMySqlConn;
try
with ADOQuery do
begin
close;
sql.clear;
sql.add('insert into img (imga) values(:imag)');
end;
try
if FileName <>'' then
ADOQuery.Parameters.ParamByName('Imag').LoadfromFile(FileName,ftGraphic)
else
ADOQuery.Parameters.ParamByName('Imag').Value:=null;
ADOQuery.ExecSQL;
//ADOQuery.post
except
ShowMessage('图片保存出错!');
exit;
end;
except
end;
ADOQuery := TADOQuery.Create(Nil);
ADOQuery.ConnectionString :=CstrMySqlConn;
try
with ADOQuery do
begin
close;
sql.clear;
sql.add('insert into img (imga) values(:imag)');
end;
try
if FileName <>'' then
ADOQuery.Parameters.ParamByName('Imag').LoadfromFile(FileName,ftGraphic)
else
ADOQuery.Parameters.ParamByName('Imag').Value:=null;
ADOQuery.ExecSQL;
//ADOQuery.post
except
ShowMessage('图片保存出错!');
exit;
end;
except
end;
m_jpeg : TJpegImage;
m_blob : TStream;
begin
//读取JPG图像
m_blob := adoDataSet.CreateBlobStream(adoDataSet.FieldByName('Picture'),bmRead);
m_jpeg:=TJpegImage.Create;
try
if m_blob.Size<>0 then
begin
try
m_jpeg.LoadFromStream(m_blob);
imInput.Picture.Assign(m_jpeg);
imInput.Refresh;
except
end;
end
else
imInput.Picture.Assign(nil);
finally
m_jpeg.Free;
m_blob.Free;
end;
end;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
begin
//如果图像不为空,把图像以JPG格式导入到字段中
if Assigned(imInput.Picture.Graphic) then
begin
jpg := TJpegImage.Create;
ms := TMemoryStream.Create;
try
jpg.Assign(imInput.Picture.Graphic);
jpg.SaveToStream(ms);
if SizeOf(ms) > 0 then
(adoDataSet.FieldByName('PICTURE') as TBlobField).LoadFromStream(ms);
finally
ms.Free;
jpg.Free;
end;
end;
//注:imInput为TImage类型
end;
const
SHex: PChar = '0123456789ABCDEF';
var
P: PChar;
I, Size: Integer;
hFile: Thandle;
V: Byte;
begin
Result := 'NULL';
hFile := FileOpen(AFileName, fmShareDenyNone);
if hFile = INVALID_HANDLE_VALUE then Exit;
Size := FileSeek(hFile, 0, FILE_END);
FileSeek(hFile, 0, FILE_BEGIN);
SetLength(Result, Size * 2 + 2);
FileRead(hFile, Result[1], Size);
CloseHandle(hFile); P := PChar(Result) + Length(Result) - 2;
for I := 0 to Size - 1 do
begin
V := Ord(Result[Size - I]);
P[0] := SHex[V shr 4];
P[1] := SHex[V and $F];
Dec(P, 2);
end;
P[0] := '0';
P[1] := 'x';
end; FileName:='D:\200711126293700.jpg';
ADOQuery := TADOQuery.Create(Nil);
ADOQuery.ConnectionString :=CstrMySqlConn;
with ADOQuery do
begin
SQL.Text := Format('insert into img (imga) values(%s)', [GetHexStringFromFile[FileName)]);
ExecSQL;
end;