procedure TForm1.Button1Click(Sender: TObject); var ms: TFileStream; begin if OpenDialog1.Execute then begin MS:=TFileStream.Create(OpenDialog1.FileName, fmOpenRead); mS.Position:=0; adoquery1.Append; TBlobField(adoquery1.FieldbyName('abc')).LoadFromStream(MS); adoquery1.Post; mS.Free; end; end;OpenDialog1.FileName是你要保存的图片名
//将图片加载到IMAGE控件中 var filename:string; begin open1.Execute; if open1.FileName<>'' then begin filename:=extractfileext(open1.FileName); image1.Picture.LoadFromFile(open1.FileName); MS_JpegStream:=TMemoryStream.Create; M_BitMap:=TBitMap.Create; M_Jpeg:=TJpegImage.Create; if (FileName='.bmp') or (FileName='.BMP') then begin M_BitMap.LoadFromFile(Open1.FileName); M_Jpeg.Compress; M_Jpeg.Assign(M_BitMap); end else if (FileName='.jpg') or (FileName='.JPG') then begin M_Jpeg.LoadFromFile(open1.FileName); end; M_Jpeg.SaveToStream(MS_JpegStream); end; end; //存入数据库 adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('insert into tt(image)'); adoquery1.SQL.Add('values(:image)'); adoquery1.parameters.ParamByName('image').LoadFromStream(MS_JpegStream,ftblob); adoquery1.ExecSQL;
请问,按楼上所说的做了, adoquery1.SQL.Clear; adoquery1.SQL.Add('insert into tt(image)'); adoquery1.SQL.Add('values(:image)'); adoquery1.parameters.ParamByName('image').LoadFromStream(MS_JpegStream,ftblob); adoquery1.ExecSQL;当执行到adoquery1.ExecSQL; 这句的时候 为何提示 insert into 语法错误 还望高手指点。
var ms: TFileStream;
begin
if OpenDialog1.Execute then
begin
MS:=TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
mS.Position:=0;
adoquery1.Append;
TBlobField(adoquery1.FieldbyName('abc')).LoadFromStream(MS);
adoquery1.Post;
mS.Free;
end;
end;OpenDialog1.FileName是你要保存的图片名
Delphi存取图像完整解决方案
var filename:string;
begin
open1.Execute;
if open1.FileName<>'' then
begin
filename:=extractfileext(open1.FileName);
image1.Picture.LoadFromFile(open1.FileName);
MS_JpegStream:=TMemoryStream.Create;
M_BitMap:=TBitMap.Create;
M_Jpeg:=TJpegImage.Create;
if (FileName='.bmp') or (FileName='.BMP') then
begin
M_BitMap.LoadFromFile(Open1.FileName);
M_Jpeg.Compress;
M_Jpeg.Assign(M_BitMap);
end
else if (FileName='.jpg') or (FileName='.JPG') then
begin
M_Jpeg.LoadFromFile(open1.FileName);
end;
M_Jpeg.SaveToStream(MS_JpegStream);
end;
end;
//存入数据库
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('insert into tt(image)');
adoquery1.SQL.Add('values(:image)');
adoquery1.parameters.ParamByName('image').LoadFromStream(MS_JpegStream,ftblob);
adoquery1.ExecSQL;
adoquery1.SQL.Add('insert into tt(image)');
adoquery1.SQL.Add('values(:image)');
adoquery1.parameters.ParamByName('image').LoadFromStream(MS_JpegStream,ftblob);
adoquery1.ExecSQL;当执行到adoquery1.ExecSQL; 这句的时候
为何提示 insert into 语法错误
还望高手指点。
stm : TMemoryStream;
varData : Variant;
adoQuery : TADOQuery;
param : TParameter;
begin
stm:=TMemoryStream.Create;
stm.LoadFromFile(dxtFilePath);
stm.Seek( 0, soFromBeginning );
size := stm.size; // copy stream content to variant
varData := varArrayCreate( [1, size], varByte );
buffer := varArrayLock( varData );
stm.Read( buffer^, size );
varArrayUnlock( varData ); stm.Destroy; strsql := format( 'update T_XX set DXT = :dxt where ID = %d',[intfXxObj.ID]);
adoQuery.Close;
adoQuery.SQL.Clear;
adoQuery.SQL.Add( strsql ); param := adoquery.Parameters.FindParam('DXT');
param.DataType := ftblob; param.Value := varData;
adoQuery.ExecSQL;
end;
我是调试过的,没有出错,你再看看